lazarus:用分隔符分割字符串


    用分隔符分割一串字符,可以方便地取得长字符串中的特定子串。操作过程中需要注意一些问题。


procedure TForm1.Button1Click(Sender: TObject);
var
  s: string;
  lines: TStringList;
  i : integer;
begin
  memo1.Clear;

  s := '张,雪眉,销售代表,女士,1969/7/2,1994/11/15,永安路 678 号,北京';
  memo1.Append('原始字符串:' + s);

  lines := TStringList.Create;
  lines.Delimiter := ',';
  lines.CommaText := s;
  memo1.Append('lines.CommaText:' + lines.CommaText);

  for i := 0 to lines.Count - 1 do
  begin
    memo1.Append(intToStr(i) + ':' + lines[i]);
  end;

  lines.Free;

end; 

虽然定义了分隔符为‘,’,但程序遇到空格时也会进行分割:



    对于有空格的子串,加上双引号后可以得到正确结果:


procedure TForm1.Button1Click(Sender: TObject);
var
  s: string;
  lines: TStringList;
  i : integer;
begin
  memo1.Clear;

  s := '张,雪眉,销售代表,女士,1969/7/2,1994/11/15,"永安路 678 号",北京';
  memo1.Append('原始字符串:' + s);

  lines := TStringList.Create;
  lines.Delimiter := ',';
  lines.CommaText := s;
  memo1.Append('lines.CommaText:' + lines.CommaText);

  for i := 0 to lines.Count - 1 do
  begin
    memo1.Append(intToStr(i) + ':' + lines[i]);
  end;

  lines.Free;

end;    

    运行上面程序:



    对于excel2013,如果某单元格含有换行符,就是ALT+回车,在保存为csv格式时会自动加上双引号,但是单元格包含空格则不加双引号。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值