Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.07.08;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.044 c
3-1176204080
Lavrenty
2007-04-10 15:21
2007.07.08
IBase и ClientDataSet


3-1175755536
Helen
2007-04-05 10:45
2007.07.08
Как отловить ошибки в тригере


15-1181296248
Serg1968
2007-06-08 13:50
2007.07.08
Аудио


2-1181727467
SunriseGirl
2007-06-13 13:37
2007.07.08
работа с базами данных и компонентами Delphi


2-1181923635
nord489
2007-06-15 20:07
2007.07.08
DBGrid





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский