Palavras reservadas

30/04/2003

0

Qual o jeito mais facil de se implementar palavras reservadas?
Tipo,tenho uma lista(300) palavras de tamanho entre 2 e 11 caracteres
que vão ser digitadas no edit(uma a uma) e preciso que se verifique se é uma palavra de minha lista(+ ou - igual ao que o Delphi faz quando digitamos um código).Ex,eu teria a palavra CODIGO e LETRA reservada
se fosse digitado CODIGOLETRA o programa não aceitaria.


Kroki

Kroki

Responder

Posts

30/04/2003

Rebel_inside

hmm.. se eu entendi direito, você pode fazer o seguinte:

procedure TForm1.Button1Click(Sender: TObject);
var
  l: TStringList;
  i: Integer;
  ok: Boolean;
begin
  l:= TStringList.Create;
  // Carregue aqui a lista das suas palavras
  // ex: l.LoadFromFile(´reservedwords.txt´);
  ok:= True;
  try
    for i:= 0 to l.Count-1 do begin
      if (pos(AnsiUpperCase(l[i]), AnsiUpperCase(Edit1.Text))>0) then begin
        ok:= False;
        Break;
      end;
    end;
    if (ok) then begin
      // Não encontrou nenhuma palavra, então faz o que tem que ser feito
    end else begin
      ShowMessage(´Contém palavra inválida!´);
    end;
  finally
    FreeAndNil(l);
  end;
end;



Responder

30/04/2003

Kroki

Eu tinha feito algo parecido,mas ocorre o mesmo problema.
Veja,fiz um teste com seu código,criei um TXT com duas palavras;
ld
lddr
Quando digito ´ld´ o codigo acha a palavra,o mesmo acontece com lddr,
mas se eu digitar´lddrxyx´ele tambem reconhece a palavra e isso nao pode acontecer,queria algo como o Delphi faz quando vc ta digitando ´string´e ele deixa em negriro(reconhece) mas se vc digitar ´stringx´ele nao reconhece.
OBS:minhas palavras nao tem tamanho definido,o menor é 2 digitos e o maior 11.


Responder

30/04/2003

Aroldo Zanela

Kroki,

Eu já dei essa dica anteriormente, mas acho que foi mal interpretada por outro colega e acabou lhe desistimulando. Mas vamos lá novamente, existe um conjunto de componentes freeware (Open-Souce) denominado de SynEdit. Ela faz exatamente isso e já tem analizadores léxico e sintático para diversas linguagens, como: SQL, ObjectPascal, Java, 68HC11 Assembler e mais de uma dezena de outras.
Dá uma olhada aqui: http://synedit.sourceforge.net/


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