Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как дописать данные в конец текстового файла?


Shopot ©   (2005-07-28 11:33:00) 

Использую CreateFile для открытия текстового файла.
Но старые данные стираются когда начинаю писать новые.
И вообще в текстовый файл записывается только одна строка.
Что делать?


alpet   (2005-07-28 13:10:00) [1]

begin...end ©   (28.07.05 13:09) [14]

Вот-вот, к тому же прочитанное быстро забываю :(. Это на самом деле SetFilePointer.


begin...end   (2005-07-28 13:09:00) [2]

> alpet ©   (28.07.05 11:53) [6]

Осталось только выяснить, что такое SetFilePosition.


alpet   (2005-07-28 12:12:00) [3]

Leonid Troyanovsky ©   (28.07.05 12:03) [12]

А кто сказал, что я читаю внимательно :))


Leonid Troyanovsky   (2005-07-28 12:03:00) [4]


> alpet ©   (28.07.05 11:54) [7]
> Shopot ©   (28.07.05 11:48) [5]
>
> А Я пишу на API и еще читаю MSDN :)


Ню-ню.

If the function fails, the return value is INVALID_HANDLE_VALUE

а не 0 ;)

--
Regards, LVT


Leonid Troyanovsky   (2005-07-28 12:03:00) [5]


> alpet ©   (28.07.05 11:54) [7]
> Shopot ©   (28.07.05 11:48) [5]
>
> А Я пишу на API и еще читаю MSDN :)


Ню-ню.

If the function fails, the return value is INVALID_HANDLE_VALUE

а не 0 ;)

--
Regards, LVT


Shopot   (2005-07-28 12:02:00) [6]

спасибо alpet!


alpet   (2005-07-28 12:01:00) [7]

Leonid Troyanovsky ©   (28.07.05 11:58) [8]

Ну если unilink пользовать(правильно), то не обязательно, другое дело что это еще надо знать :)


Leonid Troyanovsky   (2005-07-28 11:58:00) [8]


> Shopot ©   (28.07.05 11:48) [5]
> Я пишу на API.


Мазохист? ;)
System включается в любые exe.

--
Regards, LVT.


alpet   (2005-07-28 11:54:00) [9]

Shopot ©   (28.07.05 11:48) [5]

А Я пишу на API и еще читаю MSDN :)


alpet   (2005-07-28 11:53:00) [10]


function  WriteAdd (const s: string): Boolean;
var hFile:THandle;
   nWrited: DWORD;
begin
result := false;
hFile := CreateFile ('c:\boot.ini', GENERIC_WRITE, 0, nil, OPEN_ALWAYS, 0, 0);
if (0 = hFile) then exit;
SetFilePosition (hFile, 0, nil, FILE_END);
WriteFile (hFile, PChar (s + #13#10), Length (s) + 2, nWrited, nil);
CloseHandle (hFile);
result := nWrited > 0;
end;


Shopot   (2005-07-28 11:48:00) [11]

Я пишу на API.

AssignFile... и т. п. в школе проходил и прекрасно знаю,
как на паскале это делается.


Floppy   (2005-07-28 11:47:00) [12]

>alpet ©   (28.07.05 11:46) [2]
:((


alpet   (2005-07-28 11:46:00) [13]


AssignFile (t, 'file.txt');
Append (t);
WriteLn (t, 'string');
CloseFile (t);


Floppy   (2005-07-28 11:46:00) [14]

var F: TextFile;
....
AssignFile(F, 'Your text file');
Append(F);
Writeln(F, 'то, что хотим дописать');
Close(F);


Leonid Troyanovsky   (2005-07-28 11:39:00) [15]


> Shopot ©   (28.07.05 11:33)
 
> Использую CreateFile для открытия текстового файла.
> Но старые данные стираются когда начинаю писать новые.
> И вообще в текстовый файл записывается только одна строка.

У тебя ошибка в 17 строке.

> Что делать?

Например, использовать TFileStream.
Or, use the predefined TextFile or Text type, RTFM.

--
Regards, LVT.


Наверх

Титульная страница Поиск, карта сайта Написать письмо