TStrings是一个抽象类,在实际开发中,是除了基本类型外,应用得最多的。
  常规的用法大家都知道,现在来讨论它的一些高级的用法。
  1、CommaText
  2、Delimiter &DelimitedText
  3、Names &Values &ValueFromIndex
  先看第一个:CommaText。怎么用呢?
  const
    constr :String = 'aaa,bbb,ccc,ddd';
  var
   strs :TStrings;
   i :Integer;
  begin
   strs := TStringList.Create;
   strs.CommaText := constr;
   for i := 0 to Strs.Count-1 do
   ShowMessage(Strs[i]);
  end;
  执行了这段代码后,可以看到ShowMessage显示出来的分别是:aaa bbb ccc ddd。
  也就是说,strs.CommaText := constr这一句的作用,
  就是把一个字符串以','为分割符,分段添加到TStrings中。
  那么如果不是以','来分割,又该怎么做呢?现在看第二个例子。使用Delimiter和DelimitedText。
  const
    constr :String = 'aaa\bbb\ccc\ddd';
  var
   strs :TStrings;
   i :Integer;
  begin
   strs := TStringList.Create;
   strs.Delimiter := '\';
   strs.DelimitedText := constr;
   for i := 0 to Strs.Count-1 do
   ShowMessage(Strs[i]);
  end;
  可以看到, 显示的效果和第一个例子是一模一样的。解释一下:
  Delimiter为分隔符,默认为:','。DelimitedText就是按Delimiter为分隔符的一个串,
  得到赋值后回把这个字符串按Delimiter的字符添加到TStrings中。
  说到这里,有想起一个属性,QuoteChar。其默认值为:'"'(不包括单引号)
  有何用呢?看例子:
  const
    constr :String = '"aaa"\"bbb"\"ccc"\"ddd"';
  var
   strs :TStrings;
   i :Integer;
  begin
   strs := TStringList.Create;
   strs.Delimiter := '\';
   strs.DelimitedText := constr;
   for i := 0 to Strs.Count-1 do
   ShowMessage(Strs[i]);
  end;
  显示出来的仍然是aaa bbb ccc ddd。为什么不是:"aaa" "bbb" "ccc" "ddd"呢?
  再来看一个例子:
  const
  constr :String = '|aaa|\|bbb|\|ccc|\|ddd|';
  var
   strs :TStrings;
   i :Integer;
  begin
   strs := TStringList.Create;
   strs.Delimiter := '\';
   strs.QuoteChar := '|';
   strs.DelimitedText := constr;
   for i := 0 to Strs.Count-1 do
   ShowMessage(Strs[i]);
  end;
  显示出来的又是aaa bbb ccc ddd。对比一下,应该不难明白吧?这个就不多说了,用得也不多。
  但是还要多说一句,当Delimiter为:','而QuoteChar为:'"'时,
  DelimitedText和CommaText是同等的。
  最后要说的三个是:Names &Values &ValueFromIndex。
  看看下面的代码:
  const
    constr :String = '0=aaa,1=bbb,2=ccc,3=ddd';
  var
   strs :TStrings;
   i :Integer;
  begin
   strs := TStringList.Create;
   strs.CommaText := constr;
   for i := 0 to strs.Count-1 do
   begin
   ShowMessage(strs.Names[i]);
   ShowMessage(strs.Values[strs.Names[i]]);
   ShowMessage(strs.ValueFromIndex[i]);
   end;
  end;
  通过这个例子不难看出:
  这个时候strs中的内容是:
  0=aaa
  1=bbb
  2=ccc
  3=ddd
  而Names中则是:
  0
  1
  2
  3
  在Values中则是:
  aaa
  bbb
  ccc
  ddd

Tstringlist分割字符串的用法?的更多相关文章

  1. Delphi中stringlist分割字符串的用法

    Delphi中stringlist分割字符串的用法 TStrings是一个抽象类,在实际开发中,是除了基本类型外,应用得最多的. 常规的用法大家都知道,现在来讨论它的一些高级的用法. 1.CommaT ...

  2. Android--split()分割字符串特殊用法

    split()分割字符串 1.不同环境下的区分 Java:分割字符串不能写成split("$")//$为要分割的字符Android:分割字符串需要加上中括号split(" ...

  3. Oracle分割字符串 REGEXP_SUBSTR用法

    分割字符串中所有指定字符,然后成多行参数说明,参数1: 待分割字符串参数2:正则表达式参数3:起始位置,从第几个字符开始正则表达式匹配(默认为1)参数4:标识第几个匹配组,默认为1参数5:模式('i' ...

  4. C# Split的用法,Split分割字符串

    C# Split的用法,Split分割字符串 分割单个字串:string str="来自张三的亲切问候!;string[] strarry=str.Split(new string[] { ...

  5. C#的String.Split 分割字符串用法详解的代码

    代码期间,把代码过程经常用的内容做个珍藏,下边代码是关于C#的String.Split 分割字符串用法详解的代码,应该对码农们有些用途. 1) public string[] Split(params ...

  6. JavaScript中字符串分割函数split用法实例

    这篇文章主要介绍了JavaScript中字符串分割函数split用法,实例分析了javascript中split函数操作字符串的技巧,非常具有实用价值,需要的朋友可以参考下 本文实例讲述了JavaSc ...

  7. 笔记:iOS字符串的各种用法(字符串插入、字符串覆盖、字符串截取、分割字符串)(别人的代码直接复制过来的,我脸皮有点厚)

    NSString* str=@"hello";//存在代码区,不可变 NSLog(@"%@",str); //1.[字符串插入] NSMutableString ...

  8. iOS字符串的各种用法(字符串插入、字符串覆盖、字符串截取、分割字符串)

    NSString* str=@"hello";//存在代码区,不可变 NSLog(@"%@",str); //1.[字符串插入] NSMutableString ...

  9. C语言分割字符串

    最近在做一道C语言题目的时候需要用到分割字符串,本来想自己手写的,也不会很麻烦,但想到其他语言都有分割字符串的库函数,C语言怎么会没有呢?所以,在网上搜了一搜,果然有这样的函数,还是很好用的,在此总结 ...

随机推荐

  1. iOS 单例传值遇见问题

    单例模式的意思就是只有一个实例.单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例.这个类称为单例类. 1.单例模式的要点: 显然单例模式的要点有三个:一是某个类只能有一个实例: ...

  2. Java 线程异常处理器

    Thread.UncaughtExceptionHandler 是Thread类的一个静态内部接口,该接口只有一个方法: void uncaughtException(Thread t, Throwa ...

  3. IOS开发之小实例--创建一个简单的用于视频录制和回放的应用程序

    前言:还是看了一下国外的入门IOS文章:<Create a Simple App for Video Recording and Playback>,主要涉及视频录制和回放的功能的基本实现 ...

  4. poi生成word文件

    一.简介 对于poi来说,poi可以完成对word.excel.ppt的处理.word目前有两种文件格式,一种是doc后缀.另一种是docx后缀的.2007之前的版本都是doc后缀的,这种格式poi使 ...

  5. linux 拨号+squid监控脚本

    客户端 #!/bin/bash #get_memory-info a=`free -m|grep Mem|awk '{print$2}'` #total-memory b=`free -m|grep ...

  6. iOS基于MBProgressHUD的二次封装,一行搞定,使用超简单

    MBProgressHUD的使用,临时总结了几款最常用的使用场景: 1.提示消息 用法: [YJProgressHUD showMessage:@"显示文字,1s隐藏" inVie ...

  7. 使用VIM插件ctags来阅读C代码

    说明 Ctags是vim下方便代码阅读的工具.尽管ctags也可以支持其它编辑器,但是它正式支持的只有vim.并且vim中已经默认安装ctags,它可以帮助程序员很容易地浏览源代码:ctags最先是用 ...

  8. contiki在keil下的stm32平台移植

    参考博客: http://www.aiuxian.com/article/p-705047.html http://blog.csdn.net/u013232419/article/details/4 ...

  9. 中科院分词ICTCLAS5.0_JNI 使用方法

    1.简介 中国科学院计算技术研究所在多年研究基础上,耗时一年研制出了基于多层隐码模型的汉语词法分析系统 ICTCLAS(Institute of Computing Technology, Chine ...

  10. Struts2文件上传,以及各种注意事项

    首先肯定是要配置好struts2环境,这个在另一篇<struts2环境搭建,以及一个简单实例>里已经讲过了 首先是网页部分,upload_file.jsp <%@ page lang ...