怎样将一行用“|”隔开的字符串放到一个数组中(用“|”隔开的字符串是数组中的每一项)?能否给出具体的代码?多谢各位了,领导催得很急!

解决方案 »

  1.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      StrList: TStringList;
      s: string;
    begin
      s := 'adf|wefa|aewfawfe|qwefa';
      StrList := TStringList.Create;
      try
        StrList.Delimiter := '|';
        StrList.DelimitedText := s;
        Memo1.Lines.Assign(StrList); // 验证
      finally
        FreeAndNil(StrList);
      end;
    end;
      

  2.   

    procedure StrToStrings(S, Sep: string;
      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;
    var
      b: TStrings;b := TStringList.Create;
    StrToStrings('a|b|c', '|', b);
      

  3.   

    for i:=0 to ( | count)-1 do
    begin
     数组:=copy(str,0,pos('|',str)-1));  句1
     Delete(str,1,pos('|',str));            句2 
    end;      用 句1 把第一个‘ |‘前的string提取出来 存入你的数组里
          用 句2 把第一个‘ |‘和前面提取出来的string从原来的字符串中
                      删除!(这句是为了下次调用 句1 不会重复)