Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Большой текстовый файл [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


Наверх

Титульная страница Поиск, карта сайта Написать письмо