有var
  allstr:string;
  strarray:Tstrarray;
begin
  allstr:='1^138xxxx^20051101^2005110101^建行XX分行营业部^8392538^';
{
  以 ^ 为分隔符!  请问如何快速的,因为有几千行,所以,第一要速度计快^)^
  使
   strarray[0]:='1';
   strarray[1]:='138xxxx';
   strarray[2]:='20051101';
   strarray[3]:='2005110101';
   strarray[4]:='建行XX分行营业部';
   strarray[4]:='8392538';
}
end;请各位帮忙!

解决方案 »

  1.   

    var
      allstr: string;
    //  strarray: Tstrarray;
      TS: TStrings;
      i: Integer;
    begin
      allstr := '1^138xxxx^20051101^2005110101^建行XX分行营业部^8392538^';
      TS := TStringList.Create;
      TS.Delimiter := '^';                              // 指定分割符为'^'
      TS.DelimitedText := Trim(allstr);                 // 分割字符串
      for i := 0 to TS.Count -1 do
        ShowMessage(TS.Strings[i]);
    end;
      

  2.   

    如果你非要放到
     strarray:Tstrarray;
    你用个循环从TS加到strarray里就行了!
      

  3.   

    多谢如果allstr := '1^138xxxx^20051101^2005110101^建行XX分行营业部^8392538^';超过255
    即字符串长度超过255,应该怎样声明呢?
      

  4.   

    delphi的string 可达2G,用上面的声明就可以了
      

  5.   

    不行啊~~~编译通不过
    提示
      [Error] Main.pas(162): String literals may have at most 255 elements
      

  6.   

    奇怪,我在里面加上个'+'又可以编译!allstr := '1^138xxxx^20051101^2005110101^建行XX分行营业部^8392538^'+'asdfasdfasdfa......';
      

  7.   

    delphi的字串常量不能超过255个,你可用+
    '1^138xxxx^20051101^2005110101^建行XX分行营业部^8392538^1^138xxxx^20051101^'+'1^138xxxx^20051101^2005110101^建行XX分行营业部^8392538^1^138xxxx^20051101^'+...
    就可以了