请帮我简化程序?

24ge 2005-06-27 11:02:37
程序如下:
var
a001:array[0..25] of byte;
a002:array[1..100] of byte;
......
a999:array[1..12] of byte;


if str = 'a001' then
处理a001数组;
if str = 'a002' then
处理a002数组;
......
if str = 'a999' then
处理a999数组;

内容很多。请问变量名称怎样转化为数组名?或者其他的简化方法?


...全文
77 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
hellolongbin 2005-06-27
  • 打赏
  • 举报
回复
如果处理方法不一样的话,当然要单独判断
24ge 2005-06-27
  • 打赏
  • 举报
回复
问题已经描述的很清楚了,就是字符串转化为数组名称。

heluqing的方法并不简单呀:)
何鲁青 2005-06-27
  • 打赏
  • 举报
回复
procedure TForm1.DoSthing(aName: string);
begin
case StrToInt(rightStr(aName,3)) of
1:
begin

end;
2:
begin

end;
3:
begin

end;
.....
999:
begin

end;
end;
end;
mastersky 2005-06-27
  • 打赏
  • 举报
回复
可以将问题描述得更具体点吗?
duanhai 2005-06-27
  • 打赏
  • 举报
回复
看看这样行不?

建立一个结构类型如下:

type
TMyArray = record
name: string;
A001: array of byte;
end;

var
A: array[0..12] of TMyArray;

procedure Init;
var
I: Integer;
begin
for I := Low(A) to High(A) do
begin
//...
end;
end;

procedure ProcessArray(MyArray: array of byte);
begin
//
end;

function GetArray(const AArrayName: string): boolean;
var
I: Integer;
begin
Result := False;

for I := Low(A) to High(A) do
if A[I].name = AArrayName then
begin
Result := True;
ProcessArray(A[I].A001);
Break;
end;
end;
24ge 2005-06-27
  • 打赏
  • 举报
回复
因为str变量的内容和数组名是一一对应的,我就想可不可以将他们对应起来:
functio ProcessArray(a:array of byte):boolean;
begin
//
end;

function GetArray(str:string):boolean;
begin
ProcessArray(TArray(str)); //可不可以用什么方法转化一下:
end;

16,748

社区成员

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

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