![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Большой текстовый файл [D5, D6, Win95/98, WinME, Win2k, WinXP]
Toniel © (2002-06-24 16:38:00)Не подскажете начинающему, как из простого текстового файла прочитать некоторую строку... Файл размером в 20 мегов, мне же надо прочитать для роверки версии файла только 1-5 строки, причем по очереди...
При том обращении, которое я пытался сделать, приложение у меня просто висло...
Toniel (2002-06-25 17:31:00) [1]Прошу прощения за молчание...
Значит так... У меня такая задача:
есть файл от сервера Ультимы - Сфера, и вот мне надо с его сейвом чаров поработать.
Структура фала такова:
в первых четырех строках идет описание сейва.
потом в строке с квадратными скобками идет типа тэга начало описания самого чара, далее полное описание статистики чара.. Каждый итем находящийся в сумке или на самом чаре тоже начинается с описания строки в квадратных скобках..
Так вот что я хочу сделать: программа которая говорит сколько чаров зарегистрированно, при выборе определенного чара прога дает описание его статистики и содержание вещей. И еще, основная задача программы, чтобы она могла редактировать эти данный с последующем сохранением..
собственно говря я завяз в самом начале..
Anatoly Podgoretsky (2002-06-25 10:04:00) [2]Song © (24.06.02 18:59)
Можно, если ОС позволяет создавать файлы такого размера, это же Stream!
А вот автор вопроса молчит как партизан, что же он хочет сделать.
nimble (2002-06-25 06:46:00) [3]А можно попробовать FileMapping, у меня 80 метровый файл читает около 10-15 секунд. Иногда и по больше, но обычно так.
MBo (2002-06-25 06:30:00) [4]>zam
Для указанной задачи использование Stream по крайней мере неразумно.
Да и приведенная реализация чтения страдает большими недостатками.
Song (2002-06-24 18:59:00) [5]А.. сори я подумал что 20Гб :-))
DmitryV (2002-06-24 18:52:00) [6]>Song © (24.06.02 18:46)
Хм...запросто! И по 120 метров запихивал :-)))
Song (2002-06-24 18:46:00) [7]Хм... сомневаюсь однако что в TFileStream можно 20 мбайтный файл засунуть...
zam (2002-06-24 18:43:00) [8]Быстрее под винды использовать TFileStream
Вот кусок кода, чтобы считать файл большой длины в строку
var
buf : array[0..100000] of char;
fs : TFileStream;
i : integer;
begin
fs := TFileStream.Create(s,fmOpenread+fmShareDenyNone);
buf:=""; s:="";
for i:= 1 to 1 + (fs.Size div 100000) do begin
s:=s+copy(buf,1,fs.read(buf,100000));
end; fs.free;
Для чтения конкретных кусков используй Seek
Anatoly Podgoretsky (2002-06-24 18:39:00) [9]20 мегабайт это не большой файл, к тому же я как понял тебе первые 5 строк, читай их с помощью ReadLn
Насчет зависания у тебя ошибка в 17 строке
MBo (2002-06-24 16:41:00) [10]var f:text;
AssignFile
Reset
Readln
CloseFile