Fórum Fazendo um Parser em uma String #274343
28/03/2005
0
Olá pessoal!
Estou com o seguinte problema:
Tenho que receber no código do Delphi uma expressão em String como por exemplo: ´(14350.75*90)/100´. Eu tenho que poder pegar separadamente cada um dos elementos dessa expressão, ou melhor:
14350.75
90
100
E teria que ser de uma forma que a fórmula que o usuário passasse pudesse ter infinitos elementos...
Até!
Estou com o seguinte problema:
Tenho que receber no código do Delphi uma expressão em String como por exemplo: ´(14350.75*90)/100´. Eu tenho que poder pegar separadamente cada um dos elementos dessa expressão, ou melhor:
14350.75
90
100
E teria que ser de uma forma que a fórmula que o usuário passasse pudesse ter infinitos elementos...
Até!
Delphi32
Curtir tópico
+ 0
Responder
Posts
28/03/2005
Beppe
Se vc quer apenas separar os elementos então vc precisa de um [i:59740156cf]lexer[/i:59740156cf]. O Delphi inclui um(para arquivos *.dfm, mas pode reaproveitá-lo), que erroneamente é chamado de TParser.
Nota: eu não liberei a string que eu criei.
with TParser.Create(TStringStream.Create(´(14350.75*90)/100´)) do try while Token <> toEof do begin Memo1.Lines.Add(TokenString); case Token of toSymbol: ; // + * / - ( ) etc toString: ; // "string" toInteger: ; // 123 toFloat: ; // 123.45 end; NextToken; end; finally Free; end;
Nota: eu não liberei a string que eu criei.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)