Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   cambiar numeros a letras (https://www.clubdelphi.com/foros/showthread.php?t=86860)

ebeltete 15-10-2014 01:03:23

cambiar numeros a letras
 
Hola amigos, he busado lo que necesito y no logro encontrarlo.
Necesito cambiar los numeros de las lineas de un memo a letras:
Ejemplo:
Texto original: 'mi telefono es el 20 58'
resultado:'mi telefono es el veinte cincuenta y ocho'
tengo una funcion para converitr los numeros a letras, pero no se como recorrer el memo buscando los numeros.
Saludos
P.D. Uso Delphi 5

ecfisa 15-10-2014 03:14:10

Hola ebeltete.

Creo que no vas a tener ningún problema en Delphi 5 de este modo:
Código Delphi [-]
procedure SplitNumbers(StrToSplit: string; const Delims: string; TS: TStrings);
var
  c,i,p:Integer;
  aux: string;
begin
  StrToSplit:= StrToSplit + Delims[1];
  c:= 0;
  p:= 1;
  for i:= 1 to Length(StrToSplit) do
  begin
    if Pos(StrToSplit[i], Delims) = 0 then
    begin
      aux:= Copy(StrToSplit, p, i-p);
      if aux <> '' then TS.Add(aux);
      p:= i + 1;
      Inc(c);
    end;
  end;
end;
Ejemplo de lamada:
Código Delphi [-]
procedure TForm1.btnSplitClick(Sender: TObject);
var
  Nros: TStrings;
begin
  Nros:= TStringList.Create;
  try
    SplitNumbers(Memo1.Text, '0123456789', Nros);
    ListBox1.Items.Assign(Nros);
    // (*)
  finally
    Nros.Free;
  end;
end;

Muestra:


(*) En tu caso deberías llamar a tu función, que supongo será algo como:
Código Delphi [-]
     for i:= 0 to Nros.Count-1 do
        ListBox1.Items.Add(NumeroToStr(StrToInt(Nros[i])));

Saludos :)


La franja horaria es GMT +2. Ahora son las 14:45:35.

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