Transformando Letras em Números usando o componente Edit
O usuário digita o nome na Edit e a Label mostra os números abaixo:
Na figura acima mostra em vermelho que:
N vale 7
A vale 3
V vale 9
É para um programa de numerologia que estou fazendo e algumas letras tem números iguais (obviamente)!
Gostaria que vocês me ajudassem :lol:
Na figura acima mostra em vermelho que:
N vale 7
A vale 3
V vale 9
É para um programa de numerologia que estou fazendo e algumas letras tem números iguais (obviamente)!
Gostaria que vocês me ajudassem :lol:
Lucas.bernieri
Curtidas 0
Respostas
Heliesio Vaz
18/01/2008
Você precisa definir valores para os numeros primeiro, um array ajudaria.
GOSTEI 0
Dbergkamps10
18/01/2008
Olá,
Tente criar um BD com as letras e seus respectivos números. Depois decomponha a string do Edit e compare cada letra para poder retornar o seu número correspondente.
Espero ter ajudado.
Att
Dalton
Tente criar um BD com as letras e seus respectivos números. Depois decomponha a string do Edit e compare cada letra para poder retornar o seu número correspondente.
Espero ter ajudado.
Att
Dalton
GOSTEI 0
Jose Almeida
18/01/2008
function LetToNum(Str:String):String;
const
Cad1:String = ´ABCDEFGHIJKLMNOPQRTSUVWXYZabcdefghijklmnopqrstuvwxyz´;
Cad2:String = ´12345678901234567890123456789012345678901234567890123456´;
var
x,y:integer;
begin
Result:=´´;
for y:=1 to Length(Str) do
begin
x:=0;
repeat x:=x+1;
until Str[y]=Cad1[x];
Result:=Result+Cad2[x]
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(LetToNum(Edit1.text));
end;
const
Cad1:String = ´ABCDEFGHIJKLMNOPQRTSUVWXYZabcdefghijklmnopqrstuvwxyz´;
Cad2:String = ´12345678901234567890123456789012345678901234567890123456´;
var
x,y:integer;
begin
Result:=´´;
for y:=1 to Length(Str) do
begin
x:=0;
repeat x:=x+1;
until Str[y]=Cad1[x];
Result:=Result+Cad2[x]
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(LetToNum(Edit1.text));
end;
GOSTEI 0
Jose Almeida
18/01/2008
Ou assim:
function LetToNum(Str:String):String;
const
Cad1:String = ´ABCDEFGHIJKLMNOPQRTSUVWXYZabcdefghijklmnopqrstuvwxyz´;
Cad2:String = ´12345678901234567890123456789012345678901234567890123456´;
var
x,y:integer;
begin
Result:=´´;
for y:=1 to Length(Str) do
begin
x:=Pos(Str[y],Cad1);
Result:=Result+Cad2[x]
end;
end;
function LetToNum(Str:String):String;
const
Cad1:String = ´ABCDEFGHIJKLMNOPQRTSUVWXYZabcdefghijklmnopqrstuvwxyz´;
Cad2:String = ´12345678901234567890123456789012345678901234567890123456´;
var
x,y:integer;
begin
Result:=´´;
for y:=1 to Length(Str) do
begin
x:=Pos(Str[y],Cad1);
Result:=Result+Cad2[x]
end;
end;
GOSTEI 0
Lucas.bernieri
18/01/2008
Beleza,
usei os códigos do Jose de Almeida e funcionou certinho,
mas eu esqueci de pedir o seguinte:
-somar agora os valores;
-deixar os outros caractéres que não sejam letras (por exemplo @#$¬&*!) valendo zero;
Obrigado
Esse fórum já me ajudou bastante... :wink:
usei os códigos do Jose de Almeida e funcionou certinho,
mas eu esqueci de pedir o seguinte:
-somar agora os valores;
-deixar os outros caractéres que não sejam letras (por exemplo @#$¬&*!) valendo zero;
Obrigado
Esse fórum já me ajudou bastante... :wink:
GOSTEI 0
Jose Almeida
18/01/2008
Substitua a função por esta:
function LetToNum(Str:String):String;
const
Cad1:String = ´ABCDEFGHIJKLMNOPQRTSUVWXYZabcdefghijklmnopqrstuvwxyz´;
Cad2:String = ´12345678901234567890123456789012345678901234567890123456´;
var
x,y,Soma:integer;
begin
Result:=´´;
Soma := 0;
for y:=1 to Length(Str) do
begin
x:=Pos(Str[y],Cad1);
if x = 0 then
Soma:= Soma + StrToInt(Cad2[10]) else
Soma:= Soma + StrToInt(Cad2[x]);
end;
Result:=IntToStr(Soma);
end;
function LetToNum(Str:String):String;
const
Cad1:String = ´ABCDEFGHIJKLMNOPQRTSUVWXYZabcdefghijklmnopqrstuvwxyz´;
Cad2:String = ´12345678901234567890123456789012345678901234567890123456´;
var
x,y,Soma:integer;
begin
Result:=´´;
Soma := 0;
for y:=1 to Length(Str) do
begin
x:=Pos(Str[y],Cad1);
if x = 0 then
Soma:= Soma + StrToInt(Cad2[10]) else
Soma:= Soma + StrToInt(Cad2[x]);
end;
Result:=IntToStr(Soma);
end;
GOSTEI 0
Lucas.bernieri
18/01/2008
Perdão por encomodar tanto.
Mas como eu faço pra deixar o número somente em unidades,
por exemplo: se a soma der 25, 2+5=7
Desde já agradeço!
São tudo fera...
Mas como eu faço pra deixar o número somente em unidades,
por exemplo: se a soma der 25, 2+5=7
Desde já agradeço!
São tudo fera...
GOSTEI 0
Jose Almeida
18/01/2008
function Soma(Num:String):String;
var
Sm,x:Integer;
begin
Sm:=0;
for x:=1 to Length(Num) do {Pega os caracteres de Num, um por vez}
begin
Sm:=Sm + StrToInt(Num[x]); {Converte os caracteres em número e soma a Sm}
end;
Soma:= IntToStr(Sm); {Converte Sm em String}
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(Soma(Edit1.Text));
end;
end.
var
Sm,x:Integer;
begin
Sm:=0;
for x:=1 to Length(Num) do {Pega os caracteres de Num, um por vez}
begin
Sm:=Sm + StrToInt(Num[x]); {Converte os caracteres em número e soma a Sm}
end;
Soma:= IntToStr(Sm); {Converte Sm em String}
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage(Soma(Edit1.Text));
end;
end.
GOSTEI 0