Главная страница
    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.48 MB
Время: 0.048 c
4-1170068464
Nebiyev
2007-01-29 14:01
2007.07.08
Запись на CD


1-1178612822
nali
2007-05-08 12:27
2007.07.08
Обмен значениями между потоками


2-1181990364
Kolan
2007-06-16 14:39
2007.07.08
При копировании в буфер обмена строки портятся, как исправить?


3-1174564693
Хаванагил
2007-03-22 14:58
2007.07.08
Иерархические структуры


2-1181733831
SunriseGirl
2007-06-13 15:23
2007.07.08
Работа с компонентами Delphi





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский