type
TA:array[0.99] of string;
function fx(s:string):TA;
求将字符串分解为数组的经典函数function fx(s:string):TA;。
例:
var
A:TA;
S:='RE RTY 34F 34ER'
a:=fx(s);结果:a[0]:=RE
a[1]:=RTY
a[2]:=34F
a[3]:=34ER
TA:array[0.99] of string;
function fx(s:string):TA;
求将字符串分解为数组的经典函数function fx(s:string):TA;。
例:
var
A:TA;
S:='RE RTY 34F 34ER'
a:=fx(s);结果:a[0]:=RE
a[1]:=RTY
a[2]:=34F
a[3]:=34ER
解决方案 »
- delphi如何读写x.509数字证书?
- 我用的是delphi6.0请问他所带的DBGrid的组件中的小表怎样将其的值抓出?
- 表中数据读入到memo中怎么对齐?
- D5下OpenDialog的一个奇怪问题
- 谁作过餐饮管理系统中的厨房打印模块?
- 我要在ORACLE 中查找最新一条记录应该怎么写语句呀?
- 如果在ActionManager中边历所有的Category和下面的Action啊?
- TADOQuery怎样指向dbgrideh的当前行???
- BDE带给我一场噩梦
- 各位仁兄:关于ReportBuilder5.55
- 函数怎样传一个数组参数呢???????????
- 请问怎样得到LISTVIEW显示的行数?
begin
Text := AnsiReplaceStr(SrcStr,'|',#13);
result := Strings[wantOrder];
Free;
end;
//Strs: TStrings 分割后的字符串元素
//str: string; 源字符串
//spt: string 分隔符
procedure TFileServerThread.cutString(var Strs: TStrings; str: string; const spt: string);
begin
while (pos(spt, str) <> 0) do begin
strs.Add(copy(str, 1, pos(spt, str) - 1));
delete(Str, 1, pos(spt, str) + 1);
end;
strs.Add(str);
end; 调用方式如下:
procedure TMainForm.Button1Click(Sender: TObject);
var strs: TStrings;
str: string;
begin
Str := 'a#0b#0c#0d#0e#0f#0g#0h#0i';
try
strs := TStringList.Create;
cutString(strs, str,'#0');
Memo1.Lines := strs;
finally
freeandnil(strs);
end;
end;
function ExtractStrings(Separators, WhiteSpace: TSysCharSet; Content: PChar; Strings: TStrings): Integer;其中Separators是分割符,在此例中是 ' ' //是空格
WhiteSpace是可以忽略的行首字符,一般不用管
Content是待分割的字符串
Strings是分割后,存储各个段的字符串列表实例:Form1上一个Edit1,内容是:“张三 李四 王五”其中有一个或多个空格;
然后一个Button1,一个Memo1输出结果procedure TForm1.Button1Click(Sender: TObject);
var
tmpList: TStrings;
i: Integer;
begin
tmpList:=TStringList.Create;
try
ExtractStrings([' '],[],PChar(Edit1.Text),tmpList); //一句话搞定分割
Memo1.Lines.Clear; //清空,等待输出结果
for i:=0 to tmpList.Count-1 do
Memo1.Lines.Append(tmpList[i]); //输出结果,可以看到得到的字符串前后均无空格
//tmpList[0] 就是 '张三'
//tmpList[1] 就是 '李四'
//tmpList[2] 就是 '王五'
finally
tmpList.Free;
end; //end of try
end;
从字符串的第一位开始,当遇到第一个空格时,删掉空格,并把前面的字符串存进a[0];
遇到第二个空格删去,并把前面字符存进a[1];
.......
遇到第n个空格删去,并把前面字符存进a[n-1];
你要的结果就是a[1]-a[0],a[2]-a[1]........a[n]-a[n-1];
的方法最值得学习!!!!!!
procedure TForm1.Button1Click(Sender: TObject);
var s :string;
tmp :Tstringlist;
i:integer;
begin
try
tmp := Tstringlist.Create;
S:='RE RTY 34F 34ER';
tmp.Delimiter :=#32;
tmp.DelimitedText :=s;
memo1.Clear;
for i :=0 to tmp.Count-1 do
memo1.Lines.Add(tmp.Strings[i]);
finally
tmp.Free;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
memo1.Lines.Clear;
memo1.Lines.Delimiter := #32;
memo1.Lines.DelimitedText := 'sef sdfwe fggg';
end;