Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Formatar número


seveN

Pergunta

8 respostass a esta questão

Posts Recomendados

  • 0
Eu digito a matricula assim:

9289988 e no relatório teria que sair assim 928998-8

com hífem.

Se voce tivesse seguido o exemplo que te passei no outro post, voce chegaria a isto

procedure TForm1.Button1Click(Sender: TObject);
var s, s1, s2 : string; i : integer;
begin
   s := Trim(edit1.text); // 9289988
   i := length(s);
   s1 := copy(s,1,i-1);
   s2 := copy(s,i-1,1);
   FmtStr(s, '%.6d', [strtoint(s1)]);
   Label1.Caption := s+'-'+s2;  // 928998-8
end;

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Outra forma de fazer isto, preenchendo com zeros à esquerda e usando funções do Delphi (>= 7, anteriores não sei):

FormatMaskText -> unit MaskUtils

FormatFloat e StrToInt -> unit SysUtils

Relatorio.Matricula.Caption := FormatMaskText('000000-0;0', FormatFloat('0000000', StrToInt(Edit1.text)));

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0
Relatorio.Matricula.Caption:= 'Mat ' + FormatMaskText('000000-0;0', (Edit.Text));

seveN, só para constar, o uso de FormatMaskText com a máscara de formatação desejada só funciona corretamente se o string passado a ele tiver exatamente a mesma quantidade de caracter da máscara. A função é a utilizada pelo componente TMaskEdit.

No exemplo acima, a máscara "pede" que o texto tenha 7 caracteres (são os zeros ou noves na máscara). Se o conteúdo do seu texto for "885", o resultado será "885 - ". A julgar pelo fato de você não ter usado código que eu ou o Jhonas postou, parece que você não quer preencher com zeros à esquerda o tal número. Assim, baseado no exemplo, se a intenção é que o resultado seja "88-5", então voce deve garantir que o seu texto tenha a quantidade de caracteres correta, adicionando espaços no início dele:

Relatorio.Matricula.Caption := FormatMaskText('000000-0;0', Format('%7s', [Edit1.text]));

Agora o resultado final será: " 88-5", corretamente formatado, e para remover o espaço em branco antes, basta usar a função Trim:

Relatorio.Matricula.Caption := Trim(FormatMaskText('000000-0;0', Format('%7s', [Edit1.text])));

Abraços

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...