`
laorer
  • 浏览: 435804 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

<转>delphi TStringList的用法

阅读更多
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中则是:
0
1
2
3
在Values中则是:
aaa
bbb
ccc
ddd

似乎有点不合适宜,但谁也不能否认,delphi还是蛮好用的,这个是最近两天中碰到的问题的解法

http://www.wangwa.com/info/2006-12/59350.htm

分享到:
评论

相关推荐

    rtf转html的delphi代码

    这一步可能需要用到如`TStringList`等Delphi容器来存储解析后的数据。 2. 转换样式:将RTF中的样式信息(如字体、大小、颜色、对齐方式等)转化为对应的HTML标签,如`&lt;font&gt;`、`&lt;span&gt;`、`&lt;style&gt;`等。 3. 转换...

    Delphi中-TStringList-的详细用法.doc

    从上面的代码可以看到,我们首先创建了一个 TStringList 对象,然后使用 Add 方法添加字符串,使用 Exchange 方法交换两个字符串,使用 Insert 方法插入字符串,使用 IndexOf 方法获取字符串的索引,使用 Sort 方法...

    Delphi中TStringList类使用详解

    ### Delphi中TStringList类使用详解 #### 概述 `TStringList`是Delphi中的一个非常实用且强大的类,它提供了多种方便的方法来处理字符串列表。本篇文章将详细介绍`TStringList`类的一些常见用法及其背后的实现原理...

    通过TStringList分割字符串

    这里,我们将探讨如何使用`TStringList`类来分割由特定字符(如分号)隔开的字符串,并将结果在`TListView`组件中显示出来。这个过程在Delphi2009及其后续版本中是常见的操作,因为`TStringList`是Delphi标准库中的...

    Delphi TStringList 扩展

    在 Delphi 编程环境中,TStringList 是一个非常实用的组件,用于处理字符串列表。在标准的 TStringList 类的基础上,开发者经常需要扩展其功能以适应更复杂的场景,比如实现无限树形结构。标题 "Delphi TStringList ...

    delphi Memo及tstrlists的交集差集并集

    在本篇文章中,我们将深入探讨如何在Delphi中使用`TMemo`和`TStringList`来实现交集、差集和并集的操作。 首先,`TMemo`是一个可视组件,它在用户界面中表现为一个可编辑的文本框,可以用来显示大量的文本信息。你...

    delphi TStringList的使用

    TStrings是一个抽象类,在实际开发中,是除了基本类型外,应用得最多的。 常规的用法大家都知道,现在来讨论它的一些高级的用法。

    Delphi中TStringList的用法_构造简单数据库.rar

    使用`Add`方法可以向TStringList中添加单个字符串,如`StringList.Add('Hello');`。`AddObject`方法允许附加一个对象引用,如`StringList.AddObject('World', TObject);`。 3. **删除字符串** `Delete`方法根据...

    TStringList数据排序程序

    在编程领域,特别是使用Delphi或C++Builder等基于VCL(Visual Component Library)框架的开发环境中,`TStringList` 是一个非常常用的组件。它允许程序员存储和管理字符串列表,具有灵活的操作方法和功能。在某些...

    UniCode编码、简繁体互转在Delphi中的应用

    要实现在Delphi中进行简繁体互转,我们可以利用一些内置的TStringList和第三方库。例如,TStringList对象的LoadFromStream和SaveToStream方法可以用来读写Unicode编码的文本文件。此外,Delphi的标准库中并没有直接...

    delphi 7 idhttp post 的8种使用方法

    本文将深入探讨IDHTTP组件在POST请求中的8种使用方法,帮助开发者更好地理解和利用这个强大的工具。 1. **基本POST请求** IDHTTP组件最简单的POST请求可以通过设置其 `Method` 属性为 `htPost`,然后调用 `Execute...

    TStringList 排序

    本文将详细介绍如何使用`TStringList`的`CustomSort`方法进行自定义排序,并提供一个简单的Demo作为参考。 首先,`TStringList`的`CustomSort`方法允许开发者根据自己的需求定义排序规则。它接受一个比较函数作为...

    delphi去重复字符

    总之,Delphi提供多种方式来处理字符串中的重复字符,可以根据具体需求选择合适的方法。对于初学者来说,理解并熟练运用这些技术是非常重要的,因为它们是许多实用应用程序的基础。在实践中,我们可以根据性能要求、...

    delphi2010 网页采集之网址提取,内容提取,图片提取,网页源码

    Delphi中的源代码可能利用了TStringList或其他数据结构来存储找到的链接,并可能结合正则表达式来筛选有效的URL。这个过程涉及到HTTP协议的理解,以及HTML解析库的使用,如HtmlAgilityPack或内置的XML处理库。 其次...

    delphi的Split实现方法

    while i &lt;&gt; 0 do begin Result.Add(Copy(Temp, 0, i - chLength + 1)); Delete(Temp, 1, i - 1 + chLength); i := pos(ch, Temp); end; Result.Add(Temp); end; ``` 在改进版中,我们增加了对空字符串的判断...

    delphi解析xml文件实例

    TXMLDocument对象的根节点是XML文档的`&lt;document&gt;`元素。我们可以使用`ChildNodes`属性访问这些子节点。例如,要获取第一个子节点,可以这样写: ```delphi var Node: IXMLNode; begin Node := XMLDoc....

    Delphi遍历二叉树源代码..rar

    if Node &lt;&gt; nil then begin Result.Add(Node.Value); // 访问根节点 Result += PreorderTraversal(Node.Left); // 遍历左子树 Result += PreorderTraversal(Node.Right); // 遍历右子树 end; end; function ...

    TStringList常用属性及方法

    `TStringList`是Delphi中的一个非常实用的类,用于处理字符串列表。它提供了一系列的功能来管理字符串数据,包括添加、删除、排序等操作。对于初学者而言,熟练掌握`TStringList`的基本用法是非常重要的。 #### 二...

Global site tag (gtag.js) - Google Analytics