一口气用了六个stringlist来保存传递数组,请谈谈感想和建议

wugangcn 2008-10-29 01:03:17
一口气用了六个stringlist来保存传递两个数组,一组各三个,不知道优劣,是不是用record或其它的更好。
有朋友说array of string有什么不方便,我也不明白,先听了照办了。
不懂,怕指针有坏处没用record,也不知stringlist有没指针。谈谈感想和建议。
...全文
261 29 打赏 收藏 转发到动态 举报
写回复
用AI写文章
29 条回复
切换为时间正序
请发表友善的回复…
发表回复
wugangcn 2008-11-02
  • 打赏
  • 举报
回复
请Harryfin去http://topic.csdn.net/u/20081030/23/81c695a5-278c-4bb9-878d-034d21b0c32b.html?seed=1719129184接分,谢谢。
请自由自在去http://topic.csdn.net/u/20081020/11/d34fd41e-b28e-4fb5-8d74-7630b8835d57.html?seed=1769119119
分不多,聊表谢意。
mygodsos 2008-10-31
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 wugangcn 的回复:]
用record出现问题了,我有的想这样赋值
str1: array of string =('1','2','5','4','5');
str2: array of string =('1','1','1','4','5');
str3: array of string =('1','2','2','4','5');
成了record,不会了。
只能aaa[1].str1:='';这样是不是要写循环。
[/Quote]
你要是只是单个字,不需要array of string,只需要
str1:string,
str1:='12545'
这时str1[1]里面就是'1',str1[3]里面是'5'
========
要定义record也容易
type
Mystr=pack record
a,b,c,d,e:string;
end;
TMyStrArry:array[0..2] of str;

procedure InitMyArry;
var
str:TMyStrArry;
begin
str[0].a:='1'; //str[0]相当于你的str1
str[0].b:='2';
...
str[2].e:='6';
end;

procedure ShowMyArry(str:TMyStrArry);//传送数组记录
var
s:string;
begin
s:=str[2].e;
s:=str[0].a;
end;
ssq237712 2008-10-30
  • 打赏
  • 举报
回复
呵呵,用Record不如用对象,扩展性更强。
散乱心绪 2008-10-30
  • 打赏
  • 举报
回复
非常同意2楼的说法,实现就好。

其实string也是指针,知识delphi给处理过了罢了。string可是delphi和vc比拼的一大亮点。

Harryfin 2008-10-30
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 wugangcn 的回复:]
有没人讲讲指针
[/Quote]
指针其实就是给记录加个指针类型,使用起来效果跟对象差不多的,不如用对象好了。有可能的话,还能用得上对象的多态特性。我以前也是习惯用记录的,现在实际做系统时也基本习惯用对象了。

指针例子:

type
PRecord = ^TRecord;
TRecord = record
aaa: string;
end;

var
x: PRecord;
begin
new(x);
x.aaa := 'ssss';
dispose(x);
end;

最后用一个列表来记录这个指针,如TList。
saien 2008-10-30
  • 打赏
  • 举报
回复
1、StringList:是一个存储字符串的链表类
2、record :你可以理解为数据类型
StringList中封装了一些方法,便于程序员进行软件开发,而Record仅仅是一种类型,需要你自已写相关方法!
masterjames 2008-10-30
  • 打赏
  • 举报
回复
用这个可以试一下,TSTRING.ADDSTRINGS 一次可以加一个数组。
wugangcn 2008-10-29
  • 打赏
  • 举报
回复
用record出现问题了,我有的想这样赋值
str1: array of string =('1','2','5','4','5');
str2: array of string =('1','1','1','4','5');
str3: array of string =('1','2','2','4','5');
成了record,不会了。
只能aaa[1].str1:='';这样是不是要写循环。
wugangcn 2008-10-29
  • 打赏
  • 举报
回复
不知道18楼和19楼讲的是不是一样的意思,
我很菜,名称什么的完全搞不清,不过看过点源文件,所以19楼说的我好象勉强会用,晚点试试。
wugangcn 2008-10-29
  • 打赏
  • 举报
回复
有没人讲讲指针
请 Harryfin和自由自在也去接分吧
http://topic.csdn.net/u/20081018/23/93e6306e-7fdf-4e04-a01c-c8f5bf7573d2.html或者
http://topic.csdn.net/u/20081020/11/d34fd41e-b28e-4fb5-8d74-7630b8835d57.html
qkhhxkj102 2008-10-29
  • 打赏
  • 举报
回复
我喜欢用结构数组



TTestRec=record
Str1:string;
Str2:string;
str3:string;
end;

var
marayTest:array of TTestRec;




gwhdaxia 2008-10-29
  • 打赏
  • 举报
回复
我觉得用record指针,然后再做个动态数组,
megyrr 2008-10-29
  • 打赏
  • 举报
回复
当然有别的方法,只是我不知哪个方法好
frankie_24 2008-10-29
  • 打赏
  • 举报
回复
为何要如此设计?是否有别的办法,如果只能这样,用10个都无所谓!
wugangcn 2008-10-29
  • 打赏
  • 举报
回复
清风杨,你说的很让人向往,提示一下行不
huayufei 2008-10-29
  • 打赏
  • 举报
回复
可以用指针来实现,更方便一点,不过要求你的水平高一点
yuqianyi1974 2008-10-29
  • 打赏
  • 举报
回复
去了
wugangcn 2008-10-29
  • 打赏
  • 举报
回复
那边本来是我等人来结贴的,没来。
wugangcn 2008-10-29
  • 打赏
  • 举报
回复
太深奥了,你去http://topic.csdn.net/u/20081015/11/0da74343-2611-40fa-9c7e-95ca960535d2.html接分吧,我准备结贴了。
yuqianyi1974 2008-10-29
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 wugangcn 的回复:]
老于,你上下两种有什么区别啊
[/Quote]
没什么不同,组织数据的方式不同
加载更多回复(9)

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧