![]() |
|
|
#1
|
|||
|
|||
|
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
str:string;
written:cardinal;
begin
str:='Test - Тест';
WriteFile(H_File,str,Length(str),written,nil);
FileClose(H_File);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
H_File:=CreateFileW('D:\test.txt',GENERIC_WRITE,FILE_SHARE_READ,
nil,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,0);
if (GetLastError()=INVALID_HANDLE_VALUE) then
ShowMessage('Не удалось создать файл');
end; |
|
#2
|
||||
|
||||
|
а вот так чем не устраивает:
Код:
var
f: file;
buf: PChar;
begin
buf := 'текст';
try
AssignFile(f, 'file.txt');
Rewrite(f, 1);
BlockWrite(f,buf^,Length(buf));
CloseFile(f);
except
ShowMessage('ошибка создания файла');
end;
end; |
|
#3
|
|||
|
|||
|
Нужно именно на API.
|
|
#4
|
||||
|
||||
|
вот так попробуй:
Код:
var
H_File: THandle;
.....
procedure TForm1.Button1Click(Sender: TObject);
var
str: PChar;
written: cardinal;
begin
str := 'Test - Тест';
WriteFile(H_File,str^,Length(str),written,nil);
FileClose(H_File);
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
H_File := CreateFileW('D:\test.txt',GENERIC_WRITE,FILE_SHARE_READ,
nil,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,0);
if (GetLastError() = INVALID_HANDLE_VALUE) then
ShowMessage('Не удалось создать файл');
end;проверил, работает ![]() Последний раз редактировалось Marvel, 22.06.2010 в 11:52. |
|
#5
|
|||
|
|||
|
У меня выводит в файле лишь - "T e s t - ".
P.S. Delphi2010 Последний раз редактировалось Muxa, 22.06.2010 в 15:44. |
|
#6
|
||||
|
||||
|
замените
Код:
str: PChar; Код:
str: PAnsiChar; это связано с тем, что Delphi 2009/2010 по умолчанию работают в Unicode. Отключить Unicode просто так нельзя, но если Unicode вообще не нужен, то проблема легко решается механической заменой string на AnsiString, char на AnsiChar, PChar на PAnsiChar. Последний раз редактировалось Marvel, 22.06.2010 в 16:37. |
|
#7
|
|||
|
|||
|
Спасибо, разобрался.
|
|
#8
|
|||
|
|||
|
Цитата:
----------- Разобрался Последний раз редактировалось Muxa, 23.06.2010 в 18:57. |
|
#9
|
||||
|
||||
|
Код:
CreateFileW(PChar('D:\test.txt'),GENERIC_WRITE,FILE_SHARE_READ,nil,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,0); |