关于集合的问题,在FORMAT中的第二个参数是一个无所不包的集合,如果我要用程序生成该集合,应该定义一个什么样的变量呢?

mrzho 2006-06-20 02:43:26
关于集合的问题,在FORMAT中的第二个参数是一个无所不包的集合,如果我要用程序生成该集合,应该定义一个什么样的变量呢?
如:format('there have %d %s.',[2,'dogs']);
现在我知道构成该集合的所有元素,如何用程序来生成该集合呢?

望高手指点一二.

3Q
...全文
191 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
mrzho 2006-09-13
  • 打赏
  • 举报
回复
确实可行.高人啊.结贴,收藏
sdzeng 2006-09-13
  • 打赏
  • 举报
回复
搞清楚字符串赋值的问题了:)

var
v : array of TVarRec;
begin
Setlength(v,2);
v[0].VType := vtInteger;
v[0].VInteger := 0;
v[1].VType := vtAnsiString;
string(v[1].VString) := 'aa';
ShowMessage(Format('%d > %s ?',v));
end;
sdzeng 2006-09-13
  • 打赏
  • 举报
回复
array of const是一个可变开放数组,等价于array of TVarRec

var
v : array of TVarRec;
begin
Setlength(v,2);
v[0].VType := vtInteger;
v[0].VInteger := 0;
v[1].VType := vtInteger;
v[1].VInteger := 2;
ShowMessage(Format('%d > %d?',v));
end;

//还没搞清楚字符串如何写进去
//希望哪位达人有空研究一下
zsr 2006-09-13
  • 打赏
  • 举报
回复
是否可以用Variant?然后根据其类型生成格式串并构造字符串。
mrzho 2006-09-13
  • 打赏
  • 举报
回复
不知是不是我的描述不清楚,现在各位写出来的都是常量形式,如果我要用程序生成该集合,应该定义一个什么样的变量呢?
我可能有一张格式串表,里面存放如
id str 在程序中可能的值
1 there have %d %s. [3,'apples']
2 my %s is %d ages. ['friend',5]
3 %s have %d %s. ['you',3,'dogs']
......
那我在程序中应该如何构造这个动态的集合,使得这个程序是通用的.而不是专门为了某个串写死的程序.
mrzho 2006-09-12
  • 打赏
  • 举报
回复
我需要动态地设置第二个参数,有可能会得到如[2,'DOG']或者['HENS','DOGS','COWS']等等.
mrzho 2006-09-12
  • 打赏
  • 举报
回复
问题是在format中第二个参数的集合里面有多种数据类型,实际上你在使用的时候可能是未知的,比如format('there have %d %s.',[2,'dogs']);集合中第一个是整数,第二个是字符串.

天涯倦客 2006-09-12
  • 打赏
  • 举报
回复
format('there have %d %s.',[2,'dogs']);

format('there have %d .',[2])+
format('%s.',['dogs']);是一样的 加if判断
天涯倦客 2006-09-12
  • 打赏
  • 举报
回复
循环+if ..格式化串
mrzho 2006-09-12
  • 打赏
  • 举报
回复
是不是有点难?
risingsoft 2006-06-30
  • 打赏
  • 举报
回复
procedure TForm1.BitBtn5Click(Sender: TObject);
var
MySet:TMySet;
i:integer;
begin
MySet := [];
for i := 0 to 255 do
MySet := MySet + [i];

if 1 in MySet then
ShowMessage('1 in set')
else
ShowMessage('1 not in set');
end;
risingsoft 2006-06-30
  • 打赏
  • 举报
回复
TMySetType=byte;
TMySet=set of TMySetType;

procedure TForm1.BitBtn5Click(Sender: TObject);
var
MySet:TMySet;
i:integer;
begin
MySet := [];
for i := 0 to 255 do
MySet := MySet + [i];
end;
mrzho 2006-06-20
  • 打赏
  • 举报
回复
在DELPHI中format的定义
function Format(const Format: string; const Args: array of const): string;
第二个参数是常量数组,那要我如何才能动态定义一个参量数组呢?
mrzho 2006-06-20
  • 打赏
  • 举报
回复
????
mrzho 2006-06-20
  • 打赏
  • 举报
回复
最好是第二个参数是一个集合变量,但是该集合变量应该如何定义呢?
var
theset : set of String;? 非排序类型不允许.

那我该如何定义呢?郁闷...

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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