一组字符串解析 一组字符串解析。 1 2 3 4 5 6 7 8 9 10 11..1000 s1 s1 s2 s3 s1 s5 s1 s4 s7 s2 s1 s10 结果: s1 s2 s3 s4 s7 s10大家有方便的算法么? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 什么玩意?就是分割字符吗,用TStringList,按空格(或其它制定字符)分隔 是不是要把第二行中的重复项去掉?用tstringlist,设置sorted=true,Duplicates=dupIgnore,添加到列表中就行了 varsl:tstringlist;begin sl:=tstringlist.Create; sl.Delimiter:=' '; sl.Text:='s1 s1 s2 s3 s1 s5 s1 s4 s7 s2 s1 s10'; sl.Sorted:=true; sl.Duplicates:=dupIgnore; sl.Free;end; procedure TF_Main.btnTestClick(Sender: TObject);var sl:tstringlist;begin sl:=tstringlist.Create; try sl.Sorted:=true; sl.Duplicates:=dupIgnore; sl.Delimiter:=' '; sl.DelimitedText:='s1 s1 s2 s3 s1 s5 s1 s4 s7 s2 s1 s10'; ShowMessage( sl.Text ); finally sl.Free; end;end; for tmpLoop := 0 to RowCount - 1 do begin FiledStr1[tmpLoop] := Trim(ShipList.Cells[1, tmpLoop + 1]); { 客户名称 } FiledStr2[tmpLoop] := Trim(ShipList.Cells[1, tmpLoop + 1]); end; //查询出每一个发货单客户名称 for tmpLoop := 0 to RowCount - 1 do begin sTmp := FiledStr1[tmpLoop]; iTmp := 0; while iTmp <= tmpLoop do begin if FiledStr2[tmpLoop + 1] <> sTmp then begin FiledStr[TableCount] := sTmp; TableCount := TableCount + 1; {表累加1} Break; end; iTmp := iTmp + 1; end; end;几天没上了,想了以奔方法!楼上方法不错! idpop3收邮件的问题 串口通信流控制问题 关于打印控件的使用 DELPHI 下如何读取主板的序列号? ★★★★★第十三期:CSDN论坛秀-Delphi版-本期作秀:hongqi162(失踪的月亮) 河南省的朋友进来报个到! 为一个广告公司做个软件不知道日期怎么实现? 关于安装程序制作的问题? 再问问大家!谢谢帮助, 请问如何进行近似查询???? ??请问如何在ADOQuery中写语句 创建访问指定数据库的用户?? 请教:如何通过Delphi7把SQL Server 2005 的数据按条件读出显示到excel文件中?要求最简单快速的。
就是分割字符吗,用TStringList,按空格(或其它制定字符)分隔
用tstringlist,设置sorted=true,Duplicates=dupIgnore,添加到列表中就行了
sl:tstringlist;
begin
sl:=tstringlist.Create;
sl.Delimiter:=' ';
sl.Text:='s1 s1 s2 s3 s1 s5 s1 s4 s7 s2 s1 s10';
sl.Sorted:=true;
sl.Duplicates:=dupIgnore;
sl.Free;
end;
var
sl:tstringlist;
begin
sl:=tstringlist.Create;
try
sl.Sorted:=true;
sl.Duplicates:=dupIgnore;
sl.Delimiter:=' ';
sl.DelimitedText:='s1 s1 s2 s3 s1 s5 s1 s4 s7 s2 s1 s10';
ShowMessage( sl.Text );
finally
sl.Free;
end;
end;
begin
FiledStr1[tmpLoop] := Trim(ShipList.Cells[1, tmpLoop + 1]); { 客户名称 }
FiledStr2[tmpLoop] := Trim(ShipList.Cells[1, tmpLoop + 1]);
end; //查询出每一个发货单客户名称
for tmpLoop := 0 to RowCount - 1 do
begin
sTmp := FiledStr1[tmpLoop];
iTmp := 0;
while iTmp <= tmpLoop do
begin
if FiledStr2[tmpLoop + 1] <> sTmp then
begin
FiledStr[TableCount] := sTmp;
TableCount := TableCount + 1; {表累加1}
Break;
end;
iTmp := iTmp + 1;
end;
end;
几天没上了,想了以奔方法!楼上方法不错!