//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));  //4
  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));  //4
  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[]);  //222
  ShowMessage(List.Values['bbb']);  //222   //ValueFromIndex 可以赋值:
  List.ValueFromIndex[] := '2';
  ShowMessage(List[]);  //bbb=2   //可以通过 Values 赋值:
  List.Values['bbb'] := '22';
  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('999');
  List.Add('000');
  List.Add('zzz');
  ShowMessage(List.Text);  //000 999 aaa bbb ccc zzz
end; 自己的例子
一个编辑框内容为:A,B,内容以数组形势存入数据库


procedure TFrm_030101_dimsAdd.AddSJ;
var
  dims:IJSONDocument;
  List: TStringList;
  i:integer;
  arr:array of string; //定义动态string型数组
begin
  try
    List := TStringList.Create;
    List.CommaText := Trim(edt_tagkeys.text);
    setlength(arr,List.count);//使用时,定义数组长度
    for i := 0 to List.count-1 do
    begin
      arr[i]:= List[i];
    end;

    List.free;

    dims:=json([
          '_id',Trim(edt_id.text),
          'name',Trim(edt_name.Text),
          'tagKeys',arr
         ]);
  FMongoWire.Insert(dimsCol,dims);
  ShowMessage('添加成功!');
 except
    application.MessageBox('添加出错,请联系管理员!','系统提示',mb_OK+MB_ICONinformation);
 end;
end;

delphi----Tstringlist,将有符号的数据变成数组"aaa,bbb,ccc"---->list[0]=aaa,list[1]=bbb的更多相关文章

  1. (转载)Delphi TStringList的用法

    Delphi TStringList的用法 TStrings是一个抽象类,在实际开发中,是除了基本类型外,应用得最多的. TStringList 常用方法与属性: var List: TStringL ...

  2. Delphi TStringList的用法

    Delphi TStringList的用法 TStrings是一个抽象类,在实际开发中,是除了基本类型外,应用得最多的. TStringList 常用方法与属性: var List: TStringL ...

  3. delphi TStringList 用法详解

    转自: http://blog.163.com/you888@188/blog/static/67239619201472365642633/ delphi TStringList 用法详解 2014 ...

  4. delphi中将一个ADOQuery查询的数据结果传递给一个动态生成的ADOQuery

    delphi中将一个ADOQuery查询的数据结果传递给一个动态生成的ADOQuery 2010-03-10 17:35 方法一: beginADOQuery:=TADOQuery.Create(Ap ...

  5. Delphi : TStringList的Find,IndexOf和Sort

    关键:Find要事先Sort排序,Indexof不用排序. TStringList内部查找相关的数据.待调试代码时才知道痛苦,浪费无数时间后,只得一步步跟踪,才发 现Find方法返回的Index总是错 ...

  6. 一个简单xml数据转换为数组的方法

    本人用easywechat做微信回复图文,从数据库中拿到的数据直接是xml拼好的数据,但是框架只有自带的获取xml格式的语句,所有需要将xml数据中所需要的数据拿出来用来拼接. 搜了好多资料说的都很麻 ...

  7. 假设一个大小为100亿个数据的数组,该数组是从小到大排好序的,现在该数组分成若干段,每个段的数据长度小于20「也就是说:题目并没有说每段数据的size 相同,只是说每个段的 size < 20 而已」

    假设一个大小为100亿个数据的数组,该数组是从小到大排好序的,现在该数组分成若干段,每个段的数据长度小于20「也就是说:题目并没有说每段数据的size 相同,只是说每个段的 size < 20 ...

  8. C语言保证,0永远不是有效的数据地址,因此,返回址0可用来表示发生的异常事件

    C语言保证,0永远不是有效的数据地址,因此,返回址0可用来表示发生的异常事件

  9. 键盘录入6个int类型的数据存入数组arr中,将arr数组中的内容反转...

    一.有一道很有意思的数组操作相关编程题,闲来无事用JS解决了一下,问题描述如下: (1) 键盘录入6个int类型的数据存入数组arr中: (2) 将arr数组中的内容反转: (3) 将反转后的数组角标 ...

随机推荐

  1. Android studio 使用心得(一)—android studio快速掌握快捷键

    大家都是从eclipse转过来了,所以早就熟悉了eclipse那一套快捷键. File—>settings—>keymap–>选择eclipse就搞定 话是这么说,但是自动化提示的变 ...

  2. Spring MVC 框架搭建及具体解释

    如今主流的Web MVC框架除了Struts这个主力 外.其次就是Spring MVC了,因此这也是作为一名程序猿需要掌握的主流框架.框架选择多了.应对多变的需求和业务时,可实行的方案自然就多了. 只 ...

  3. Heap 3214 LIS题解

    依据问题转换成最长不降子序列问题. 10^9的输入数据计算起来还是挺花时间的.由于这里仅仅能使用O(nlgn)时间复杂度了. 只是证明是能够算出10^9个数据的. 由于时间限制是5s. #includ ...

  4. 环境搭建基础知识2(sublime text3中配置verilog语法高亮)

    需求说明:Verilog设计 内容       :verilog开发环境搭建 来自       :时间的诗 1 软件下载 1.1 官方下载 地址http://www.sublimetext.com/3 ...

  5. RocketMQ综述(未完成)

    RocketMQ是一款分布式.队列模型的消息中间件,具有以下特点: 1.能够保证严格的消息顺序 2.提供丰富的消息拉取模式 3.高效的订阅者水平扩展能力 4.实时的消息订阅机制 5.亿级消息堆积能力 ...

  6. redis 服务相关

    一 什么是redis Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.从2010年3月15日起,Redis的开 ...

  7. uGUI Anchor

    Anchor定位:inspector面板的Rect Transform组件中PosX左边的方框图标就是设置锚点的,做界面自适应时可定位控件在视图中的位置,与NGUI类似.Anchor+Canvas的C ...

  8. 批量上传文件到HDFS的Shell脚本

    在做Hadoop数据挖掘项目的时候,我们第一步是源数据的获取,即把相应的数据放置到HDFS中,以便Hadoop进行计算,手动将文件上传到HDFS中,未免太费时费力,所以我们可以采取像Flume一样的框 ...

  9. vmware复制虚拟机出现Error:No suitable device found:no device found for connection 'System eth0'

    vmware复制虚拟机出现Error:No suitable device found:no device found for connection 'System eth0' 废话不多说,直接给出解 ...

  10. Python笔记8:网络编程

    python内置封装了很多常见的网络协议的库,因此python成为了一个强大的网络编程工具,这里是对python的网络方面编程的一个简单描述. urllib 和 urllib2模块 urllib 和u ...