Fórum Transformando Letras em Números usando o componente Edit #352060
18/01/2008
0
[img:4453f4b36e]http://img85.imageshack.us/img85/807/forumdevmediaediteq9.png[/img:4453f4b36e]
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
Curtir tópico
+ 0Posts
19/01/2008
Heliesio Vaz
Gostei + 0
20/01/2008
Dbergkamps10
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
22/01/2008
Jose Almeida
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
22/01/2008
Jose Almeida
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
13/05/2008
Lucas.bernieri
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
14/05/2008
Jose Almeida
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
25/05/2008
Lucas.bernieri
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
26/05/2008
Jose Almeida
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
Clique aqui para fazer login e interagir na Comunidade :)