請大家伙儿幫個忙,操作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: 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;