文档章节

TStringList 常用操作

涂孟超
 涂孟超
发布于 2014/09/26 15:35
字数 381
阅读 4
收藏 0
点赞 0
评论 0
//TStringList 常用方法与属性:
var
  List: TStringList;
  i: Integer;
begin
  List := TStringList.Create;
  List.Add('Strings1');           {添加}
  List.Add('Strings2');
  List.Exchange(0,1);             {置换}
  List.Insert(0,'Strings3');      {插入}
  i := List.IndexOf('Strings1');  {第一次出现的位置}
  List.Sort;                      {排序}
  List.Sorted := True;		  {指定排序}
  List.Count;                     {总数}
  List.Text;                      {文本集合}
  List.Delete(0);                 {删除, 0是第一个数据}
  List.LoadFromFile('c:\tmp.txt');{打开}
  List.SaveToFile('c:\tmp.txt');  {保存}
  List.Clear;                     {清空}
  List.Free;                      {释放}
end;

 
 
 
 
 

 

 

  
//读入字符串 var List: TStringList; begin List := TStringList.Create; List.CommaText := 'aaa,bbb,ccc,ddd'; //相当于: List.Text := 'aaa' + #13#10 + 'bbb' + #13#10' + 'ccc' + '#13#10' + 'ddd'; ShowMessage(IntToStr(List.Count)); //4 ShowMessage(List[0]); //aaa List.Free; end;
//置换分隔符 var List: TStringList; begin List := TStringList.Create; List.Delimiter := '|'; List.DelimitedText := 'aaa|bbb|ccc|ddd'; ShowMessage(IntToStr(List.Count)); //4 ShowMessage(List[0]); //aaa List.Free; end;
//类似的哈希表操作法 var List: TStringList; begin List := TStringList.Create; List.Add('aaa=111'); List.Add('bbb=222'); List.Add('ccc=333'); List.Add('ddd=444'); ShowMessage(List.Names[1]); //bbb ShowMessage(List.ValueFromIndex[1]); //222 ShowMessage(List.Values['bbb']); //222 //ValueFromIndex 可以赋值: List.ValueFromIndex[1] := '2'; ShowMessage(List[1]); //bbb=2 //可以通过 Values 赋值: List.Values['bbb'] := '22'; ShowMessage(List[1]); //bbb=22 List.Free; end;
//避免重复值 var List: TStringList; begin List := TStringList.Create; List.Add('aaa'); List.Sorted := True; //需要先指定排序 List.Duplicates := dupIgnore; //如有重复值则放弃 List.Add('aaa'); ShowMessage(List.Text); //aaa //Duplicates 有3个可选值: //dupIgnore: 放弃; //dupAccept: 结束; //dupError: 提示错误. List.Free; end;
//排序与倒排序 {排序函数} function DescCompareStrings(List: TStringList; Index1, Index2: Integer): Integer; begin Result := -AnsiCompareText(List[Index1], List[Index2]); end; procedure TForm1.Button1Click(Sender: TObject); var List: TStringList; begin List := TStringList.Create; List.Add('bbb'); List.Add('ccc'); List.Add('aaa'); //未排序 ShowMessage(List.Text); //bbb ccc aaa //排序 List.Sort; ShowMessage(List.Text); //aaa bbb ccc //倒排序 List.CustomSort(DescCompareStrings); //调用排序函数 ShowMessage(List.Text); //ccc bbb aaa //假如: List.Sorted := True; List.Add('999'); List.Add('000'); List.Add('zzz'); ShowMessage(List.Text); //000 999 aaa bbb ccc zzz end;
//待续...

本文转载自:http://www.cnblogs.com/del/archive/2007/12/10/990040.html

共有 人打赏支持
涂孟超
粉丝 12
博文 2004
码字总数 14107
作品 0
深圳
程序员
[转载红鱼儿]kbmmw 开发点滴:TkbmMWLock用法

TStringList不是线程安全的,当我们在线程用到他是,要做保护。方法有两种,一种是用delphi自带的Critical,另外一种就是kbmMW为我们提供的TkbmMWLock类。 现在我们看看如何用TkbmMWLock为T...

xalion ⋅ 2012/10/23 ⋅ 0

C语言字符串库--AString

AString一个轻量级的自动内存管理的C语言字符串库,可以方便的对字符串进行各种操作,而无需直接操作内存,同时,AString还提供了一个AStringList结构,与Delphi中的TStringList类似,方便操...

涛儿 ⋅ 2011/12/06 ⋅ 0

unigui判断浏览器内核、操作系统以及是否移动终端函数_by X-MAN.txt

function GetDeviceType(var OsName, BrowserName: string; var IsMobileDevice: Boolean): string; var I: Integer; BrowserInfo: string; OSTypes, BrowserTypes: TStringList; begin Resu......

vga ⋅ 2014/03/08 ⋅ 0

delphi7 指针操作错误

源代码: unit Unit1; type TForm1 = class(TForm) Edit1: TEdit; ListView1: TListView; Button1: TButton; procedure FormCreate(Sender: TObject); procedure ListView1Deletion(Sender: T......

xjplab ⋅ 2016/09/02 ⋅ 4

Delphi实现的MIME邮件格式解析类库

研究了一下Pop3的邮件接收协议,然后随手写了一个Pop3的邮件接收控件!Pop3的邮件协议实际上是很简单的,知道那几个命令就行了,与服务器之间的交互是一问一答得方式,控制起来也容易,相对而...

技术小美 ⋅ 2017/11/12 ⋅ 0

TstringList 的 双引号 问题处理

当数据中有引号时,TstringList 默认会将 双引号去掉,为避免发生这种情况, 用下面设置解决: lst1.QuoteChar := #0;

vga ⋅ 2015/01/12 ⋅ 0

百度输入提示 Delphi 实现

我们在百度时,输入部分内容,即可获得输入项选择列表,从而大大减少录入,用户的体验很好,下面是用delphi 模拟这种效果的设计 定义 DataLst: TStringList; 用于存放供选择的数据。 Edt1:T...

vga ⋅ 2015/08/25 ⋅ 0

创建 Access 数据库 mdb 数据库(delphi)

function CreateAccessDB(MDBFile: string): Boolean; function CreateAccessFile(FileName: String; PassWord: string=''): boolean; var vCatalog: OleVariant; begin Result := False; if......

vga ⋅ 2014/04/17 ⋅ 1

GO 语言 UI 组件库 - govcl

由于现有第三方的Go UI库不是太大就是用的不习惯,或者组件太少。就萌生了自己写一个UI库的想法Delphi(Lazarus)有些许多优秀的VCL(LCL)组件,不拿来使用太可惜了。所以就索性做了一套。目前支...

不在乎y ⋅ 2017/10/10 ⋅ 17

解决RichEdit line insertion error的方法

本文来自:http://blog.csdn.net/hellogv/ 在RICHEDIT 中使用StringReplace这个字符串替换函数时, 很容易就出现"RichEdit line insertion error". 解决的方法: TStrings tmp=new TStringLi...

晨曦之光 ⋅ 2012/03/14 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

个人博客的运营模式能否学习TMALL天猫质量为上?

心情随笔|个人博客的运营模式能否学习TMALL天猫质量为上? 中国的互联网已经发展了很多年了,记得在十年前,个人博客十分流行,大量的人都在写博客,而且质量还不错,很多高质量的文章都是在...

原创小博客 ⋅ 今天 ⋅ 0

JavaScript零基础入门——(十一)JavaScript的DOM操作

JavaScript零基础入门——(十一)JavaScript的DOM操作 大家好,欢迎回到我们的JavaScript零基础入门。最近有些同学问我说,我讲的的比书上的精简不少。其实呢,我主要讲的是我在开发中经常会...

JandenMa ⋅ 今天 ⋅ 0

volatile和synchronized的区别

volatile和synchronized的区别 在讲这个之前需要先了解下JMM(Java memory Model :java内存模型):并发过程中如何处理可见性、原子性、有序性的问题--建立JMM模型 详情请看:https://baike.b...

MarinJ_Shao ⋅ 今天 ⋅ 0

深入分析Kubernetes Critical Pod(一)

Author: xidianwangtao@gmail.com 摘要:大家在部署Kubernetes集群AddOn组件的时候,经常会看到Annotation scheduler.alpha.kubernetes.io/critical-pod"="",以表示这是一个关键服务,那你知...

WaltonWang ⋅ 今天 ⋅ 0

原子性 - synchronized关键词

原子性概念 原子性提供了程序的互斥操作,同一时刻只能有一个线程能对某块代码进行操作。 原子性的实现方式 在jdk中,原子性的实现方式主要分为: synchronized:关键词,它依赖于JVM,保证了同...

dotleo ⋅ 今天 ⋅ 0

【2018.06.22学习笔记】【linux高级知识 14.4-15.3】

14.4 exportfs命令 14.5 NFS客户端问题 15.1 FTP介绍 15.2/15.3 使用vsftpd搭建ftp

lgsxp ⋅ 今天 ⋅ 0

JeeSite 4.0 功能权限管理基础(Shiro)

Shiro是Apache的一个开源框架,是一个权限管理的框架,实现用户认证、用户授权等。 只要有用户参与一般都要有权限管理,权限管理实现对用户访问系统的控制,按照安全规则或者安全策略控制用户...

ThinkGem ⋅ 昨天 ⋅ 0

python f-string 字符串格式化

主要内容 从Python 3.6开始,f-string是格式化字符串的一种很好的新方法。与其他格式化方式相比,它们不仅更易读,更简洁,不易出错,而且速度更快! 在本文的最后,您将了解如何以及为什么今...

阿豪boy ⋅ 昨天 ⋅ 0

Python实现自动登录站点

如果我们想要实现自动登录,那么我们就需要能够驱动浏览器(比如谷歌浏览器)来实现操作,ChromeDriver 刚好能够帮助我们这一点(非谷歌浏览器的驱动有所不同)。 一、确认软件版本 首先我们...

blackfoxya ⋅ 昨天 ⋅ 0

线性回归原理和实现基本认识

一:介绍 定义:线性回归在假设特证满足线性关系,根据给定的训练数据训练一个模型,并用此模型进行预测。为了了解这个定义,我们先举个简单的例子;我们假设一个线性方程 Y=2x+1, x变量为商...

wangxuwei ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部