为什么会这样?关于case...of ...(40分)

  • 主题发起人 主题发起人 cpinfo
  • 开始时间 开始时间
C

cpinfo

Unregistered / Unconfirmed
GUEST, unregistred user!
难道 case 不支持中文?
要如何解决啊?(解决给分,我只有55分了,给40分如何?)
case aa of
开元区-鹭江街道(11) : b:='11';
开元区-公园(13) : b:='13';
开元区-梧村(14) : b:='14';
开元区-莲前(15) : b:='15';
开元区-员筜(16) : b:='16';
开元区-嘉莲(17) : b:='17';
思明区-思明(21) : b:='21';
思明区-中华(22) : b:='22';
思明区-文安(23) : b:='23';
思明区-厦港(24) : b:='24';
思明区-滨海(25) : b:='25';
鼓浪屿(31) : b:='31';
湖里区(41) : b:='41';
杏林区(50) : b:='50';
集美区(60) : b:='60';
同安区(70) : b:='70';
海沧区(80) : b:='80';
end;


[Error] first.pas(99): 序数打字必需的
[Error] first.pas(100): 非法字符在输入文件: '开' ($BFAA)
[Error] first.pas(100): 非法字符在输入文件: '街' ($BDD6)
[Error] first.pas(101): 非法字符在输入文件: '开' ($BFAA)
[Error] first.pas(102): 非法字符在输入文件: '开' ($BFAA)
[Error] first.pas(103): 非法字符在输入文件: '开' ($BFAA)
[Error] first.pas(104): 非法字符在输入文件: '开' ($BFAA)
[Error] first.pas(105): 非法字符在输入文件: '开' ($BFAA)
[Error] first.pas(106): 非法字符在输入文件: '思' ($CBBC)
[Error] first.pas(107): 非法字符在输入文件: '思' ($CBBC)
[Error] first.pas(108): 非法字符在输入文件: '思' ($CBBC)
[Error] first.pas(109): 非法字符在输入文件: '思' ($CBBC)
[Error] first.pas(110): 非法字符在输入文件: '思' ($CBBC)
[Error] first.pas(111): 非法字符在输入文件: '鼓' ($B9C4)
[Error] first.pas(112): 非法字符在输入文件: '湖' ($BAFE)
[Error] first.pas(113): 非法字符在输入文件: '杏' ($D0D3)
[Error] first.pas(114): 非法字符在输入文件: '集' ($BCAF)
[Error] first.pas(115): 非法字符在输入文件: '同' ($CDAC)
[Error] first.pas(116): 非法字符在输入文件: '海' ($BAA3)
[Fatal Error] Project1.dpr(5): 不能编译使用单元 'first.pas'
 
Delphi 的Case不支持字符串,你可以找个二维数组,让字符串跟数字对应对应一下,就可以搞定。
 
你这是什么写法,高深!
 
case只能用于序数型
 
SelectStrings: TStringList;
...

{ Initialization }
SelectStrings := TStringList.Create;
SelectStrings.Add('First');
(*1*)
SelectStrings.Add('Second');
(*2*)
SelectStrings.Add('Third');
(*3*)
...

{ Use it }

case SelectStrings.IndexOf(sPassedString) of (*4*)
0: //First
begin

<do something>
end;

1: //Second
begin

<do something>
end;

2: //Third
begin

<do something>
end;

end;

...
{ Finalization }
SelectStrings.Free;

 
建个表
field1 field2
开元区-鹭江街道(11) '11'
开元区-公园(13) '13'
开元区-梧村(14) '14'
开元区-莲前(15) '15'
开元区-员筜(16) '16'
开元区-嘉莲(17) '17'
思明区-思明(21) '21'
用SQL语句取出符合的记录,再把field2的值赋给B
 
没看到过这样用case的
 
to ugvanxk:我怎么没想到,笨哪!
 
你的字符串没加引号?!
 
加引号也不对,Delphi中Case不能用字符串
 
牛人,别说不支持字符串,就算支持,你那种写法也不对呀
 
case i of
end;

这里的 i 必须是有序的,直接用字符串当然不行。:)
 
如果是一个Integer常量的话,不用中文字符做为名字就好了啊,
 
后退
顶部