Форум: "Основная";
Текущий архив: 2004.06.20;
Скачать: [xml.tar.bz2];
ВнизКоличество прочитанных байт Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.032 c