Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   numero a letra (https://www.clubdelphi.com/foros/showthread.php?t=68267)

escorpionrojo43 04-06-2010 08:06:55

numero a letra
 
Hola.
amigos del club, necesito una ayudita, necesito imprimir en un reporte los valores numericos representados por una letra.

estoy usando Rbuilder, lo que necesito es: si en el campo precio tengo 100.00 en mi reporte me salga algo como BAA.AA
la tabla seria asi
A = 0
B = 1
C = 2
D = 3
E = 4
F = 5
G = 6
H = 7
I = 8
J = 9
. = .
cuento con su ayuda.
gracias desde Republica. Dominicana.

ahh! porcierto algo sencillo de entender ya que soy novato.

afxe 04-06-2010 14:30:43

Código Delphi [-]
fuction codifica(MiNum:Float) : String;
var
  i : Integer;
  s : String;
begin
  s := FloatToStr(MiNum);
  Result := '';
  for i := 1 to Length(S) do begin
    if s[i] = '.' 
      then result := result + s[i]
      else result := result + Char(Ord(StrToInt(S[i]))+64);
  end;
end;

No recuerdo ahora si la función es CHAR o ASC, es que me pillas en un cibercafé.

escorpionrojo43 04-06-2010 16:18:29

Cita:

Empezado por afxe (Mensaje 366186)
Código Delphi [-]fuction codifica(MiNum:Float) : String; var i : Integer; s : String; begin s := FloatToStr(MiNum); Result := ''; for i := 1 to Length(S) do begin if s[i] = '.' then result := result + s[i] else result := result + Char(Ord(StrToInt(S[i]))+64); end; end;


No recuerdo ahora si la función es CHAR o ASC, es que me pillas en un cibercafé.

gracias por la repuesta hermano pero esto no me funciona no compila en rbuilder. ademas necesito adignarle yo el valor en letra a cada numero
osea

1=A o 1=X o 1=H
2=B o 2=N o 2=M
3=C o 3=R o 3=A

algo como con un case

case
1 = x
2 = y
3 = z
espero me entiendan mejor ahora

ecfisa 08-06-2010 21:44:32

Hola.

Creo que lo que buscas es algo así:
Código:

function NumeroALetra(Valor, Letras:string): string;
var
  i: Byte;
begin
  if Length(Letras) < 10 then  // Letras debe tener al menos 10 caracteres
      Exit;
  Result:= '';
  for i:= 1 to Length(Valor) do
    if Valor[i] = '.' then
      Result:= Result + '.'
    else
      Result:= Result + Letras[Ord(Valor[i])-Ord('0')+1];
end;

Donde los parámetros Valor y Letras pasan el valor y las letras que
decidas asignarle respectivamente.

Ejemplo de llamada:
ShowMessage(NumeroALetra('593727.90813','NACRXPZEDA'));
ó
Cad1:= NumeroALetra(Num,Let); // siendo Cad1, Num y Let variables de tipo string

Saludos.


La franja horaria es GMT +2. Ahora son las 23:44:20.

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