Buscar

Numero ordinal por extenso

Código

Function ordinal(numero: string): string;
var
  conta : smallint;
  Texto : string;
const
  Unidades: array[0..9] of string = ('','Primeiro ', 'Segundo ', 'Terceiro  ', 'Quarto', 'Quinto ',
    'Sexto ', 'Sétimo ', 'Oitavo ', 'Nono ');
  Dezenas: array[0..9] of string = ('','Décimo ', 'Vigésimo ', 'Trigésimo ', 'Quadragésimo ',
    'Quinquagésimo ', 'Sexagésimo ', 'Setuagésimo ', 'Octogésimo ', 'Novagésimo ');
  Centenas: array[0..9] of string = ('','Centésimo ', 'Ducentésimo ', 'Tricentésimo ',
    'Quadringentésimo ','Quingentésimo ','Sexcentésimo ','Septingentésimo ','Octingentésimo ','Noningentésimo ');

begin
  // tira os possiveis espacos em branco.
  numero:=trim(numero);
  // cria um laço para caminhar na string da direita para esquerda pegando os numeros.
  for conta:= length(numero) downto 1  do
  Begin
    // unidades
    if length(numero)-conta =0 then  texto := unidades[strtoint(copy(numero,conta,1))];
    // dezenas
    if length(numero)-conta =1 then  texto := dezenas[strtoint(copy(numero,conta,1))]+texto;
    // centenas
    if length(numero)-conta =2 then  texto := centenas[strtoint(copy(numero,conta,1))]+texto;
    // milhares
    if length(numero)-conta >2 then  texto := 'nao sabe contar tanto,ainda.'+texto;
  end;
  result:=texto;
end;

Publicidade

Vote na dica




Quantidade de votos: 0 votos
Aceitação: 0%


Detalhes da dica

Categoria: Componentes
Adicionada dia: 08/08/08
Por: Adilson Luis Basilio
Visualizada: 7122 vezes

Planeta Delphi - Tudo sobre programação Delphi Planeta Delphi - www.planetadelphi.com.br - Todos os direitos reservados | Copyright 2001-2009