`
美丽的小岛
  • 浏览: 308317 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

<转>delphi中Tstringlist分割字符串的用法

 
阅读更多

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中则是:

  1

  3

  在Values中则是:

  aaa

  bbb

  ccc

  ddd

分享到:
评论

相关推荐

    通过TStringList分割字符串

    至此,我们就完成了通过`TStringList`分割字符串并显示在`TListView`的任务。这个过程展示了`TStringList`的灵活性和实用性,以及`TListView`在数据可视化方面的便捷性。在实际项目中,这样的功能可以应用于数据解析...

    delphi7分割字符串

    1. **使用分隔符分割字符串**:在Delphi中,可以使用`SplitString`函数或`Pos`函数配合`Copy`函数来实现。例如,如果要以逗号分隔字符串,可以这样做: ```delphi var InputStr, Part: string; Parts: TStrings;...

    delphi字符串按字符串分割

    `TStringList`是一个非常强大的字符串容器,它可以存储、排序和查找字符串,而且提供了分割字符串的方法。以下是如何使用`TStringList`进行字符串分割的例子: ```delphi uses Classes; var Str: string; List:...

    delphi之分割字符串

    在Delphi编程环境中,处理字符串是一项常见的任务,而“分割字符串”是其中的关键操作之一。本文将深入探讨如何在Delphi中实现字符串的分割,并提供相关的编程实例。 首先,了解Delphi中的字符串类型。在Delphi中,...

    DELPHI分割字符串

    一个分割字符串的例程 procedure Tfmmain.SeparateTerms(s: string; Separator: string; var Terms: TStringList); //分割字符串过程 var hs: string; p: integer; iSeparator: integer; begin iSeparator := ...

    DELPHI7一个简单的字符拆分

    在Delphi编程环境中,字符拆分是一个常见的任务,特别是在处理字符串和数据操作时。"DELPHI7一个简单的字符拆分"这个标题所指的就是在Delphi 7中实现一个功能,将一个字符串按照特定规则分解成多个子字符串。描述中...

    delphi分割字符串去空串.txt

    ### Delphi 分割字符串并去除空串方法解析 #### 1. 函数定义及参数说明 函数名称:`SplitString` 所属类:`TForm1` (通常为一个表单类,在此例中只是一个容器) 返回值类型:`TStringList` (Delphi 中用于存储字符...

    delphi字符串分割函数整理

    本文详细介绍了在Delphi环境中使用`TStringList`进行字符串分割的多种方法。通过合理利用这些方法,可以有效提高字符串处理的效率和灵活性。无论是基本的逗号分隔,还是指定其他分隔符,甚至是处理带有引号的字符串...

    二次分割字符串

    "二次分割字符串"这个主题聚焦于如何利用字符串自身的函数进行更深层次的分割操作。在这个场景中,我们通常会遇到一次分割(primary split)后得到的结果仍然包含需要进一步拆分的子字符串,这就需要进行二次甚至多...

    delphi的Split实现方法

    本文将深入探讨Delphi中的字符串分割技术,即如何在Delphi中实现类似于C#中的Split方法,用于数据处理和分析。 ### Delphi中的Split方法实现 #### 方法一:基础版Split实现 首先,我们来看一个基础版本的Split...

    按行读取txt杆分割生成菜单for delphi.rar

    // 分割字符串,忽略尾部空格 // 现在Items数组包含了按"/"分隔的所有子字符串 end; ``` 动态生成菜单项是Delphi中常见的任务,这通常涉及到`TMainMenu`或`TMenu`组件。每个菜单项对应一个`TMenuItem`对象,你...

    delphi 字符截取 代码文档

    `这行代码会将`constr`字符串按照逗号分割,并将结果分别存入`TStringList`的各个元素中。在提供的代码中,`ShowMessage`将依次显示`aaa`、`bbb`、`ccc`和`ddd`。 如果分隔符不是逗号,我们可以使用`Delimiter`属性...

    delphi实现文件分割与合并

    这个函数接收一个包含所有源文件路径的字符串列表,以及目标文件的路径。对于列表中的每个源文件,它读取其内容并写入目标文件。 在实际应用中,你可能还需要添加错误处理、进度指示器、文件大小检查等额外功能。...

    Delphi获取文字中英文字母的个数..rar

    在Delphi编程环境中,开发...通过以上方法,你可以有效地在Delphi中计算字符串中的英文字母数量,同时理解Delphi对字符串的处理方式和相关的编程技巧。这些知识对于深入学习Delphi和其他面向对象的编程语言都十分有益。

    Delphi开发经验技巧宝典光盘源码

    - **0037**:字符串分割技巧。 - **0038**:强类型的变量声明技巧。 - **0039**:变量的作用域与生命周期。 - **0040**:过程与函数的参数传递技巧。 - **0041**:数组的高效使用技巧。 - **0042**:内存泄漏...

    delphi 开发经验技巧宝典源码

    0183 指定符号分割字符串 119 0184 如何使用随机密码和字符串 120 第6章 日期和时间 121 0185 获得系统当前时间 122 0186 获得系统当前日期 122 0187 将日期时间格式化为指定格式 122 0188 计算两个...

    delphi 开发经验技巧宝典源码06

    0183 指定符号分割字符串 119 0184 如何使用随机密码和字符串 120 第6章 日期和时间 121 0185 获得系统当前时间 122 0186 获得系统当前日期 122 0187 将日期时间格式化为指定格式 122 0188 计算两个...

    访问CSV文件及上传

    1. **读取CSV文件**:在Delphi中,可以使用TStringList或TDynArray等内建组件来读取CSV文件。首先打开文件,然后逐行读取,每行数据由逗号分隔,将其分割成单独的值。 示例代码: ```delphi var Lines: ...

Global site tag (gtag.js) - Google Analytics