請大家伙儿幫個忙,操作txt流文件時候WriteBuffer的問題,代碼如下
請大家幫個忙,操作txt流文件時候WriteBuffer的問題,代碼如下:
var
s: string;
date_str : ShortString;
Itxt: TFileStream;
begin
date_str:=FormatDateTime('yyyy/MM/dd',Date);
s:= 'imgtxt.txt';
Itxt:= TFileStream.Create(s,fmCreate);
Itxt.Write(date_str,length(date_str)+1);
Itxt.Free;
end;
中兄弟有如下問題請假
(1)為何如果我寫成Itxt.Write(date_str,length(date_str));imgtxt.txt中记录的日期会少一位,将会写成"2013/01/0"
(2)如果我將date_str : String;將在imgtxt.txt中写出乱码
(3)我想如果我定义date_str: array of byte;是否结果就正常了?
那么我该怎么给date_str賦值,(需要将string类型转为array of byte,),那么我这代码又该如何写,
还请大家帮忙
------解决方案--------------------
date_str pos 0处是字符串长度,内容是从1开始的,你要传 date_str[1]进去。
------解决方案--------------------
var
s: string;
date_str : ShortString;
Itxt: TFileStream;
begin
date_str:=FormatDateTime('yyyy/MM/dd',Date);
s:= 'imgtxt.txt';
Itxt:= TFileStream.Create(s,fmCreate);
Itxt.Write(date_str,length(date_str)+1);
Itxt.Free;
end;
中兄弟有如下問題請假
(1)為何如果我寫成Itxt.Write(date_str,length(date_str));imgtxt.txt中记录的日期会少一位,将会写成"2013/01/0"
(2)如果我將date_str : String;將在imgtxt.txt中写出乱码
(3)我想如果我定义date_str: array of byte;是否结果就正常了?
那么我该怎么给date_str賦值,(需要将string类型转为array of byte,),那么我这代码又该如何写,
还请大家帮忙
------解决方案--------------------
date_str pos 0处是字符串长度,内容是从1开始的,你要传 date_str[1]进去。
------解决方案--------------------
var
s: string;
date_str: array[0..9] of Char;
Itxt: TFileStream;
begin
s := FormatDateTime('yyyy/MM/dd', Date);
StrCopy(date_str, @s[1]);
s := 'imgtxt.txt';
Itxt := TFileStream.Create(s, fmCreate);
Itxt.Write(date_str, length(date_str));
Itxt.Free;
end;
var
s: string;
date_str: TStringList;
begin
date_str := TStringList.Create;
date_str.Text := FormatDateTime('yyyy/MM/dd', Date);
s := 'imgtxt.txt';
date_str.SaveToFile(s);
date_str.Free;
end;