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

Вниз

Добавление записи в фаил   Найти похожие ветки 

 
The sound   (2005-10-06 12:40) [0]

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. Консолевое приложение.


 
Silver... ©   (2005-10-06 12:54) [1]

1.FileSize
2.Seek

По циклу от начала до конца и чтаем


> данные переменной wif добавлялись в верх файла

А с этим по сложне будет
1. Создаем "File2"
2. Пишем "wif"
3. Пишем всё остальное
4. Удаляем "File1"
5. Применяем RenameFaile

ибо в файле Нельзя Инсерировать


 
Anatoly Podgoretsky ©   (2005-10-06 13:02) [2]

Надо считывать все строки в цикле, а не одну. А так как у тебя текстовый файл, судя по коду, то может стоит отказаться от текстовых файлов, а использовать TStringList, там этот процесс автоматизирован.


 
The Sound   (2005-10-06 13:16) [3]

2Silver... ©
Спасибо, но...
[Error] Project1.dpr(36): Incompatible types
=(

2Anatoly Podgoretsky ©
Я бы с удавольствием использовал TStringList, но приложение консолевое.


 
Плохиш ©   (2005-10-06 13:19) [4]


> Я бы с удавольствием использовал TStringList, но приложение
> консолевое.

И чего?


 
Anatoly Podgoretsky ©   (2005-10-06 13:24) [5]

The Sound   (06.10.05 13:16) [3]
Тебя что то пугает?


 
The Sound   (2005-10-06 13:46) [6]

Разве в консолевом приложении возможно реализовать TStringList?
Можно пример, на основе моей программы?


 
Anatoly Podgoretsky ©   (2005-10-06 13:59) [7]

TStringList.Create


 
The Sound   (2005-10-08 00:16) [8]

Вот нашёл:

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) [9]

Вот нашёл:

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.

А каким образом делать запись в фаил?


 
Джо ©   (2005-10-08 00:37) [10]


> А каким образом делать запись в фаил?

Ну сам же и написал: SaveToFile("C:\MyFile.txt")


 
The Sound   (2005-10-08 03:11) [11]

2Джо ©,
это просто часть кода, не моя.
Я не  знаю, каким оператором, добавить в фаил значение переменной.


 
The Sound   (2005-10-08 03:34) [12]

Всё, разобрался, в том коде, было слишком много для меня лишнего.
Вот, так оставил, вроде норм работает. Спасибо за помошь.

with TStringList.Create do
try
 LoadFromFile("G:\log);
 Add(wif);
 SaveToFile("G:\log");
finally
end


 
Джо ©   (2005-10-08 03:39) [13]


>  [12] The Sound   (08.10.05 03:34)

В блоке finally нужно удалить экземпляр объекта. Т.е,
... // тут создаем объект
try
 ... // тут с ним работаем
finally
 Free; // тут его убиваем
end;



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

Форум: "Начинающим";
Текущий архив: 2005.10.30;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.042 c
14-1128921696
Ega23
2005-10-10 09:21
2005.10.30
С днем рождения! 10 октября


14-1128718115
LordOfRock
2005-10-08 00:48
2005.10.30
Narod.Ru


1-1128577548
Norsk
2005-10-06 09:45
2005.10.30
Определение TPopupMenu


3-1126770344
Larisa
2005-09-15 11:45
2005.10.30
При переносе файла БД Interbase 6.0


6-1120766047
stals
2005-07-07 23:54
2005.10.30
WinSock





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