关于TString的问题. ( 积分: 73 )

  • 主题发起人 主题发起人 yzy88nihaoma
  • 开始时间 开始时间
Y

yzy88nihaoma

Unregistered / Unconfirmed
GUEST, unregistred user!
对于TString 的用法还不是很懂,
谁能提供一下,
1.把操作的记录储存到TString;
2.如何获取存到TString所有的记录或者该记录.
3.用什么方法来区别TString记录的,比如有修改的,删除的,添加的.把他们区分开来.该怎么写.
谢谢了,急切需要知道.
全部分送上了,谢谢各位!
 
解答一下吧,各位大哥
 
不要想的太复杂,TStrings类其实就是一个封装好的,具有各种操作方法的字符串数组
建议定量变量时使用其子类TStirngList,不要用TStrings
1、如果从数据集中添加数据到TStringList,需要遍历数据集,然后 List1.AddString('dddd')添加上去即可
2、用 For i:=0 to List1.Count-1遍历,或者使用其方法 IndexOf('xxx')获取位置
3、每一个TStringList.Item就相当于指向字符串变量的指针,所以它具有变量的一切特性,但没有数据集记录一样的特性,所以本身也就不具备判断其是否被修改,被删除,被添加的状态标识,如果要做,只能另外想办法处理。
附加:
其实,StringList中的每一个Item还可以有多种巧妙的使用方法,比如说保存常见的
“变量名=某个值”的算式。
如 List1.AddString('I=9');
List1.NameValueSeparator:='=' 默认即为'=', 如果Item值为 i-9,也可以设为'-'等
则用 List1.Strings 可以得到字符串'I=9'
List1.Names[0] = 'I'
List1.ValueFromIndex = '9'
List1.Values['i'] = '9'
....

这些打开帮助看看就明白了
 
TStrings本身只是一个字符串容器,也就可以存放任何可以被表达为字符串的信息。但楼
主问的问题似乎和TStrings没有直接关系,而只是一个将操作转换为字符串的问题。
我的意见是模仿SQL的写法,使用INSERT、UPDATE、DELETE作为操作的标识(当然也可以
简化为更短的标志)。例如:
DEL,Teacher,10
UPD,Book,Name,嫦娥计划
UPD,Book,Author,吴刚
INS,Borrow,...
 
谢谢你们,但是似乎我的表达能力有问题.
其实levi,有说出一点味道来了.
其实Tstring 里我只知道有这两种情况
1=0 或者 1=1 ,但是我想能否有第N种情况i=2.....i=n

self.FModifiedRecs.Values[0]:='1'是否就是记录该记录了?且是1=1的情况.
那这个FModifiedRecs.Add();或者说FModifiedRecs.AddObject();又起到什么作用呢?
 
自己UP一下,还有关于释放的问题,谁懂的,说一说.!!
 
self.FModifiedRecs.Values[0]:='1'是否就是记录该记录了?且是1=1的情况.
1、StringList下标是0开始的,且每个元素是要先添加,再使用的,越界使用会触发异常
比如说 self.FModifiedRecs := TStringList.Create后,或者
self.FModifiedRecs.Clear后,马上用self.FModifiedRecs.Values[0]:='1'会出错。
应先用self.FModifiedRecs.Add('1')
2、其实严格上来说,即使添加了一个记录了,你的语句self.FModifiedRecs.Values[0]:='1'也会出错,因为只有记录以"变量名=变量值"的格式添加到了LIST中,才可以用
Names、Values、ValuesFromIndex等方法取得值

那这个FModifiedRecs.Add();或者说FModifiedRecs.AddObject();又起到什么作用呢?
你输入FModifiedRecs的相应方法或属性,就应该明白添加的是什么东东
FModifiedRecs.Add()添加的是字符串的元素
FModifiedRecs.AddObject()添加的是对象指针元素
其实两者都是一个指针,前者指向的是字符串的首址,后者指向的是对象的地址
前面的可以添加字符串,后面的可以用来诸如管理动态创建的按钮,动态创建的标签等。
 
TString是记录一些简单的类型数据,但不能当然后TQUERY来使用。
 
多人接受答案了。
 
后退
顶部