如何使数组值全部大写字母拉撒路

时间:2016-09-24 15:31:05

标签: arrays listbox lazarus uppercase

用户通过InputBox将字符串值输入到字符串数组中,一旦存储了值,如何使所有字母仅成为大写字母,如下例所示。然后,这些值必须基本上覆盖数组中的非大写值,以便稍后可以在列表框中显示它们。我知道我需要使用UpperCase函数,但我似乎无法正常工作,因为它看起来非大写。

这是我第一次尝试使用数组和UpperCase函数,所以请你好。

示例:'曲棍球','网球'足球'      到了'HOCKEY','网球','足球'

UpperCase代码:

procedure TFrm2016Assignment9.BtnCapitalStrClick(Sender: TObject);
   var
       Capitalise : string;
begin
 Capitalise := UpperCase(nBasicsStrArray[0]);
end;

显示代码:

procedure TFrm2016Assignment9.BtnDisplayStrClick(Sender: TObject);
begin
  dDateTime := Date() + Time();
  LstOutput.Items.Add('String Array : ' + DateTimeToStr(dDateTime));
  LstOutput.Items.Add(nBasicsStrArray[0]);
  LstOutput.Items.Add(nBasicsStrArray[1]);
  LstOutput.Items.Add(nBasicsStrArray[2]);
  LstOutput.Items.Add(nBasicsStrArray[3]);
  LstOutput.Items.Add(nBasicsStrArray[4]);
  LstOutput.Items.Add('****');
end;

3 个答案:

答案 0 :(得分:1)

UpperCase是一个返回一个新值的函数,字母大写。它不会修改其参数。您将此新值分配给局部变量并立即将其忘记。

删除无用的BtnCapitalStrClick方法。添加字符串时将它们转换为大写:

LstOutput.Items.Add(UpperCase(nBasicsStrArray[0]));

答案 1 :(得分:0)

由于这是Lazarus主题,因此应注意UpperCase解决方案仅适用于前128个ASCII字符。 Lazarus默认使用UTF8编码,因此函数UTF8Uppercase(单位为LazUTF8)是一种更通用的解决方案,因为它考虑了所有字符。

答案 2 :(得分:-1)

nBasicsStrArray是什么数据类型?

只需在整个字符串上使用UpperCase:

whatever := UpperCase(someEdit.text);