比如我有一个字符串‘aaa|bbb|cccc’,我要根据'|'把它分成‘aaa’,‘bbb’,‘ccc’三个字符串

解决方案 »

  1.   

    用 split 函数可以将该字符串分解为 一个数组!如:
        arr=split("字符串","分隔符")
    -------------------------------------------------------
    http://kmok.cn
      

  2.   

    var
    str:string;
    arr:array[1..5] of char;
    begin
       str:='aaa,bbb,ccc';
       arr:=split(str,',');
    end;
    提示:
    [Error] Unit1.pas(33): Undeclared identifier: 'split'
      

  3.   

    function SplitString(const Source,ch:string):TStringList;
    var
      temp:String;
      i:Integer;
    begin
      Result:=TStringList.Create;
      if Source=''
      then exit;
      temp:=Source;
      i:=pos(ch,Source);
      while i<>0 do
      begin
         Result.add(copy(temp,0,i-1));
         Delete(temp,1,i);
         i:=pos(ch,temp);
      end;
      Result.add(temp);
    end;procedure TForm1.Button1Click(Sender: TObject);
    var t:TStringList;
    begin
      t:=SplitString('aaa|bbb|ccc','|');
      Label1.Caption:=t.Strings[0]; //aaa
    end;
      

  4.   

    function TForm1.ExtractString(const aString: string; const aSeparator: char; var aPos: Integer): string;
    var
      I: Integer;
    begin
      I := aPos;
      while (I <= Length(aString)) and (aString[I] <> aSeparator) do Inc(I);
      Result := Trim(Copy(aString, aPos, I - aPos));
      if (I <= Length(aString)) and (aString[I] = aSeparator) then Inc(I);
      aPos := I;
    end;procedure TForm1.Button1Click(Sender: TObject);
    var
      lString, lSubString: string;
      lPos, j: integer;
    begin
      lString := '023842394201342|343242423423|342342424|533423|2455';
      lPos := 1;
      j := 0;  while lPos <= Length(lString) do
      begin
        lSubString := ExtractString(lString, '|', lPos);
        inc(j);
      end;
    end;