![]() |
|
![]() ![]() ![]() |
|
gordmiand |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 772 Регистрация: 15.4.2007 Репутация: нет Всего: 0 |
есть текстовый файл с содержанием типа:
//переменное число строк комментариев число = строка без кавычек (то есть: число пробел = пробел строка(возможно с пробелами)) число = строка без кавычек число = строка без кавычек число = строка без кавычек число = строка без кавычек .... подскажите пож-та как мне наиболее простым/оптимальным способом (с помощью регулярного выражения?) сосчитать все числа в один массив, а строки - в другой (или все в один массив, но в разные его элементы)... я начал так:
|
|||
|
||||
newbee |
|
|||
![]() Бревно ![]() ![]() Профиль Группа: Участник Сообщений: 703 Регистрация: 24.8.2011 Репутация: 1 Всего: 19 |
Находишь первую комбинацию " = " в строке (indexOf) и берешь от нее левую часть (left) и правую (right). Левую часть преобразуешь в число (toInt).
-------------------- You're face to face With man who sold the world |
|||
|
||||
RazrFalcon |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 29.7.2009 Репутация: 1 Всего: 1 |
|
|||
|
||||
newbee |
|
|||
![]() Бревно ![]() ![]() Профиль Группа: Участник Сообщений: 703 Регистрация: 24.8.2011 Репутация: 1 Всего: 19 |
RazrFalcon, теперь попробуй разобрать своей программой такое:
Добавлено через 24 секунды Спокойной ночи и удачной отладки ![]() -------------------- You're face to face With man who sold the world |
|||
|
||||
RazrFalcon |
|
||||
![]() Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 29.7.2009 Репутация: 1 Всего: 1 |
Да, не выйдет.
Добавлено через 12 минут и 47 секунд Можно и по другому:
Это сообщение отредактировал(а) RazrFalcon - 16.10.2011, 01:24 |
||||
|
|||||
newbee |
|
|||
![]() Бревно ![]() ![]() Профиль Группа: Участник Сообщений: 703 Регистрация: 24.8.2011 Репутация: 1 Всего: 19 |
RazrFalcon, ну вот мы и пришли к моему варианту, только с большими накладными расходами
![]() -------------------- You're face to face With man who sold the world |
|||
|
||||
gordmiand |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 772 Регистрация: 15.4.2007 Репутация: нет Всего: 0 |
newbee: такого варианта, как "42 = sexy kittens = free love" быть не может, но на всякий случай лучше конечно перестраховаться - подскажите пож-та программную реализацию Вашего способа решения "Находишь первую комбинацию " = " в строке (indexOf) и берешь от нее левую часть (left) и правую (right). Левую часть преобразуешь в число (toInt)."
|
|||
|
||||
newbee |
|
|||
![]() Бревно ![]() ![]() Профиль Группа: Участник Сообщений: 703 Регистрация: 24.8.2011 Репутация: 1 Всего: 19 |
gordmiand, я уже подсказала, в скобках перечислила все функции QString, которые понадобятся.
-------------------- You're face to face With man who sold the world |
|||
|
||||
gordmiand |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 772 Регистрация: 15.4.2007 Репутация: нет Всего: 0 |
да я пробовал - что-то никак не выходит...ну если Вам сложно привести пример кода - буду дальше думать...
|
|||
|
||||
gordmiand |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 772 Регистрация: 15.4.2007 Репутация: нет Всего: 0 |
RazrFalcon: в Вашем самом первом ответе-примере не учтено возможное наличие в начале файла переменного числа "ненужных строк" - комментариев и т.п.
например: // коммент **разный текст бла-бла-бла 01 = строка1 15 = строка 2 ... тогда ответы в Вашем примере будут: 0 "// коммент" 0 "**разный текст" и так далее можно конечно поставить дополнительное условие:
но хотелось бы сделать более оптимальным условие нахождения в файле значимых строк (число = строка)...подскажите пож-та модернизацию данного примера... |
|||
|
||||
RazrFalcon |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 23 Регистрация: 29.7.2009 Репутация: 1 Всего: 1 |
Можно и так сделать:
Это убьет строки не нужные. Пример бы полный, исходно файла. Я же писал только под то, что в шапке. |
|||
|
||||
gordmiand |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 772 Регистрация: 15.4.2007 Репутация: нет Всего: 0 |
содержимое файла:
код
первую строку такой код разберет как 01 и 756, а надо, чтобы элементами листа strings были 01 и p756rivet (то есть все, что после пробела после "=")... подскажите как мне этот код изменить надо!!! |
||||
|
|||||
math64 |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2505 Регистрация: 12.4.2007 Репутация: 23 Всего: 72 |
||||
|
||||
gordmiand |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 772 Регистрация: 15.4.2007 Репутация: нет Всего: 0 |
math64: все верно - просто изначально строки из файла считывались с игнорированием русских букв - добавил setCodec для buf и все стало нормально...
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |