Как узнать кол-во строк в текстовом файле?

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
TAlex
Новичок
Новичок
Аватара пользователя
 
Сообщения: 35
Зарегистрирован: 16.06.2003 (Пн) 11:39
Откуда: г.Харьков, Украина

Как узнать кол-во строк в текстовом файле?

Сообщение TAlex » 09.10.2003 (Чт) 14:30

Есть текстовый файл, как можно узнать кол-во строк в нем, не считывая их (не используя Line Input). FileLen тоже не подходит - все строки разной длины.

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 09.10.2003 (Чт) 14:33

Нельзя приготовить омлет, не разбив яиц.

v-adix
Постоялец
Постоялец
 
Сообщения: 490
Зарегистрирован: 14.11.2002 (Чт) 15:11

Сообщение v-adix » 09.10.2003 (Чт) 14:48

как ты узнаешь кол-во строк, НЕ считывая их?
используй или line input или vbcrlf

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4158
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Сообщение Mikle » 09.10.2003 (Чт) 14:49

Ну можно еще посчитать символы переноса строки chr(10), chr(13), только будет ли быстрее?

Ducis
Бывалый
Бывалый
 
Сообщения: 232
Зарегистрирован: 24.04.2002 (Ср) 15:36

Сообщение Ducis » 09.10.2003 (Чт) 19:31

Если не хочется считывать по строкам, то считай весь файл, а потом так:
кол_во_строк=(len(filetext)-len(replace(filetext,vbcrlf,"")))/2+1
Только есть особенность - некоторые проги оптимизации веб страниц вместо vbcrlf (chr(10), chr(13)) оставляют только один символ переноса каретки.
Понимаешь? (с)Б.Ельцин.

v-adix
Постоялец
Постоялец
 
Сообщения: 490
Зарегистрирован: 14.11.2002 (Чт) 15:11

Сообщение v-adix » 10.10.2003 (Пт) 10:31

вот именно, что символы переноса это vbcrlf. только быстрее вряд ли будет

Ducis
Бывалый
Бывалый
 
Сообщения: 232
Зарегистрирован: 24.04.2002 (Ср) 15:36

Сообщение Ducis » 10.10.2003 (Пт) 11:32

v-adix писал(а):вот именно, что символы переноса это vbcrlf. только быстрее вряд ли будет

Скорость будет зависеть от размера файла. Например если в VB считывать файл побайтно, то это будет гемморой. Лучше считывать кусками а потом разбирать побайтно. Просто в VB немного коряво реализована работа с буфером.
А vbcrlf это два символа - перевод строки vbLf (Chr(10)) и возврат каретки vbCr (Chr(13)). При нажатии Enter вводятся сразу оба. А в текстовом файле можно оставить только перевод строки и уменьшить размер ф-ла. Как я уже говорил выше, таким приемом пользуются оптимизаторы Web страниц при оптимизации кода скриптов в которых нельзя совсем выкинуть оба символа vbcr & vblf.
Понимаешь? (с)Б.Ельцин.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: PetalBot и гости: 6

    TopList  
cron