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

Закинь его в StringList (delimiter = #13) и посмотри кол-во строк.
...
Рейтинг: 0 / 0
22.07.2003, 09:23
    #32214134
AndreyBond
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли как нибудь узнать количество строк..
Не подходит, так как файл около 1 мегабайта, и считывать я его всё равно буду, но мне бы надо сделать прогресбар для юзверя, а чтоб его показания соответствовали проценту прочитаного и обработанного файла надо бы знать кол-во его строчек.
...
Рейтинг: 0 / 0
22.07.2003, 09:36
    #32214144
Speaker
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли как нибудь узнать количество строк..
Попробуй FileSizeByName.
...
Рейтинг: 0 / 0
22.07.2003, 09:41
    #32214149
Zmeishe
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли как нибудь узнать количество строк..
А почему ты не хочешь подсчитывать свои проценты в прогресбар через количество прочитанных байт?
...
Рейтинг: 0 / 0
22.07.2003, 09:46
    #32214152
m_kus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли как нибудь узнать количество строк..
Количество строк в тектсовом файле равно n+1, где n - сколько раз в файле встречается символ #13... Как подсчитать это, не читая файл, я не имею совершенно никакого понятия... А зачем пишу тогда? Просто засоряю форум... Не бейте... Просто давно не писал ничего, размяться хотел...
...
Рейтинг: 0 / 0
22.07.2003, 09:50
    #32214156
m_kus
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли как нибудь узнать количество строк..
Ну да, моё сознание прояснилось...
AndreyBound писал:
Можно ли как нить узнать кол-во строк в текстовом файле типа TextFile, если не известно кол-во символов в строке файла и без последовательного считывания файла
Вполне конкретный вопрос. Попытаюсь конкретно ответить, хотя могу ошибаться:
Если неизвестно кол-во символов в строке текстового файла и без последовательного считывания файла узнать, сколько в нём строк нельзя .
...
Рейтинг: 0 / 0
22.07.2003, 09:54
    #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
22.07.2003, 10:18
    #32214188
BigHarry
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли как нибудь узнать количество строк..
А чего - этот файл сразу в память низзя что-ли считать? Обязательно дрючить его по блокам?
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Можно ли как нибудь узнать количество строк.. / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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