Como converter um Char para minúsculo?
É necessário estar declarado SysUtils na seção uses,
em versões unicode declare System.SysUtils.
Nesta função vamos brincar um pouco com a linguagem assembly,
abaixo segue o código fonte da função, que serve também como
um exemplo de como utilizar o assembly no delphi.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| function LoCase( ch : Char ) : Char;
{$IFDEF WIN32}
asm
CMP AL,'A'
JB @@exit
CMP AL,'Z'
JA @@exit
SUB AL,'A' - 'a'
@@exit:
{$ENDIF$}
{$IFDEF WIN64}
begin
if (Length(ch) < 1) then
begin
Result := ch;
Exit;
end;
Result := LowerCase(ch)[1];
{$ENDIF}
end; |
function LoCase( ch : Char ) : Char;
{$IFDEF WIN32}
asm
CMP AL,'A'
JB @@exit
CMP AL,'Z'
JA @@exit
SUB AL,'A' - 'a'
@@exit:
{$ENDIF$}
{$IFDEF WIN64}
begin
if (Length(ch) < 1) then
begin
Result := ch;
Exit;
end;
Result := LowerCase(ch)[1];
{$ENDIF}
end;
Na função, o código assembly não funciona para 64 bits,
então foi feito uma adaptação para a função rodar também No x64.
Exemplos de uso:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| procedure TForm1.Button1Click(Sender: TObject);
var
vAux : String;
begin
{ Exemplo 1, um caractere simples }
ShowMessage(LoCase('X'));
{ Exemplo 2, o primeiro caractere de uma string estática. }
ShowMessage(LoCase(String('SHOW DELPHI')[1]));
{ Exemplo 3, convertendo o sexto caractere de uma variável string. }
vAux := 'FAÇA PARTE DA COMUNIDADE';
ShowMessage(LoCase(vAux[6]));
end; |
procedure TForm1.Button1Click(Sender: TObject);
var
vAux : String;
begin
{ Exemplo 1, um caractere simples }
ShowMessage(LoCase('X'));
{ Exemplo 2, o primeiro caractere de uma string estática. }
ShowMessage(LoCase(String('SHOW DELPHI')[1]));
{ Exemplo 3, convertendo o sexto caractere de uma variável string. }
vAux := 'FAÇA PARTE DA COMUNIDADE';
ShowMessage(LoCase(vAux[6]));
end;
-
InfusTec
-
2.246 views
- 0 comentários
- 25 de março de 2015
Está gostando do conteúdo? Considere pagar um cafezinho para nossa equipe!
Posts Relacionados - Continue Aprendendo