delphi tStringList 循环 如何得到重复的代码和数量

varlss_Res:TStrings;s,a,nm:string;ss:TStringList;i,j:Integer;jshangpingdm8:array[1..2... var
lss_Res: TStrings;
s,a,nm: string;
ss:TStringList;
i,j:Integer;
jshangpingdm8:array[1..20] of string;
jshangpingqty8:array[1..20] of string;
begin
lss_Res := TStringList.Create;
s :='1-62-0-命令内容:商品;代码:103;数量:2;代码:104;数量:4;代码:105;数量:5;卡号:001';
s := StringReplace(s, ':', ':=', [rfReplaceAll]);
s := StringReplace(s, ';', #$0D#$0A, [rfReplaceAll]);
lss_Res.Text := s;
ss:= split(a,'-');
for I := 0 to lss_Res.Count - 1 do
begin
jshangpingdm8[i]:=(lss_Res.Values['代码:']);
jshangpingqty8[i]:=(lss_Res.Values['数量:']);
end;
就是我要得到代码:103;数量:2;代码:104;数量:4;代码:105;数量:5; 这些输入插入到数据库 例如:代码=103,数量=2 ,然后第二组数量=4;代码=105 以次类推就得到后面的数字 就这样插入到数据库
展开
 我来答
windblast
推荐于2017-11-04 · 知道合伙人软件行家
windblast
知道合伙人软件行家
采纳数:5633 获赞数:13617
毕业于空军第一航空学院电子专业,1991年开始接触电脑,从事多年计算机编程,具有较丰富的经验。

向TA提问 私信TA
展开全部

试编写代码如下:

procedure TForm1.btn1Click(Sender: TObject);
var
  lss_Res: TStrings;
  s, a, nm: string;
  ss: TStringList;
  i, j: integer;
  jshangpingdm8: array [1 .. 20] of string;
  jshangpingqty8: array [1 .. 20] of string;
begin
  lss_Res := TStringList.Create;
  lss_Res.Delimiter := ';';

  ss := TStringList.Create;
  ss.Delimiter := ':';

  s := '1-62-0-命令内容:商品;代码:103;数量:2;代码:104;数量:4;代码:105;数量:5;卡号:001';

  lss_Res.DelimitedText := s;

  j := 1;
  for i := 0 to lss_Res.Count - 1 do
  begin
    ss.DelimitedText := lss_Res[i];
    if ss.Count>1 then
    begin
      if (ss[0]='代码') then
      begin
        jshangpingdm8[j] := ss[1]
      end
      else
      if (ss[0]='数量') then
      begin
        jshangpingqty8[j] := ss[1];
        Inc(j);
      end;
    end;
  end;

  lss_Res.Free;
  ss.Free;
end;

运行调试截图:

开心小书生
2012-10-04 · TA获得超过405个赞
知道小有建树答主
回答量:321
采纳率:50%
帮助的人:297万
展开全部
类似情况,我是用这种方法。
再弄一个TSTRINGLIST,比如A,A的条目是:字段#9数量.如103#92这种型式存储。
每遇上一个字段,比如103,就到A中去对比,看里面有没有。
如果有就把数量+1,如果没有就ADD('103' + #9 + '1');
最后只需把A往数据库里一写就OK了。
这个方法虽然有点老土,但是很实用,代码很好写。
如果内容很多,要考虑一下在A中查找时的效率,有一些比如折半之类的方法。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
98...3@qq.com
2012-09-28 · 超过39用户采纳过TA的回答
知道答主
回答量:147
采纳率:0%
帮助的人:90.9万
展开全部
你只要后面的103、2、104、4等等数字,还是要 “代码=103、数量=2”等等?

你去搜搜TStringList的字符串分割吧。百度有很多,另外,我贴个地址,我之前帮别人解决的。你自己照着做。

http://zhidao.baidu.com/question/434384368.html?oldq=1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式