powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Можно ли как нибудь узнать количество строк..
9 сообщений из 9, страница 1 из 1
Можно ли как нибудь узнать количество строк..
    #32214124
AndreyBond
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Можно ли как нить узнать кол-во строк в текстовом файле типа TextFile, если не известно кол-во символов в строке файла и без последовательного считывания файла.
...
Рейтинг: 0 / 0
Можно ли как нибудь узнать количество строк..
    #32214128
Фотография eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
[не одобрен]
Почти: то есть считываться все равно будет - но незаметно

Закинь его в StringList (delimiter = #13) и посмотри кол-во строк.
...
Рейтинг: 0 / 0
Можно ли как нибудь узнать количество строк..
    #32214134
AndreyBond
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не подходит, так как файл около 1 мегабайта, и считывать я его всё равно буду, но мне бы надо сделать прогресбар для юзверя, а чтоб его показания соответствовали проценту прочитаного и обработанного файла надо бы знать кол-во его строчек.
...
Рейтинг: 0 / 0
Можно ли как нибудь узнать количество строк..
    #32214144
Speaker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуй FileSizeByName.
...
Рейтинг: 0 / 0
Можно ли как нибудь узнать количество строк..
    #32214149
Фотография Zmeishe
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А почему ты не хочешь подсчитывать свои проценты в прогресбар через количество прочитанных байт?
...
Рейтинг: 0 / 0
Можно ли как нибудь узнать количество строк..
    #32214152
m_kus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Количество строк в тектсовом файле равно n+1, где n - сколько раз в файле встречается символ #13... Как подсчитать это, не читая файл, я не имею совершенно никакого понятия... А зачем пишу тогда? Просто засоряю форум... Не бейте... Просто давно не писал ничего, размяться хотел...
...
Рейтинг: 0 / 0
Можно ли как нибудь узнать количество строк..
    #32214156
m_kus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну да, моё сознание прояснилось...
AndreyBound писал:
Можно ли как нить узнать кол-во строк в текстовом файле типа TextFile, если не известно кол-во символов в строке файла и без последовательного считывания файла
Вполне конкретный вопрос. Попытаюсь конкретно ответить, хотя могу ошибаться:
Если неизвестно кол-во символов в строке текстового файла и без последовательного считывания файла узнать, сколько в нём строк нельзя .
...
Рейтинг: 0 / 0
Можно ли как нибудь узнать количество строк..
    #32214161
AndreyBond
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нельзя. Но вот надыбал функцию, которая работает достаточно быстро, проверялась на текстовом файле рзмером 1.21Мб:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
 { **** UBPFD *********** by delphibase.endimus.com ****
>> Подсчет количества строк в текстовом файле

Считает строки в текстовом файле, основываясь на количестве символов $0A (LineFeed).

Зависимости: Windows
Автор:       Борис Новгородов, mbo@mail.ru, Новосибирск
Copyright:   Собственное написание
Дата:        1 декабря 2002 г.
***************************************************** } 

 function  LinesCount( const  Filename:  string ): Integer;
 var 
  HFile: THandle;
  FSize, WasRead, i: Cardinal;
  Buf:  array [ 1 .. 4096 ]  of  byte;
 begin 
  Result :=  0 ;
  HFile := CreateFile(Pchar(FileName), GENERIC_READ, FILE_SHARE_READ,  nil ,
    OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL,  0 );
   if  HFile <> INVALID_HANDLE_VALUE  then 
   begin 
    FSize := GetFileSize(HFile,  nil );
     if  FSize >  0   then 
     begin 
      Inc(Result);
      ReadFile(HFile, Buf,  4096 , WasRead,  nil );
       repeat 
         for  i := WasRead  downto   1   do 
           if  Buf[i] =  10   then 
            Inc(Result);
        ReadFile(HFile, Buf,  4096 , WasRead,  nil );
       until  WasRead =  0 ;
     end ;
   end ;
  CloseHandle(HFile);
 end ;
...
Рейтинг: 0 / 0
Можно ли как нибудь узнать количество строк..
    #32214188
BigHarry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А чего - этот файл сразу в память низзя что-ли считать? Обязательно дрючить его по блокам?
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Можно ли как нибудь узнать количество строк..
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]