比如一个字符串,"张三,李四,王五",写个过程提取出三个人的名字,说明:姓名之间都是逗号隔开的。如果有空格的话怎么处理?
解决方案 »
- 进度条的数值在for循环执行完才显示?
- 高手来帮帮~~
- 请教打印问题
- 如何使memo实现垂直对齐(就像Label的Layout属性一样)?分不够可再加!谢谢!
- 200分求解 dbExpress的 simpledataset控件+datasource+oracle ??? 在线等待.....
- 我有一个Foxpro数据库有6000条记录,当第一次导进Dbgrid中显示,比较慢,用什么方法实现在Dbgrid中的快速显示?
- 设想用一个公用函数来控制所有combobox内容的动态生成,参数如何写才好?
- 怎么用news group?那些delphi的news group比较好?
- Delphi 调用EMail程序
- delphi 如何获取MP3音频文件的时间长度,然后可以从任意一个时间点开始播放到某个时间点
- 哪位用过新思维医院管理系统?请帮一下忙
- 如何查找句柄?
Strings=array of string;function Split(const pstrin,psplitchar:string):Strings;
var
i,j:integer;
strin,splitchar:string;
tempstr:string;
begin
i:=0;
strin:=pstrin;splitchar:=psplitchar;
strin:=trim(strin);
j:=pos(splitchar,strin);
setlength(result,0);
while j>0 do
begin
tempstr:=leftBstr(strin,j-1);
inc(i);
setlength(result,i);
result[i-1]:=trim(tempstr);
strin:=rightBstr(strin,length(strin)-j);
strin:=trim(strin);
j:=pos(splitchar,strin);
end;
setlength(result,i+1);
result[i]:=strin;
end;
刚写的一个函数,可以处理空格的情况。
用法演示:
var
test:Strings;
str:string;
i:integer;
begin
str:='张三 , 李四 , 王五 ';
test:=Split(str,',');
for i:=0 to length(test)-1 do
showmessage(test[i]);
showmessage(str);
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(Trim(tmpList[i])); //输出时去掉空格
finally
tmpList.Free;
end; //end of try
end;
i=0
从str[i]start:
;i++if 空格 then
删除空格
if , then a[0]=,前的。。a[n]=,前的
结果:a[1]-a[0],a[2]-a[1],....a[n]-a[n-1];
多五条内裤了,怎么还问这种问题????
回复人: boatzm(晓舟)【塑料的玫瑰花-假的】(#_#!) ( ) 信誉:100 2004-10-06 18:42:00 得分: 0
内裤--怎么来的?!……