【delphi】TStringList类常用属性方法详解
TStringList 常用方法与属性
var
List: TStringList;
i: Integer;
begin
List := TStringList.Create;
List.Add('Strings1'); {添加}
List.Add('Strings2');
List.Exchange(,); {置换}
List.Insert(,'Strings3'); {插入}
i := List.IndexOf('Strings1'); {第一次出现的位置}
List.Sort; {排序}
List.Sorted := True; {指定排序}
List.Count; {总数}
List.Text; {文本集合}
List.Delete(); {删除, 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)); {}
ShowMessage(List[]); {aaa} List.Free;
end;
置换分隔符
var
List: TStringList;
begin
List := TStringList.Create;
List.Delimiter := '|';
List.DelimitedText := 'aaa|bbb|ccc|ddd'; ShowMessage(IntToStr(List.Count)); {}
ShowMessage(List[]); {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[]); {bbb}
ShowMessage(List.ValueFromIndex[]); {}
ShowMessage(List.Values['bbb']); {} {ValueFromIndex 可以赋值:}
List.ValueFromIndex[] := '';
ShowMessage(List[]); {bbb=2} {可以通过 Values 赋值:}
List.Values['bbb'] := '';
ShowMessage(List[]); {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('');
List.Add('');
List.Add('zzz');
ShowMessage(List.Text); {000 999 aaa bbb ccc zzz}
end;
【delphi】TStringList类常用属性方法详解的更多相关文章
- Delphi中TStringList类常用属性方法详解
TStrings是一个抽象类,在实际开发中,是除了基本类型外,应用得最多的. 常规的用法大家都知道,现在来讨论它的一些高级的用法. 先把要讨论的几个属性列出来: 1.CommaText 2.Delim ...
- ES6 类(Class)基本用法和静态属性+方法详解
原文地址:http://blog.csdn.net/pcaxb/article/details/53759637 ES6 类(Class)基本用法和静态属性+方法详解 JavaScript语言的传统方 ...
- Python的Django框架中forms表单类的使用方法详解
用户表单是Web端的一项基本功能,大而全的Django框架中自然带有现成的基础form对象,本文就Python的Django框架中forms表单类的使用方法详解. Form表单的功能 自动生成HTML ...
- Java AtomicInteger类的使用方法详解_java - JAVA
文章来源:嗨学网 敏而好学论坛www.piaodoo.com 欢迎大家相互学习 首先看两段代码,一段是Integer的,一段是AtomicInteger的,为以下: public class Samp ...
- Java File 类的使用方法详解
Java File类的功能非常强大,利用Java基本上可以对文件进行所有的操作.本文将对Java File文件操作类进行详细地分析,并将File类中的常用方法进行简单介绍,有需要的Java开发者可以看 ...
- Java File 类的使用方法详解(转)
转自:http://www.codeceo.com/article/java-file-class.html Java File类的功能非常强大,利用Java基本上可以对文件进行所有的操作.本文将对J ...
- 部分常用Express方法详解
app.set(name, value) 分配给name一个value,并将name作为app settings table的一个属性. 使用app.set('foo', true) 相当于调用 ap ...
- jQuery常用事件方法详解
目录 jQuery事件 ready(fn)|$(function(){}) jQuery.on() jQuery.click jQuery.data() jQuery.submit() jQuery事 ...
- Yii-数据模型- rules类验证器方法详解
public function rules(){ return array( array('project_id, type_id, status_id, owner_id, requester_id ...
随机推荐
- Android短信管家视频播放器代码备份
自己保留备份,增强记忆 这是video的类 public class VideoActivity extends Activity { /** * 解析网络页面 */ private WebVie ...
- ios中NSObject分类(2)
#import <Foundation/Foundation.h> UIColor * rgb(int r, int g, int b); UIColor * rgbA(int r, in ...
- 时间选择器(js,css,html)
忘了从哪下载的了, 整理电脑, 做个记录, 效果图: 下载链接: 链接: https://pan.baidu.com/s/1qfYkcfn8dtLFg0oniB2GHA 提取码: 2amm
- jsp空指针异常
1.Tomcat启动后访问首页报错 显示JSP 空指针异常 这哥们是因为lib下jar包和Tomcat下的jar包冲突,去掉lib下 servlet-api-2.5.jar 以及jsp-api.jar ...
- Xcode 8 的 Debug 新特性 —- WWDC 2016 Session 410 & 412 学习笔记
Contents OverView Static Analyzer Localizability Instance Cleanup Nullablility Runtime Issue View De ...
- 详解iOS多图下载的缓存机制
1. 需求点是什么? 这里所说的多图下载,就是要在tableview的每一个cell里显示一张图片,而且这些图片都需要从网上下载. 2. 容易遇到的问题 如果不知道或不使用异步操作和缓存机制,那么写出 ...
- 搭建HBase+thrift+php环境
http://www.beauty-soft.net/blog/ceiba/hadoop/2013-05-19/644.html http://www.360doc.com/content/11/07 ...
- 使用tmpfs的好处
EBS上超高频率的IO写入 这几天注意到我的EC2机器上有非常大量的IO,导致AWS的总体开销增加了很多.比如9月份的帐单中: I/O requests 120,076,984 IOs ...
- MVC2 扩展Models和自定义验证(学习笔记)
当我们利用Visual Studio生成实体类以后,难免会用到验证功能(例如,用户登录时验证用户名是否为空,并加以显示). Visual Studio实体类:实体类 如果直接去编辑Visual Stu ...
- Swift 可选型
1.可选型 Swift 语言为我们提供了一种全新的.更加安全的类型 "可选型".可选型是使用范型枚举的形式来组织的,也就是说此特性可以运用于所有的类型.结构体.类或者其他复杂数据类 ...