Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.06.20;
Скачать: CL | DM;

Вниз

Количество прочитанных байт   Найти похожие ветки 

 
Walkie Talkie   (2004-06-05 15:30) [0]

В общем нужно в ProgressBar"e отображать ход выполнения работы с файлом, поэтому необходимо узнать общее кол-во строк в файле, для чего нужно прочитать весь файл...
Поэтому такой вопрос: Есть ли функция, позволяющая узнать, на каком байте находится внутренний укзатель в файле - тоесть сколько байт уже прочитано?


 
KilkennyCat ©   (2004-06-05 15:31) [1]

filesize, filepos


 
Walkie Talkie   (2004-06-05 16:09) [2]


> filesize, filepos

А это вроде бы для нетипизированных файлов... а у меня f:textfile; поэтому всегда выводит filesize и filepos = 0


 
neteditor ©   (2004-06-05 17:36) [3]

А вручную счетчик ты вести не можешь? Ведь длину прочитанной строки не так сложно подсчитать :)

p.s. Если использовать TFileStream проблема отпадет


 
Walkie Talkie   (2004-06-05 19:13) [4]


> p.s. Если использовать TFileStream проблема отпадет

А как там читать по строкам?


 
Anatoly Podgoretsky ©   (2004-06-05 19:30) [5]

Сначала читаешь весь файл отналча до конца и подсчитвывает строки, хатем читаешь уже весь файл по строкам с учетом ранее полученной величины.


 
KilkennyCat ©   (2004-06-05 22:12) [6]


> Anatoly Podgoretsky ©   (05.06.04 19:30) [5]

а непроще открыть его как нетипизированный, и воспользоваться filesize ? а потом уже открыть как текстовый... хотя я бы продолжал дальше работать с нетипизированным, читал бы побайтово, при отлове перевода строки - готовая строка. Непомню зачем, но когда-то так именно и пришлось.


 
GuAV ©   (2004-06-05 22:19) [7]

KilkennyCat ©   (05.06.04 22:12) [6]
это разные вещи - число символов и строк.


 
Anatoly Podgoretsky ©   (2004-06-05 22:22) [8]

KilkennyCat ©   (05.06.04 22:12) [6]
Да не важно в каком режиме открывать, он же хочет "узнать общее кол-во строк в файле" и потом работать со строками.


 
Walkie Talkie   (2004-06-05 22:46) [9]


> Сначала читаешь весь файл отналча до конца и подсчитвывает
> строки, хатем читаешь уже весь файл по строкам с учетом
> ранее полученной величины.


А представьте себе нагрузки на оперативную память и дисковую подсистему при размере файла даже в 30-50 метров... уже довольно ощутимо...

Наверное лучше в первой строке написать общее кол-во строк и при последующих изменениях изменять эту цифру.


 
GuAV ©   (2004-06-05 22:49) [10]


> А представьте себе нагрузки на оперативную память и дисковую
> подсистему при размере файла даже в 30-50 метров... уже
> довольно ощутимо...

Нетипизированный файл. BlockRead. ищешь №10 в буфере. считаешь.

> Наверное лучше в первой строке написать общее кол-во строк
> и при последующих изменениях изменять эту цифру.

а если сам файл создаёшь, то делай нетипизированным, а текстовые - это отстой :)


 
KilkennyCat ©   (2004-06-06 00:07) [11]


> Anatoly Podgoretsky ©   (05.06.04 22:22) [8]

Вы правы... однако если действительно прочитать вопрос
> Есть ли функция, позволяющая узнать, на каком байте находится
> внутренний укзатель в файле - тоесть сколько байт уже прочитано?

Это не для текстовых....


 
Walkie Talkie   (2004-06-06 01:35) [12]


> ищешь №10 в буфере

Тоесть #10 - перевод строки?

> а если сам файл создаёшь, то делай нетипизированным, а текстовые
> - это отстой :)

Хотя работать с ними иногда удобнее :)

А вот вопрос вдогонку - какой метод чтения/записи файлов самый быстрый?


 
default ©   (2004-06-06 01:44) [13]

Walkie Talkie   (06.06.04 01:35) [12]
"А вот вопрос вдогонку - какой метод чтения/записи файлов самый быстрый?"
хм...чем меньше обращений к диску тем лучше


 
GuAV ©   (2004-06-06 02:39) [14]


> хм...чем меньше обращений к диску тем лучше

тогда блокрид рулит. буфер 16 кБ, ищешь в нём №10, считаешь...


 
default ©   (2004-06-06 03:10) [15]

GuAV ©   (06.06.04 02:39) [14]
тогда MMF - там вообще о буф-ции беспок-ся не надо и вроде как она эффективна


 
KilkennyCat ©   (2004-06-06 11:14) [16]

все зависит от целей... Вы же не реальное видео пишете...


 
Anatoly Podgoretsky ©   (2004-06-06 13:22) [17]

KilkennyCat ©   (06.06.04 00:07) [11]
То что он в вопросе намешал всего является фактом.


 
Walkie Talkie   (2004-06-06 14:24) [18]


> тогда MMF - там вообще о буф-ции беспок-ся не надо и вроде
> как она эффективна


А это чего?


 
GuAV ©   (2004-06-06 14:36) [19]

RTFM MSDN: Managing Memory-Mapped Files in Win32
, если я правильно понял эту абревиатуру



Страницы: 1 вся ветка

Текущий архив: 2004.06.20;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.026 c
1-1086448251
Kostya
2004-06-05 19:10
2004.06.20
Progress Bar


4-1084117252
a_legayda@mtu-net.ru
2004-05-09 19:40
2004.06.20
Шрифты


1-1086765386
xman
2004-06-09 11:16
2004.06.20
Матрица в памяти


14-1086421412
тихий вовочка
2004-06-05 11:43
2004.06.20
Новая супер почта


14-1085914580
DiamondShark
2004-05-30 14:56
2004.06.20
Посоветуйте программу тестирования ОЗУ