Delphi字符串列表及应用(一)

如题所述

第1个回答  2022-10-26

  Delphi应用程序经常要处理字符串列表 如组合框和列表框中的字符串 TMemo部件的文本行 屏幕支持的字体列表 TNotebook部件的tabs属性 字符串网格的行 列等等

  虽然应用程序以不同的方法使用这些列表 但Delphi通过一个叫字符串列表(Tstrings)的对象提供统一的界面 并且在不同场合可相互转化 例如 可以在TMemo部件中编辑某一字符串 并把它当成列表框中列表项使用

  在Delphi集成开发环境中也经常要使用字符串列表 如在Object Inspector窗体的取值栏中常列有Tstrings字符 双击该字符 将弹出字符列表编辑器 如图 在编辑器中可进行编辑 加入 删除等操作

  在运行状态时也可以操作字符串列表 常见的字符串列表操作如下

  列表中操作字符串

  装载 保存字符串列表

  创建字符串列表

  在字符串列表中加入对象

  本章将介绍字符串列表的常用操作及简单应用

   字符串列表的常用操作 

   列表中操作字符串 

  在Delphi应用程序中 经常要对列表中的字符串进行操作 例如 设计时修改字符串列表属性

  常见的字符串操作如下

  计算列表中字符串数目

  访问指定字符串

  查找字符串的位置

  往列表中加入字符串

  删除列表中的字符串

  在列表中移动字符串

  复制一个完整的字符串列表

  复制列表中的字符串 

   计算列表中的字符串数目 

  使用Count属性可计算列表中的字符串数目 Count是只读属性 用以指示列表中字符串列表数目 因为字符串列表是以零开始索引 因而Count比列表的最大索引数大一

  例如 应用程序想计算当前屏幕支持的字体数目 可查找屏幕对象的字体列表 该列表包含了屏幕支持的所有字体的名字

  FontCount:=Screen Fonts Count;

   访问指定字符串 

  字符串列表有一个可索引的Strings属性 可象使用字符串数组一样使用Strings 例如 列表中第一个字符串为Strings[ ] 因为Strings属性为字符串列表中最常用的属性 Strings属性可做为字符串列表的缺省属性 即使用时可省略Strings标识符

  要访问字符串中的指定字符 可查找该字符的起始位置或索引 字符串数目是以零开始记数的 如果列表中有三个字符串 其索引范围为

  以下代码是等价的  

  Memol Lines Strings[ ]:= This is the first line ;  Memol Lines[ ]:= This is the first line ;

   查找字符串的位置 

  Indexof方法可查找指定字符串的位置 Indexof有一个字符串类型的参数 方法返回列表中匹配字符串的位置 如果列表中无匹配字符串 将返回

  Indexof方法只能查找完整字符串 即必须完全匹配整个字符串 如果只匹配部分字符串 必须编写相应代码

  以下代码判定列表中是否有指定字符串

  if FileListBox Items IndexOf( AUTOEXEC BAT ) > then  begin  Color := clYellow;  Label Caption := You are in the root directory! ;  end;    在列表中加入字符串 

  有两种方式往列表中加入字符串 可把字符串加到列表的最后 也可插入列表之中

  要把字符串加至列表尾部 使用Add方法 把字符串作为参数传递

  要把字符串插入列表中 使用Insert方法 传递两个参数 插入的位置和字符串

  例如 要把 Three 插入至列表中的第三个位置 使用代码Insert( Three ) 如果列表中的字符不到 个 Delphi将产生超出索引范围的异常(关于异常详见十二章)  

   在列表中移动字符串 

  应用程序可以在列表中把指定字符串移至另一个位置 如果字符串与某个对象相连 则该对象与字符串同步移动

  Move方法可实现字符串的移动 它有两个参数 现行位置和要移动的位置 以下代码把第三个字符串移至第五的位置 Move( ); 

   删除列表中的字符串 

  使用Delete方法可以删除指定的字符串 Delete的参数是指定字符串的位置 如果不知道字符串的位置 可使用Indexof方法

  要删除字符串列表中所有的字符串 可使用Clear方法

  以下代码删除列表框中的指定字符串  

  With ListBox Items do  begin  if Indexof( bureaucracy )> then  Delete (Indexof( bureaucracy ));  end;    复制完整的字符串列表 

  把一个列表复制到另一个列表相当于把源列表赋值给目标列表 即使列表从属于不同的部件 Delphi也可以进行这种复制

  复制列表将覆盖掉目标列表 如果要把源列表加到目标列表的尾部 使用Addstrings方法

  以下代码分别为复制列表和连接列表  

  Outline Lines:=ComboBox Items;

lishixinzhi/Article/program/Delphi/201311/24810

相似回答