Delphi Split-Merge字符串没有分隔符?

时间:2014-09-21 14:26:13

标签: string algorithm delphi

您好我正在处理字符串拆分合并,如下所示:

Button1.click...etc.
var
s:String;
ars:array[1..10] of String;
i:integer;
begin
ars[1]:='0';
ars[2]:='012';
ars[3]:='23';
ars[4]:='458';
ars[5]:='022'; // These values are example of.
ars[6]:='001';
ars[7]:='0125';
ars[8]:='250';
ars[9]:='859';
ars[10]:='9';

 for i:=1 to 10 do
begin

   s:=s+ars[i];

end;
//Finally I get string like this example: '01123641054257867420..etc..'
end;

如何将最终字符串拆分回来?我不知道ars数组值的长度。正如你看到它的一些4字节,3字节,2字节..我合并所有它然后我想再拆分它..我怎么能这样做?有什么想法或算法吗?我在谷歌搜索但我什么都没有..谢谢..


@Jens Borrisholt我的代码是:

unit Unit1;

interface



uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;



  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{ TMyStrings }
{$R *.dfm}



type TMyStrings = class(TStringList)
  protected
    function GetTextStr: string; override;
  end;

function TMyStrings.GetTextStr: string;
var
  Element: String;
begin
  Result := '';
  for Element in Self do
    Result := Result + Element;
end;

end.

问题出在哪里?

1 个答案:

答案 0 :(得分:3)

没有内置功能,因为您丢弃信息(每个字符串的长度)。所以信息必须存储在某个地方。

您可以使用TStringList后代:

<强>接口

  TMyStrings = class(TStringList)
  protected
    function GetTextStr: string; override;
  end;

<强>实施

{ TMyStrings }

function TMyStrings.GetTextStr: string;
var
  Element: String;
begin
  Result := '';
  for Element in Self do
    Result := Result + Element;
end;

以及如何使用它:

procedure TForm5.FormCreate(Sender: TObject);
var
  MyStrings : TMyStrings;
begin
  MyStrings := TMyStrings.Create;

  MyStrings.Add('0');
  MyStrings.Add('012');
  MyStrings.Add('23');
  MyStrings.Add('458');
  MyStrings.Add('022'); // These values are example of.
  MyStrings.Add('001');
  MyStrings.Add('0125');
  MyStrings.Add('250');
  MyStrings.Add('859');
  MyStrings.Add('9');

  Caption := MyStrings.Text;
  FreeAndNil(MyStrings);
end;

有了这个,您可以将列表作为连接字符串获取,并且您仍然可以获得有关每个字符串的原始信息。