把下面的代码转换成Delphi的case语句
if Pos('B000C3', ComboBox2.Text) > 0 then
begin
最终合体机器码 := 'B000C3';
end;
if Pos('B001C3', ComboBox2.Text) > 0 then
begin
最终合体机器码 := 'B001C3';
end;
if Pos('85C0', ComboBox2.Text) > 0 then
begin
最终合体机器码 := '85C0';
end;
if Pos('84C0', ComboBox2.Text) > 0 then
begin
最终合体机器码 := '84C0';
end;
if Pos('0F94C0', ComboBox2.Text) > 0 then
begin
最终合体机器码 := '0F94C0';
end;
if Pos('0F95C0', ComboBox2.Text) > 0 then
begin
最终合体机器码 := '0F95C0';
end;
if Pos('33C0', ComboBox2.Text) > 0 then
begin
最终合体机器码 := '33C0';
end;
if Pos('0BC0', ComboBox2.Text) > 0 then
begin
最终合体机器码 := '0BC0';
end;
if Pos('C3', ComboBox2.Text) > 0 then
begin
最终合体机器码 := 'C3';
end;
if Pos('0F85', ComboBox2.Text) > 0 then
begin
最终合体机器码 := '0F85';
end;
if Pos('0F84', ComboBox2.Text) > 0 then
begin
最终合体机器码 := '0F84';
end;
if Pos('75XX', ComboBox2.Text) > 0 then
begin
最终合体机器码 := '74';
end;
if Pos('74XX', ComboBox2.Text) > 0 then
begin
最终合体机器码 := '75';
end;
if Pos('90', ComboBox2.Text) > 0 then
begin
最终合体机器码 := DupeString('90', StrToInt(读取到的所在行_所占字节数.Value));
end;
以上代码,是简单,但很不科学啊~~ {:301_974:} 整俩字符串列表然后遍历吧
特殊情况再专门处理一下 一定要用case的话,可以看下这个文章https://www.iteye.com/blog/xmchcly-1269705
不过我觉得这段代码不用case更好解决。
把字符串都存到TStringList里,使用TStringList.IndexOf(ComboBox2.Text)>=0判断是否有这个值即可
不过我看个别输出值和判断值是不一样的,那可以用TstringList的AddPair的方式保存,使用TStringList.Values取下标判断 看来也不省事啊,就这样吧,至少直观简单。 本帖最后由 lies2014 于 2022-6-19 22:49 编辑
用case不好实现,因为case的条件是否成立需要在执行前明确,你这个是根据结果才能确定,不过可以简化一下代码,一是看起来简洁,二是碰到符合条件的就跳出不用继续执行后面的判断
var
s: array of string = ('B000C3','B001C3','85C0','84C0','0F94C0','0F95C0','33C0','0BC0','C3','0F85','0F84','75XX','74XX');
i: Integer;
begin
for i := 0 to 12 do
begin
if Pos(s, ComboBox2.Text) > 0 then
begin
最终合体机器码 := s;
break;
end;
end;
end;
if Pos('90', ComboBox2.Text) > 0 then
begin
最终合体机器码 := DupeString('90', StrToInt(读取到的所在行_所占字节数.Value));
end; case并不比if省事,逻辑清晰、便于维护才是宗旨。 话说贴主放这么美的头像好么 lies2014 发表于 2022-6-19 22:43
用case不好实现,因为case的条件是否成立需要在执行前明确,你这个是根据结果才能确定,不过可以简化一下代 ...
您用的哪个版本的delphi 为什么delphi不稳定? alphagis 发表于 2022-6-20 08:07
话说贴主放这么美的头像好么
哈哈,看着舒服就得了。我看还是举报版主姥爷得1分实惠。{:301_988:} vov5601 发表于 2022-6-20 09:17
您用的哪个版本的delphi 为什么delphi不稳定?
现在不用Delphi,基本不编程,偶尔有些小需求用Lazarus就能搞定
页:
[1]
2