Delphi下用WriteFile和ReadFile怎样读写String类型的数据,谢绝理论,要例子。
解决方案 »
- 请大家帮帮忙
- 菜鸟求助
- 关于datamodule连接的问题!
- 请问在有SaveDialog保存文件的时候能不能指定编码形式?unicode??
- 各位晚上好,由于最近很忙,好久没光顾了,向大家问好!
- 请高手帮忙-----关于对SQL表中记录条数的计算
- 怎么在客户机上装BDE?高分相送
- 如何显示自定义鼠标指针?
- 用copyfile函数备份数据库文件时,如果目标文件objfile事先并不存在怎么办?
- ?控制关键字段的重复输入及报错的问题?急!急!急!!
- 如何在同一个listview中拖动item以调整原来的顺序?
- 管理设备API SetupDiGetClassDevs 等一系列函数在 Delphi中的那个单元里面呢?
procedure TForm1.bRClick(Sender: TObject);
var
F2R: THandle;
data: array[0..255] of Char;
len: Cardinal;
begin
F2R:= CreateFile(PChar('c:\rw.txt'),
GENERIC_READ,
0,
nil,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
0);
ReadFile(F2R, data, 256, len, nil);
ShowMessage(data);
end;// Write
procedure TForm1.bWClick(Sender: TObject);
var
F2W: THandle;
len: Cardinal;
data: array[0..255] of Char;
begin
data:= '1234567';
F2W:= CreateFile(PChar('c:\rw.txt'),
GENERIC_WRITE,
0,
nil,
CREATE_ALWAYS,
FILE_ATTRIBUTE_NORMAL,
0);
WriteFile(F2W, data, 256, len, nil);
CloseHandle(F2W);
//
end;
var
i: Integer;
s: string;
list: array of PChar;
begin
Dest := AllocMem((Source.Count + 1) * SizeOf(PChar)); // one more for an extra nil pointer
SetLength(List, Source.Count + 1);
for i := 0 to Source.Count - 1 do
begin
s := Source[i];
list[i] := StrAlloc(Length(s) + 1);
StrPCopy(list[i], s);
end;
list[Source.Count] := nil;
Move(list[0], Dest^, (Source.Count + 1) * SizeOf(PChar));
Result := Dest;
end;procedure PCharArrayToStrings(const Dest: TStrings; const Source: PPSTR; const Count: Integer);
var
i: Integer;
list: array of PChar;
begin
SetLength(list, Count);
Move(Source^, list[0], Count * SizeOf(PChar));
Dest.Clear;
for i := 0 to Count - 1 do
Dest.Add(List[i]);
end;procedure FreePCharArray(var Dest: PPSTR; const Count: Integer);
var
i: Integer;
list: array of PChar;
begin
SetLength(list, Count);
Move(Dest^, list[0], Count * SizeOf(PChar));
for i := 0 to Count - 1 do
StrDispose(list[i]);
FreeMem(Dest, (Count + 1) * SizeOf(PChar));
Dest := nil;
end;