Formatar String, tem como?

25/01/2006

0

Olá amigos,

Será que alguem tem alguma função para formatar string?

tipo, no meu arquivo texto eu trago tudo como texto (string), porem eu queria que ao passar a formatacao ele formatasse a string... do tipo:
string:        mask                result
01012001   dd/mm/yyyy     01/01/2001
500            R$#,0.00  R$500,00


Alguem teria uma função pra isso? ou o próprio delphi tem?

Obrigado desde já...

[]s


Titanius

Titanius

Responder

Posts

25/01/2006

Aasn

Olá Titanius,

O Delphi tem várias funções e procedures para formatação de strings, dê uma olhada no help em ´Format Strings´ para ver qual se encaixa melhor.

tente essa:

procedure FmtStr(var StrResult: string; const Format: string; const Args: array of const);

ex:

FmtStr(VariavelFinal, "#,0.00", [VariavelOriginal]);



[]´s
AASN


Responder

25/01/2006

Titanius

Olá Titanius, O Delphi tem várias funções e procedures para formatação de strings, dê uma olhada no help em ´Format Strings´ para ver qual se encaixa melhor. tente essa:
procedure FmtStr(var StrResult: string; const Format: string; const Args: array of const);

ex:

FmtStr(VariavelFinal, "#,0.00", [VariavelOriginal]);

[]´s AASN


Valeu... vou dar uma lida...

Obrigado.


Responder

25/01/2006

Michael

Olá!

O Delphi provê a função [b:089dc51585]Format[/b:089dc51585], que recebe uma string com determinadas máscaras, e as substitui por valores não-string. Veja um exemplo:

var
  S: string;
begin
  S := Format(´Meu nome é ¬s e tenho ¬d anos´, [´Michael´, 21]);
  // S será Meu nome é Michael e tenho 21 anos
end;


Acho difícil fazer o que vc mencionou (01012001 e a máscara dd/mm/yyyy), pois como saber que [b:089dc51585]dd [/b:089dc51585]significa os 2 primeiros digitos (e se tivesse só 1?), e [b:089dc51585]mm [/b:089dc51585]o 3º e o 4º e assim por diante?.

Pesquise no help do Delphi por [b:089dc51585]Format function[/b:089dc51585] e [b:089dc51585]Format strings[/b:089dc51585], para conhecer melhor a função e saber quais máscaras estão disponíveis.

Colega [b:089dc51585]AASN[/b:089dc51585], a procedure [b:089dc51585]FmtStr [/b:089dc51585]faz a mesma coisa que [b:089dc51585]Format[/b:089dc51585], mas passa a string formatada para a variável informada no primeiro parâmetro, pois trata-se de uma procedure. Aliás, Format chama FmtStr internamente. E a máscara que vc informou infelizmente não é suportada pela função. :-(


[]´s


Responder

25/01/2006

Titanius

vixi..
no caso consegui resolver em partes, pois precisava mesmo soh pra numeros, as datas nao... :D

Michael aproveitando... só pra nao abrir outro topico..

tenho um aplicativo que usa ClientDataSet, pois bem, sei que ele usa o midas.dll, aí pra nao levar essa dll pro usuario eu coloquei Midas no uses do Formulario.. pois bem, teoricamente nao deveria usar o midas.dll nao eh? mas quando eu abro a tela e abro o CDS, no Event Log do debug aparece lá :

Module load: midas.dll blablablabla..

ou seja, mesmo assim terei que levar o midas.dll?


[]s


Responder

25/01/2006

Michael

Se for apenas para formatar números em uma string, então Format resolve. ;-)

Esqueci de mencionar, mas vc pode usar tbm [b:675d15bbac]expressões regulares[/b:675d15bbac], e aí tratar a string do jeito q vc quiser. Não há uma maneira nativa de se fazer isso com o Delphi, mas existem componentes free para a tarefa. Se precisar usar, é só dizer que te indico um excelente.

Sobre o ClientDataSet, a unit não é [b:675d15bbac]MidasLib[/b:675d15bbac], ao invés de [b:675d15bbac]Midas[/b:675d15bbac]?

[]´s


Responder

25/01/2006

Titanius

Sobre o ClientDataSet, a unit não é [b:bb66f00b76]MidasLib[/b:bb66f00b76], ao invés de [b:bb66f00b76]Midas[/b:bb66f00b76]? []´s


Cara, era isso mesmo.. o estranho eh que não estava dando erro na compilação.. eh mole!?!

Obrigado,

[]s


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar