String 和 VariantArray

[入库:2005年8月18日] [更新:2007年3月24日]

本文简介:选择自 luckyjan 的 blog

function stringtovariantarray(const s: string): olevariant;
var
  p: pointer;
begin
  result := null;
  if length(s) > 0 then
  begin
    result := vararraycreate([0, length(s) - 1], varbyte);
    p := vararraylock(result);
    try
      move(s[1], p^, length(s));
    finally
      vararrayunlock(result);
    end;
  end;
end;

function variantarraytostring(const v: olevariant): string;
var
  p: pointer;
  size: integer;
begin
  result := '';
  if varisarray(v) and (vartype(v) and vartypemask = varbyte) then
  begin
    size := vararrayhighbound(v, 1) - vararraylowbound(v, 1) + 1;
    if size > 0 then
    begin
      setlength(result, size);
      p := vararraylock(v);
      try
        move(p^, result[1], size);
      finally
        vararrayunlock(v);
      end;
    end;
  end;
end;

本文关键:String 和 VariantArray
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top