Russian Qt Forum
Ноябрь 23, 2024, 06:31 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: строки  (Прочитано 5509 раз)
ixtorio
Гость
« : Апрель 19, 2011, 21:15 »

допустим уменя есть файл со строками,как мне выдрать каждую строку включая последнюю и первую,
обычными регулярками последнюю не выдерешь или я ошибаюсь,помогите пожалуйсто , мне нужно в точности
выдрать все строки ,но построчно а не по символьно
Записан
madRoger
Гость
« Ответ #1 : Апрель 19, 2011, 21:39 »

QIODevice::readLine
Записан
ixtorio
Гость
« Ответ #2 : Апрель 19, 2011, 21:41 »

а как мне знать сколько строк в файле?
Записан
madRoger
Гость
« Ответ #3 : Апрель 19, 2011, 21:46 »

QFile::atEnd(). Читать строки, пока этот метод не вернет true.
« Последнее редактирование: Апрель 19, 2011, 21:48 от madRoger » Записан
ixtorio
Гость
« Ответ #4 : Апрель 19, 2011, 21:51 »

спасибо
Записан
ixtorio
Гость
« Ответ #5 : Апрель 19, 2011, 22:08 »

и всётаки как узнать количество строк в файле?
Записан
SeverusSnape
Гость
« Ответ #6 : Апрель 19, 2011, 22:27 »

посчитать их
Записан
remiznik
Гость
« Ответ #7 : Апрель 20, 2011, 09:46 »

Код:
   QFile file(nameFile);
    if( file.exists() ){
      if( !file.open(QIODevice::ReadOnly ) ){
        qDebug()<<" Erorr : can not open file for reading  .";
      }

      int n=0;
      while( !file.readLine().isEmpty() ){
        n++;
      }
    }
я делал так . n это количество строк.
Записан
alexman
Гость
« Ответ #8 : Апрель 20, 2011, 09:51 »

Код:
   QFile file(nameFile);
    if( file.exists() ){
      if( !file.open(QIODevice::ReadOnly ) ){
        qDebug()<<" Erorr : can not open file for reading  .";
      }

      int n=0;
      while( !file.readLine().isEmpty() ){
        n++;
      }
    }
я делал так . n это количество строк.
Так это неправильно! Так посчитаете только до первой пустой строки!
Записан
remiznik
Гость
« Ответ #9 : Апрель 20, 2011, 09:54 »

Это я не учёл. Уменя простонет пустых строк.
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #10 : Апрель 20, 2011, 10:00 »

isEmpty() проверять совсем не нужно. Т.е. пока file.readLine() возвращает true, увеличиваем счетчик.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
ixtorio
Гость
« Ответ #11 : Апрель 20, 2011, 12:28 »

а что делать если файл очень большой?скажем на обработку 5 мегабайт уменя ушло около 10 секунд,а что если он будет гиг?
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #12 : Апрель 20, 2011, 12:37 »

А чего ты хотел? Улыбающийся
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
alexman
Гость
« Ответ #13 : Апрель 20, 2011, 13:19 »

а что делать если файл очень большой?скажем на обработку 5 мегабайт уменя ушло около 10 секунд,а что если он будет гиг?
Чтение с диска затратная операция.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.052 секунд. Запросов: 23.