var BackupName: string; FileHandle: Integer; StringLen: Integer; begin if SaveDialog1.Execute then begin if FileExists(SaveDialog1.FileName) then begin BackupName := ExtractFileName(SaveDialog1.FileName); BackupName := ChangeFileExt(BackupName, '.BAt'); if not RenameFile(SaveDialog1.FileName, BackupName) then raise Exception.Create('Unable to create backup file.'); end; FileHandle := FileCreate(SaveDialog1.FileName); FileWrite(FileHandle, 'ddddddddd', SizeOf('ddddddddd')); FileClose(FileHandle); end;
procedure WriteToStream(Str: string; Stream: TStream); var Len: integer; begin Len := Length(Str); Stream.WriteBuffer(Len,sizeof(Len)); if Len > 0 then Stream.WriteBuffer(Str[1],Len); end;var stream: tfilestream; str: string; begin str := 'i am naughtboy'; stream := tfilestream.Create('c:\aaa.bat',fmcreate); writetostream(str,stream) end;
BackupName: string;
FileHandle: Integer;
StringLen: Integer;
begin
if SaveDialog1.Execute then
begin
if FileExists(SaveDialog1.FileName) then
begin
BackupName := ExtractFileName(SaveDialog1.FileName);
BackupName := ChangeFileExt(BackupName, '.BAt');
if not RenameFile(SaveDialog1.FileName, BackupName) then raise Exception.Create('Unable to create backup file.');
end;
FileHandle := FileCreate(SaveDialog1.FileName);
FileWrite(FileHandle, 'ddddddddd', SizeOf('ddddddddd'));
FileClose(FileHandle);
end;
var
Len: integer;
begin
Len := Length(Str);
Stream.WriteBuffer(Len,sizeof(Len));
if Len > 0 then
Stream.WriteBuffer(Str[1],Len);
end;var
stream: tfilestream;
str: string;
begin
str := 'i am naughtboy';
stream := tfilestream.Create('c:\aaa.bat',fmcreate);
writetostream(str,stream)
end;
但是为什么bat文件中开头会出现一个大写的K呢?什么原因?请回复!
你用ultraedit可以看出来。另外忘了告诉你,steram用完要free掉