Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Necesito una ayudita (https://www.clubdelphi.com/foros/showthread.php?t=42603)

platense:07 18-04-2007 05:47:22

Necesito una ayudita
 
Buenas gente!
Tengo una consulta. En un campo TEdit, almaceno un nombre de una persona .. y luego tengo que calcular para cada letra del nombre, su numero, e ir sumandolas a un total. Tengo la siguiente tabla de conversión.
Había pensado en hacer un arreglo e ir poniendole los valores, luego leer la letra, y ver su valor en el arreglo, pero se me complica con la inserción de la Ñ.
Alguien me puede dar alguna idea de cómo realizarlo?

http://img341.imageshack.us/img341/6373/tablaua3.gif

Saludos y Gracias por el tiempo

Héctor Randolph 18-04-2007 07:29:05

Hola platense:07

Para obtener el número que le corresponde a cada caracter según la tabla podrías crear un función como esta:

Código Delphi [-]
function CharToNum(c: Char):Integer;
begin
  case UpCase(c) of
   'A','J','S': Result:=1;
   'B','K','T': Result:=2;
   .
   . 
   'E','N','Ñ','W': Result:=5; // Consideras también a la Ñ
   .
   .

   else Result:=0;
  end;
end;

Finalmente puedes llamar a la función de esta forma para cada letra de la cadena y hacer la suma

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
  Numero: Integer;
begin
   Numero:=CharToNum(Edit1.Text[1]);//Calculamos el número del primer caracter del edit
   ShowMessage(IntToStr(Numero));   //Muestro el número
end;

Saludos

platense:07 18-04-2007 07:57:26

Héctor, la verdad que te pasaste. Fabuloso lo tuyo.
Yo me estaba haciendo problemas con arreglos y todo eso.
No tengo palabras para agradecerte amigo :D
Saludos

roman 18-04-2007 08:26:49

Una alternativa:

Código Delphi [-]
function GetCharCode(Ch: Char): Integer;
begin
  if Ch in ['ñ', 'Ñ'] then Dec(Ch);
  Result := ((Ord(UpCase(Ch)) - Ord('A')) mod 9) + 1;
end;


La franja horaria es GMT +2. Ahora son las 22:14:46.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi