`
hjy2099
  • 浏览: 261478 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

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 

 

转自:http://blog.csdn.net/ghd2004/archive/2007/12/13/1933025.aspx

分享到:
评论

相关推荐

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

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

    Delphi中TStringList类使用详解

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

    通过TStringList分割字符串

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

    TStringList常用属性及方法

    对于初学者而言,熟练掌握`TStringList`的基本用法是非常重要的。 #### 二、创建与初始化 `TStringList`可以通过`Create`方法来创建实例。例如: ```pascal var List: TStringList; begin List := TStringList....

    TStringList数据排序程序

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

    TStringList 排序

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

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

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

    Delphi TStringList 扩展

    1. **扩展TStringList**:创建一个新的类,如 TTreeStringList,继承自 TStringList,并添加新的属性和方法来处理子节点。 2. **子节点访问**:通过添加一个子节点列表属性(如 `ChildNodes`),我们可以使用 `...

    delphi TStringList的使用

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

    TStringslist.strings用法实例

    在给定的`TStringslist.strings用法实例`文件中,可能包含了一些使用`TStringList`的代码示例,比如如何创建`TStringList`对象,如何添加、删除和遍历字符串,以及如何设置和使用`strings`属性等。这些实例有助于...

    TStringList.pdf

    除了上述功能外,`StringList`还继承了`Object`类的一些基本方法,如`Finalize`,用于资源清理,尽管在现代`.NET`环境中,推荐使用`IDisposable`接口或`using`语句进行资源管理。 综上所述,`StringList`类是一个...

    访问CSV文件及上传

    2. **插入数据**:使用TADOCommand的Execute方法执行INSERT语句,将CSV数据插入到数据库。确保字段和值的数量匹配,且格式正确。 示例代码: ```delphi var Cmd: TADOCommand; begin Cmd := TADOCommand....

    自定义控件之StringList

    本文将深入探讨如何在Visual Studio 2005环境下创建一个自定义控件,该控件模仿Delphi中的TStrings(具体来说是TStringList)功能。TStrings是一个强大的字符串集合类,在Delphi中广泛用于存储和操作字符串数组。 ...

    DEPHI XE写的选彩票的小游戏

    《DEPHI XE开发的彩票选号小游戏详解》 DEPHI XE是一款强大的对象 Pascal...通过学习这个案例,开发者可以更深入地理解和掌握TStringList的使用方法,并能将此技巧应用于其他需要处理字符串列表或随机数生成的项目中。

    delphi 7 idhttp post 的8种使用方法

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

    databaseexample01

    在Delphi编程环境中,TStringList和TTable组件是两个经常被使用的工具,它们分别用于处理文本数据和与数据库交互。在这个名为"databaseexample01"的示例中,我们将深入探讨这两个组件的用法。 首先,我们来了解...

    标准C++的StringList

    在`StringListEx.cpp`中,你可能会看到`CStringList`的成员函数定义,如构造函数、析构函数、添加和删除方法的实现,以及可能的优化代码,如使用迭代器或指针进行遍历和操作。 `StringListEx.h`则会包含`...

Global site tag (gtag.js) - Google Analytics