關於流的簡單操作,錯在哪里? (100分)

  • 主题发起人 主题发起人 HereIsMe
  • 开始时间 开始时间
H

HereIsMe

Unregistered / Unconfirmed
GUEST, unregistred user!
請用樓下的代碼測試,問題是:為什麼ShowMessage(S)不是'aa'?
var
Len: word;
S, str: string;
b: Byte;
begin
str := 'aa';
Len := Length(str);
FieldStream.Seek(0, soFromBeginning);
FieldStream.Write(Len, 2);
FieldStream.Write(str, Len);

FieldStream.Seek(0, soFromBeginning);
FieldStream.Read(Len, 2);
SetLength(S, Len);
if Len > 0 then begin
FieldStream.Read(S[1], Len);
FieldStream.Read(b, 1);
if not VarIsNull(S) then
ShowMessage(S);//為何這里不顯示'aa'
end;
end;
 
var
Len: word;
S, str: string;
b: Byte;
FieldStream: TStream;
begin
FieldStream:=TMemoryStream.Create;
str := 'aa';
Len := Length(str);
FieldStream.Seek(0, soFromBeginning);
FieldStream.Write(Len, 2);
FieldStream.Write(str[1], Len);

FieldStream.Seek(0, soFromBeginning);
FieldStream.Read(Len, 2);
SetLength(S, Len);
if Len > 0 then begin
FieldStream.Read(S[1], Len);
FieldStream.Read(b, 1);
if not VarIsNull(S) then
ShowMessage(S);//為何這里不顯示'aa'
end;
end;
 
to :LeeChange
sorry
FieldStream已經定義且已經建立.
否則這段程序是不能運行的,而不是顯示不正確了.
 
FieldStream 是个什么东西?在哪定义的?
 
var
Len: word;
S, str: string;
b: Byte;
begin
str := 'aa';
Len := Length(str);
FieldStream.Seek(0, soFromBeginning);
FieldStream.Write(Len, 2);
FieldStream.Write(str[1], Len);

FieldStream.Seek(0, soFromBeginning);
FieldStream.Read(Len, 2);
SetLength(S, Len);
if Len > 0 then begin
FieldStream.Read(S[1], Len);
FieldStream.Read(b, 1);
if not VarIsNull(S) then
ShowMessage(S);//為何這里不顯示'aa'
end;
end;
 
tfieldstream是文件流,系統有的。
其他也不知道。剛才是樓主發的短消息嗎。
流不是很懂啊。
 
如果FieldStream创建了的话上面的过程没错,可以显示aa
 
楼主请仔细对比咱俩的代码,并不一样,多了个[1].
 
LeeChange说得没有错,应该象他说的这样就可以了!
 
LeeChange, thanks.
不過為什麼沒有了給分功能了!!!
 
呵呵,没有给分功能就不给了吧。[:D]
 
后退
顶部