一个分割字符串的函数,把分割后的数据保存在TStrings,可以参考一下procedure SplitString(const List:TStrings;Delimiter,DelimitedText:string); var DelimiterPos:integer; DelimiterLength:integer; DT:string;//DelimitedText的副本 begin List.Clear; DT:=DelimitedText; if DT='' then exit; if (Delimiter='') or (Pos(Delimiter,DT)=0) then begin List.Add(Trim(DT)); exit; end; DelimiterLength:=Length(Delimiter); DelimiterPos:=Pos(Delimiter,DT); while DelimiterPos<>0 do begin List.Add(Trim(Copy(DT,1,DelimiterPos-1))); Delete(DT,1,DelimiterPos-1+DelimiterLength); DelimiterPos:=Pos(Delimiter,DT); end; if DT<>'' then List.Add(Trim(DT)); end;
var Strs: TStringList; I: Integer; begin Strs := TStringList.Create; //直接调用TStringList的分割符分割即可,分割出来的字符串数组就是你想要的。 Strs.Delimiter := '0'; Strs.DelimitedText := '012340456401456011110'; for I := 0 to Strs.Count - 1 do ShowMessage(Strs.Strings[I]); end;
用delphi的话, Memo1.Lines.Clear; sourcestr:='0123404564014560111202000012030'; ii:= Length(sourcestr) div 5; for i:= 0 to ii do begin loop:=i*5+1; mystr:= Copy(sourcestr,loop,5); Memo1.Lines.Add(mystr) end; 后面的循环就很简单了...
Memo1.Lines.Clear; sourcestr:='0123404564014560111202000012030'; ii:= Length(sourcestr) div 5; for i:= 0 to ii do begin loop:=i*5+2; mystr:= Copy(sourcestr,loop,4); Memo1.Lines.Add(mystr) end;
var
DelimiterPos:integer;
DelimiterLength:integer;
DT:string;//DelimitedText的副本
begin
List.Clear;
DT:=DelimitedText;
if DT='' then exit;
if (Delimiter='') or (Pos(Delimiter,DT)=0) then begin
List.Add(Trim(DT));
exit;
end;
DelimiterLength:=Length(Delimiter);
DelimiterPos:=Pos(Delimiter,DT);
while DelimiterPos<>0 do begin
List.Add(Trim(Copy(DT,1,DelimiterPos-1)));
Delete(DT,1,DelimiterPos-1+DelimiterLength);
DelimiterPos:=Pos(Delimiter,DT);
end;
if DT<>'' then
List.Add(Trim(DT));
end;
var
Strs: TStringList;
I: Integer;
begin
Strs := TStringList.Create;
//直接调用TStringList的分割符分割即可,分割出来的字符串数组就是你想要的。
Strs.Delimiter := '0';
Strs.DelimitedText := '012340456401456011110'; for I := 0 to Strs.Count - 1 do
ShowMessage(Strs.Strings[I]);
end;
Memo1.Lines.Clear;
sourcestr:='0123404564014560111202000012030';
ii:= Length(sourcestr) div 5;
for i:= 0 to ii do
begin
loop:=i*5+1;
mystr:= Copy(sourcestr,loop,5);
Memo1.Lines.Add(mystr)
end;
后面的循环就很简单了...
sourcestr:='0123404564014560111202000012030';
ii:= Length(sourcestr) div 5;
for i:= 0 to ii do
begin
loop:=i*5+2;
mystr:= Copy(sourcestr,loop,4);
Memo1.Lines.Add(mystr)
end;