uses StrUtils;procedure StrToStrings(S: AnsiString; Sep: AnsiString; const List: TStrings);
var
  I, L: Integer;
  Left: AnsiString;
begin
  Assert(List <> nil);
  List.Clear;
  L := Length(Sep);
  I := Pos(Sep, S);
  while (I > 0) do
  begin
    Left := LeftStr(S, I - 1);
    List.Add(Left);
    Delete(S, 1, I + L - 1);
    I := Pos(Sep, S);
  end;
  if S <> '' then
    List.Add(S);
end;

解决方案 »

  1.   

    struct TGUID
    {
    unsigned D1;
    Word D2;
    Word D3;
    Byte D4[8];
    } ;StringToGUID为什么不能用?
      

  2.   

    用s:=copy(str,i,len)可以
    s:为要的字符串,str为原串,i 为从第几位开始,len是新串的长度!
      

  3.   

    TO:windindance(风舞轻扬) id : TGUID;
    begin
            id := StringToGUID(ID.Text);
    end;
    出错信息为StringToGUID没定义。
      

  4.   

    uses SysUtils;
    id : TGUID;
    begin
            id := StringToGUID(ID.Text);
    end;
      

  5.   

    另外:
    你的程序有问题:
    id := StringToGUID(ID.Text);
    //delphi是不区分大小写的。
    id和ID是一样的
      

  6.   

    ///////////Give you a delphi fucntion translated from C++/////////function GetString( p: PChar; sDelimiter: Char; var sRet: String): PChar;
    var q: PChar;
    begin
      while ( Assigned(p) and (p^ <> #0) and ( p^ < #32) ) do
        Inc(p);
      q := p;  while ( Assigned(p) and (p^ <> #0) and not ( (p^ < #32) or (p^ = sDelimiter)) ) do
        Inc(p);  sRet := Trim(Copy(q,1,p-q));  if ( Assigned(p) and (p^ <> #0) and  ( p^ = sDelimiter ) ) then
       Inc(p);  Result :=  p;
    end;var p: PChar;
    begin
      p := PChar(GUIDStr);
      p := GetString(p,'-',FirstField);
      p := GetString(p,'-',SecondField);
      ......
    end;GetString(GUIDStr,
      

  7.   

    chechy(我爱洁洁) 的信誉好高啊!