GARANTIR DESCONTO

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é!


Delphi32

Delphi32

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.
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

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

Aceitar