procedure TForm1.Button1Click(Sender: TObject);
var
arr:array of Char;
Str:String;
M_Stream:TFileStream;
begin
M_Stream:=TFileStream.Create('e:\aa.txt',fmOpenReadWrite);
Str:='Qiugaoqi';
SetLength(arr,Length(Str));
M_Stream.Seek(M_Stream.Size,0);
M_Stream.Write(arr,Length(Str));
M_Stream.Free;
end;为什么这个写出来的是乱码呢?用静态数组就可以呢?
什么是Buff的概念呢?
var
arr:array of Char;
Str:String;
M_Stream:TFileStream;
begin
M_Stream:=TFileStream.Create('e:\aa.txt',fmOpenReadWrite);
Str:='Qiugaoqi';
SetLength(arr,Length(Str));
M_Stream.Seek(M_Stream.Size,0);
M_Stream.Write(arr,Length(Str));
M_Stream.Free;
end;为什么这个写出来的是乱码呢?用静态数组就可以呢?
什么是Buff的概念呢?
解决方案 »
- 谁做过云台的控制程序
- 怎样在edit1中输入完123后按回车自动变成123.00??
- 为什么每次给ClientDataSet1.commandtext赋值总是出现错误?在线等!!
- help~!
- OICQ等聊天软件是怎样建立点对点连接的?
- 我的自定义控件中用到了滚动条,我想设定它的ctl3d属性,怎么做?
- 调查一下:如果跳槽的话,大家一般通过什么渠道寻求新的单位?(版主请先不要删)
- 请教一个Tchart的使用问题
- 打印机监测程序
- 再次提问:如何判断一个表中已经存在一个字段呢?
- reportmachine memo自动分页
- socket 怎么传送和接受自定义结构体:Type userinfo=record name:string; end;
var
arr:array of Char;
Str:String;
M_Stream:TFileStream;
begin
M_Stream:=TFileStream.Create('e:\aa.txt',fmOpenReadWrite);
Str:='Qiugaoqi';
SetLength(arr,Length(Str));
M_Stream.Seek(M_Stream.Size,0);
//M_Stream.Write(arr,Length(Str)); //Write的第一个参数是内存的首地址,而动态数组是一个指针
M_Stream.Write(arr^,Length(Str));
M_Stream.Free;
end;
procedure Test(const buffer; var target);
最好将字符串结束符#0的长度加上
最好将字符串结束符#0的长度加上
===========
这个并不是必要的,有时候相当于画蛇添足(有过惨痛经历^_^)。