有不有类似于VB中的这样的功能。(50分)

  • 主题发起人 主题发起人 RickLee
  • 开始时间 开始时间
R

RickLee

Unregistered / Unconfirmed
GUEST, unregistred user!
在VB中如果我们以BINARY方式打开一个文件,并写入一个BYTE数组。比如字符串:This is a test
.那么可以得到这样一个文件,这个文件的十六进制是这样的:T.i.s..i.s.。那么在DELPHI
中如何实现类似的功能。
 
你只的是不是
var
S:string;
begin
S:='This is a test字符串';
s[0],s[1],s[2].....
end;
这是单字节的双字节用widestring
可以用 c:array of widechar;或c:array of char 数组
 
可以,打开文件时用二进制方式打开再写
 
一样啊,用二进制直接写入
 
能给一个实例吗?
 
>>“这个文件的十六进制是这样的:T.i.s..i.s.。”
有这样的十六进制吗?
 
不好意思。是我写错了。我的本意是想把一个字符串,以UNICODE编码形式存入一个DAT文件。
 
这样就可以了
function AnsiToUnionCode(anistr: ansiString): WideString;
begin
Result := anistr;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
FileStream: TFileStream;
P: pchar;
L: Integer;
W: WideString;
begin
w := AnsiToUnionCode(Memo1.Text);
p := pchar(w);
FileStream := TFileStream.Create('c:/1.txt', fmCreate);
FileStream.Position := 0;
L := $FEFF;
FileStream.Write(l, 2);
FileStream.Write(p^, Length(w) * 2); //Length(w)<>Length(Memo1.Text) ;
FileStream.Free;
end;
 
VB 是双字节编码,在 delphi 中用 widestring
 
yuki2003的答案很正确。再问一个问题,如何用DELPHI以COM形式控件IE,比如:把IE中的文本
全部替换成我自己的特殊的文本
 
后退
顶部