var v:olevariant; s:string; i:integer; begin s:=memo1.Lines.Text; i:=length(s); showmessage(s[1]); v:=VarArrayCreate([0,i],varByte); for i :=1 to length(s)-1 do v[i-1]:=ord(s[i]); end;
var v:olevariant; s:string; i:integer; begin s:=memo1.Lines.Text; i:=length(s); v:=VarArrayCreate([0,i-1],varByte); for i :=1 to length(s) do v[i-1]:=ord(s[i]); end;
to:dinglinger(红辣椒) 怎样把olevariant变成string呢?
var v:olevariant; s:string; i,j:integer; begin //--------------------------- // string--->variant //--------------------------- s:=memo1.Lines.Text; i:=length(s); v:=VarArrayCreate([0,i-1],varByte); for i :=1 to length(s) do v[i-1]:=ord(s[i]);//-------------------------- // variant--->string //-------------------------- j:=VarArrayHighBound(v,1); setlength(s,j+1); for i :=0 to J do byte(s[i+1]):=byte(v[i]); memo1.Lines.Add('-----------------add new line:------------------------------'); memo1.Lines.Add(s);end;
其实直接赋值就可以了,多定义一个变量让它内部来进行转换。 a: OleVariant;procedure TForm1.Button1Click(Sender: TObject); var b: WideString; begin b:=Memo1.Text ; a:=b; end;procedure TForm1.Button2Click(Sender: TObject); var c: WideString; begin c:=a; Memo2.Text:=c; end;
Erice(白雪公猪):可以给个代码看看吗,即把widestring变成OLEVARIANT类型
你们可以给个代码看看吗,即把widestring变成OLEVARIANT类型,到了服务端然后在转化为widestring
v:olevariant;
s:string;
i:integer;
begin
s:=memo1.Lines.Text;
i:=length(s);
showmessage(s[1]);
v:=VarArrayCreate([0,i],varByte);
for i :=1 to length(s)-1 do
v[i-1]:=ord(s[i]);
end;
v:olevariant;
s:string;
i:integer;
begin
s:=memo1.Lines.Text;
i:=length(s);
v:=VarArrayCreate([0,i-1],varByte);
for i :=1 to length(s) do
v[i-1]:=ord(s[i]);
end;
怎样把olevariant变成string呢?
var
v:olevariant;
s:string;
i,j:integer;
begin
//---------------------------
// string--->variant
//---------------------------
s:=memo1.Lines.Text;
i:=length(s);
v:=VarArrayCreate([0,i-1],varByte);
for i :=1 to length(s) do
v[i-1]:=ord(s[i]);//--------------------------
// variant--->string
//--------------------------
j:=VarArrayHighBound(v,1);
setlength(s,j+1);
for i :=0 to J do
byte(s[i+1]):=byte(v[i]);
memo1.Lines.Add('-----------------add new line:------------------------------');
memo1.Lines.Add(s);end;
var
b: WideString;
begin
b:=Memo1.Text ;
a:=b;
end;procedure TForm1.Button2Click(Sender: TObject);
var
c: WideString;
begin
c:=a;
Memo2.Text:=c;
end;