Array
(
)

Formatar String, tem como?

Titanius
   - 25 jan 2006

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:
#Código


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


Aasn
   - 25 jan 2006

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:

#Código

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

ex:

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



[]´s
AASN


Titanius
   - 25 jan 2006


Citação:
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:

#Código

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.


Michael
   - 25 jan 2006

Olá!

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

#Código

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 dd significa os 2 primeiros digitos (e se tivesse só 1?), e mm o 3º e o 4º e assim por diante?.

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

Colega AASN, a procedure FmtStr faz a mesma coisa que Format, 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


Titanius
   - 25 jan 2006

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


Michael
   - 25 jan 2006

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

Esqueci de mencionar, mas vc pode usar tbm expressões regulares, 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 é MidasLib, ao invés de Midas?

[]´s


Titanius
   - 25 jan 2006


Citação:

Sobre o ClientDataSet, a unit não é MidasLib, ao invés de Midas?

[]´s


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

Obrigado,

[]s