Главная страница
    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.032 c
2-1128578979
Wolferio
2005-10-06 10:09
2005.10.30
Сколько папок на розделе


14-1128433707
oldman
2005-10-04 17:48
2005.10.30
Интересное наблюдение (провокационные ветки)


14-1128537581
bSava
2005-10-05 22:39
2005.10.30
Помощник Microsoft


14-1128009414
Kerk
2005-09-29 19:56
2005.10.30
9 признаков американца (наверно баян)


2-1128934886
Wolferio
2005-10-10 13:01
2005.10.30
Печать на матричный принтер.





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