Взаимные преобразования OleVariant и String

Ниже приведены две простые функции на Delphi для преобразования OleVariant в String и обратно. Функции написаны с использованием TStringStream.

1. Преобразование OleVariant в String

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
uses Classes, Variants;
function OleVariantToString(const Value: OleVariant): string;
  var ss: TStringStream;
      Size: integer;
      Data: PByteArray;
begin
  Result:='';
  if Length(Value) = 0 then Exit;
  ss:=TStringStream.Create;
  try
    Size := VarArrayHighBound (Value, 1) - VarArrayLowBound(Value, 1) + 1;
    Data := VarArrayLock(Value);
    try
      ss.Position := 0;
      ss.WriteBuffer(Data^, Size);
      ss.Position := 0;
      Result:=ss.DataString;
    finally
      VarArrayUnlock(Value);
    end;
  finally
    ss.Free;
  end;
end;

2. Преобразование String в OleVariant

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
uses Classes, Variants;
function StringToOleVariant(const Value: string): OleVariant;
  var Data: PByteArray;
      ss: TStringStream;
begin
  Result:=null;
  if Value='' then Exit;
  ss:=TStringStream.Create(Value);
  try
    Result := VarArrayCreate ([0, ss.Size - 1], varByte);
    Data := VarArrayLock(Result);
    try
      ss.Position := 0;
      ss.ReadBuffer(Data^, ss.Size);
    finally
      VarArrayUnlock(Result);
    end;
  finally
    ss.Free;
  end;
end;

Related Post

Как на Delphi из HTML получить текст?... При программировании на...
Определение Google Page Rank на Delphi... Определение SEO параметров, которые присваивают главные поисковые машины тем или иным сайтам, является достаточно распространенной задачей при програ...
MSSpeller для последних версий Microsoft Office... Технология проверки ор&#...

Leave a Reply

Your email address will not be published. Required fields are marked *