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

Вниз

чтение файла от конца к началу   Найти похожие ветки 

 
Bullfrog   (2007-06-12 19:40) [0]

Привет всем!
Меня интересует чтение файла от конца к началу, при том построково.
ситуация такова: читаю файл, например, по 10 строк и мне нужно изменить информацию этих десяти строк, как мне вернутся обратно, что-бы перезаписать этот участок?


 
Johnmen ©   (2007-06-12 19:48) [1]

Считываем весь файл, обрабатываем считанное, записываем обработанное взад в файл...


 
Bullfrog   (2007-06-12 19:58) [2]

не могу придумать как обработать первую строку этого участка, так как при поиске участка(который нужно отредактировать) все равно будет использоваться либо реад, либо реадлн и курсор будет находится уже внутри обрабатываемого участка, а нужно что-бы он был перед ним.


 
Johnmen ©   (2007-06-12 20:04) [3]

Ты писатель, не читатель?


 
Bullfrog   (2007-06-12 20:12) [4]


> Ты писатель, не читатель?

не могу понять к чему вопрос, наверное, ты решил, что я [1] не прочитал? Если так, то ошибаешься. Для того что бы записать исправленное в конец файла, нужно удалить из файла старое еще не исправленное и тут соответственно вылазит [2]
Или я че то мудрю?


 
Johnmen ©   (2007-06-12 20:18) [5]

Считываем весь файл,
обрабатываем считанное (в конце, в начале, в середине :)),
записываем обработанное взад в файл (перезаписываем файл)...


 
Bullfrog   (2007-06-12 22:36) [6]

даааа, тут я вообще попух....

Seek(F, 0); - на такую вещь выдает ошибку:
Incompatible types, что это такое?
В других местах этой же проги применял уже скока раз, там все работает, а здесь...


 
Bullfrog   (2007-06-12 22:55) [7]

Delphi syntax:

procedure Seek(var F; N: Longint);
вроде все же верно написано?


 
Bullfrog   (2007-06-12 23:34) [8]


> Delphi syntax:
>
> procedure Seek(var F; N: Longint);
> вроде все же верно написано?
>

блин! так она ратает только с двоичными файлами?
тогда какая процедура нужна мне?


 
Bullfrog   (2007-06-13 00:08) [9]


> Считываем весь файл,
> обрабатываем считанное (в конце, в начале, в середине :)),
>
> записываем обработанное взад в файл (перезаписываем файл).
> ..
>

как считать весь файл?
как перезаписать файл?


 
Плохиш ©   (2007-06-13 00:12) [10]

TStringList.LoadFromFile
TStringList.SaveToFile


 
Bullfrog   (2007-06-13 01:30) [11]

ничего не понял, как посредством этого можно удалить кусок файла?
может можно с помощью другого файла?
допустим примерно так:
assignfile(f,"test");
reset(f);
assignfile(ef,"etest");
append(ef);
for i:=0 to str do begin ReadLn(f,buf); WriteLn(ef,buf); end;
while not eof(f) do inc(i);
for k:=str+13 to i do begin ReadLn(f,buf); WriteLn(ef,buf); end;


где str - начало обрабатываемой части.

все бы хорошо, но опять неувязочка, при запуске такой фигни программу приходится выключать через диспетчер задач... %(((

помогите, пожалуйста


 
Bullfrog   (2007-06-13 01:38) [12]


> TStringList.LoadFromFile
> TStringList.SaveToFile
>

что за компонента такая? где ее взять


 
homm ©   (2007-06-13 01:38) [13]

> ничего не понял, как посредством этого можно удалить кусок файла?



var
 SL: TStringList;
begin
...
SL.LoadFromFile;
for i := SL.Count-11 to SL.Count-1 do begin
 SL.Strings[i] := "!!Editet "+SL.Strings[i];
end;
SL.SaveToFile;


Делает то , что написано в сабже. Изменяет 10 последних строк.


 
homm ©   (2007-06-13 01:39) [14]

> что за компонента такая?

Чукча, однака.
Это класс. Объявляеш, создаеш, работаешь, уничтожаешь.



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

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

Наверх




Память: 0.49 MB
Время: 0.023 c
11-1165231943
SergeR
2006-12-04 14:32
2007.07.08
Несколько вопросов по KOL с поддержкой unicode


15-1181021872
sergeyst
2007-06-05 09:37
2007.07.08
Куда делись компоненты?


2-1180960668
BFG9k
2007-06-04 16:37
2007.07.08
Найти application в сторонней программе


1-1178705716
logslava
2007-05-09 14:15
2007.07.08
Зависание программы при выходе из метода моего класса


2-1181635732
Oleg23
2007-06-12 12:08
2007.07.08
запросы на SQL