![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Добавление записи в фаил [D7, XP]
The sound © (2005-10-06 12:40:00)Hello. Сначало приведу часть кода:
<...>
VAR
regkey: integer;
f: TextFile;
d,t,wif,fd,fn: string;
Ch1 string;
<...>
wif :='['+IntToStr(regkey)'] ['+ d+ ' ; '+ t+ ']';
AssignFile(f,'G:\log');
Reset(f);
Read(f, Ch1);
CloseFile(f);
Rewrite(f);
Writeln(f,wif);
Writeln(f,Ch1);
CloseFile(f);
<...>
Как видно из кода, программа открывает фаил для чтения, считывает из него 1ую строчку, заносит её в переменную Ch1. Закрывает фаил. Далее, программа открывает фаил для записи, и пишет в него значения переменных Ch1, и wif. Закрывает фаил.
Мне нужно, что бы при открытии файла, считывалась не только 1ая строчка, а весь фаил, и затем, данные переменной wif добавлялись в верх файла.
Подскажите, каким образом, это возможно реализовать? Спасибо.
P.S. Консолевое приложение.
Джо (2005-10-08 03:39:00) [1]
> [12] The Sound (08.10.05 03:34)
В блоке finally нужно удалить экземпляр объекта. Т.е,
... // тут создаем объект
try
... // тут с ним работаем
finally
Free; // тут его убиваем
end;
The Sound (2005-10-08 03:34:00) [2]Всё, разобрался, в том коде, было слишком много для меня лишнего.
Вот, так оставил, вроде норм работает. Спасибо за помошь.
with TStringList.Create do
try
LoadFromFile('G:\log);
Add(wif);
SaveToFile('G:\log');
finally
end
The Sound (2005-10-08 03:11:00) [3]2Джо ©,
это просто часть кода, не моя.
Я не знаю, каким оператором, добавить в фаил значение переменной.
Джо (2005-10-08 00:37:00) [4]
> А каким образом делать запись в фаил?
Ну сам же и написал: SaveToFile('C:\MyFile.txt')
The Sound (2005-10-08 00:16:00) [5]Вот нашёл:
var
S: string;
begin
with TStringList.Create do
try
LoadFromFile('C:\MyFile.txt');
if Count >= 3 then
begin
S := Strings[2];
if Length(S) > 0 then
begin
S[1] := 'A';
SaveToFile('C:\MyFile.txt')
end
end
finally
Free
end
end.
А каким образом делать запись в фаил?
The Sound (2005-10-08 00:16:00) [6]Вот нашёл:
var
S: string;
begin
with TStringList.Create do
try
LoadFromFile('C:\MyFile.txt');
if Count >= 3 then
begin
S := Strings[2];
if Length(S) > 0 then
begin
S[1] := 'A';
SaveToFile('C:\MyFile.txt')
end
end
finally
Free
end
end.
А каким образом делать запись в фаил?
Anatoly Podgoretsky (2005-10-06 13:59:00) [7]TStringList.Create
The Sound (2005-10-06 13:46:00) [8]Разве в консолевом приложении возможно реализовать TStringList?
Можно пример, на основе моей программы?
Anatoly Podgoretsky (2005-10-06 13:24:00) [9]The Sound (06.10.05 13:16) [3]
Тебя что то пугает?
Плохиш (2005-10-06 13:19:00) [10]
> Я бы с удавольствием использовал TStringList, но приложение
> консолевое.
И чего?
The Sound (2005-10-06 13:16:00) [11]2Silver... ©
Спасибо, но...
[Error] Project1.dpr(36): Incompatible types
=(
2Anatoly Podgoretsky ©
Я бы с удавольствием использовал TStringList, но приложение консолевое.
Anatoly Podgoretsky (2005-10-06 13:02:00) [12]Надо считывать все строки в цикле, а не одну. А так как у тебя текстовый файл, судя по коду, то может стоит отказаться от текстовых файлов, а использовать TStringList, там этот процесс автоматизирован.
Silver... (2005-10-06 12:54:00) [13]1.FileSize
2.Seek
По циклу от начала до конца и чтаем
> данные переменной wif добавлялись в верх файла
А с этим по сложне будет
1. Создаем "File2"
2. Пишем "wif"
3. Пишем всё остальное
4. Удаляем "File1"
5. ПрименяемRenameFaile
ибо в файле Нельзя Инсерировать