procedure TForm1.Button1Click(Sender: TObject);
var
DestinyStream: TFileStream;
a: String;
begin
edit1.text := 'abcdefghijklmn0p';
a := 'abcdefghijklmn0p'; a:= edit1.text; //如果不用这句就行,用了就不行驶 高手请赐教 DestinyStream := TFileStream.Create('a.ini', fmCreate);
try
DestinyStream.Write(a, 16);
finally
DestinyStream.Free;
end;
end;procedure TForm1.Button2Click(Sender: TObject);
var
DestinyStream: TFileStream;
b: String;
begin
setlength(b, 16); DestinyStream := TFileStream.Create('a.ini', fmOpenRead);
try
DestinyStream.Seek(-16, soFromEnd);
DestinyStream.ReadBuffer(b, Sizeof(b));
showmessage(b);
finally
DestinyStream.Free;
end;
end;
var
DestinyStream: TFileStream;
a: String;
begin
edit1.text := 'abcdefghijklmn0p';
a := 'abcdefghijklmn0p'; a:= edit1.text; //如果不用这句就行,用了就不行驶 高手请赐教 DestinyStream := TFileStream.Create('a.ini', fmCreate);
try
DestinyStream.Write(a, 16);
finally
DestinyStream.Free;
end;
end;procedure TForm1.Button2Click(Sender: TObject);
var
DestinyStream: TFileStream;
b: String;
begin
setlength(b, 16); DestinyStream := TFileStream.Create('a.ini', fmOpenRead);
try
DestinyStream.Seek(-16, soFromEnd);
DestinyStream.ReadBuffer(b, Sizeof(b));
showmessage(b);
finally
DestinyStream.Free;
end;
end;
解决方案 »
- F1BOOK中的曲线图问题,100分求助,跪求答案,分不够再加
- abort有什么用?
- 请教如何改变 DBGrid中某一列的值?
- 在DBGrid中输入数据时,不管是insert或append,都是在未尾加一行的,现在我想在某一行的前面或者后面插入一行!该如何实现?
- 关于Windows XP (大客户授权上海政府版)在线更新的问题?
- 求高招:关于文件防删防改,怎么样,各路高人,不算难吧?江湖救急,来接分吧!^-^
- 给大家推荐一个望站http://www.01cn.net/
- 使用OleContainer控制word或excel,如何实现打印预览?如何在状态栏显示word或excel当前的状态?
- Sos,那位有或知道在那里下载BO 木马的 源代码
- 关于DnCNN的一个问题
- FastReport3.0在程序运行时用户修改并保存,可是重新运行时怎么还是和未修改的一样?
- 关于绑定多个事件--请问各位,Delphi有无事件组相关的类,内详。
var
DestinyStream: TFileStream;
a: String;
begin
edit1.text := 'abcdefghijklmn0p';
a := 'abcdefghijklmn0p'; a:= edit1.text; //如果不用这句就行,用了就不行驶 高手请赐教 DestinyStream := TFileStream.Create('a.ini', fmCreate);
try
DestinyStream.Write(a, 16);
finally
DestinyStream.Free;
end;
end; a := 'abcdefghijklmn0p';
将A初始长度分配了16个字符
a:= edit1.text; 又重新分配了长度,如果分配长度不够16个字符会导致DestinyStream.Write(a, 16);出错。因为超出了正常的访问地址。
不过DestinyStream.Write(a, 16);这样写好象会有问题,a的字符内容是从a[1]开始的
所以应该是DestinyStream.Write(a[1], 16);
用你的方法试过了,还是会出错,请大家帮忙。
Write(const Buffer; Count: Longint): Longint; override;
如果你要使用的话最好别把控件的属性当缓冲区.免得出错误.我写这类的操作的时候基本上是用数组当缓冲的.
DestinyStream: TFileStream;
buffer:Array of Char;
a: String;
begin a := 'abcdefghijklmn0p';
setlength(buffer,length(a));
strpcopy(@buffer[0],a);
DestinyStream := TFileStream.Create('c:\a.ini', fmCreate);
try
DestinyStream.Position:=0;
DestinyStream.Write(buffer, length(buffer));
finally
DestinyStream.Free;
end;
end;
代码给你贴出来.
var
DestinyStream: TFileStream;
a: String;
begin
edit1.text := 'abcdefghijklmn0p';
a := 'abcdefghijklmn0p';a:= edit1.text; //如果不用这句就行,用了就不行驶 高手请赐教DestinyStream := TFileStream.Create('a.ini', fmCreate);
try
DestinyStream.Write(PChar(a)^, 16);
finally
DestinyStream.Free;
end;
end;procedure TForm1.Button2Click(Sender: TObject);
var
DestinyStream: TFileStream;
b: String;
begin
setlength(b, 16);DestinyStream := TFileStream.Create('a.ini', fmOpenRead);
try
DestinyStream.Seek(-16, soFromEnd);
DestinyStream.ReadBuffer(PChar(b)^, Length(b));
showmessage(b);
finally
DestinyStream.Free;
end;
end;