AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Nicht erklärbare AV

Ein Thema von Teekeks · begonnen am 24. Jun 2009 · letzter Beitrag vom 25. Jun 2009
 
Teekeks

Registriert seit: 19. Okt 2008
Ort: Dresden
765 Beiträge
 
FreePascal / Lazarus
 
#1

Nicht erklärbare AV

  Alt 24. Jun 2009, 11:19
Hallo!
Ich habe wiedereinmal ein Problem:
Delphi-Quellcode:
procedure Scan(TheLine:string);
var x:integer;
begin
  SetLength(Tokens,0);
  X:=1;
  while not (x=Length(TheLine)-1) do
  begin
    if TheLine[x] in ['+','-','*','/','(',')'] then
    begin
      SetLength(Tokens,Length(Tokens)+1);
      Tokens[High(Tokens)]:=TheLine[x];
    end else
    if TheLine[x] in ['a'..'z','A'..'Z'] then// Hier wird eine External AV ausgelößt...
    begin
      SetLength(Tokens,Length(Tokens)+1);
      Tokens[High(Tokens)]:=Tokens[High(Tokens)]+TheLine[x];
      while TheLine[x+1] in ['a'..'z','A'..'Z'] do
      begin
        Inc(X);
        Tokens[High(Tokens)]:=Tokens[High(Tokens)]+TheLine[x];
      end;
    end else
    if TheLine[x] in ['0'..'9'] then
    begin
      SetLength(Tokens,Length(Tokens)+1);
      Tokens[High(Tokens)]:=Tokens[High(Tokens)]+TheLine[x];
      while TheLine[x+1] in ['0'..'9'] do
      begin
        Inc(X);
        Tokens[High(Tokens)]:=Tokens[High(Tokens)]+TheLine[x];
      end;
    end;
    Inc(X);
  end;
end;

// Hier wird "Tokens" ausgegeben:
procedure DoOutputTokens;
var x:integer;
begin
  WriteLn('*******************');
  WriteLn('NextLine:');
  for x:=0 to High(Tokens) do
    WriteLn('Token: '+Tokens[x]);
end;

// Aufgerufen wird so:
  while not EOF(Datei) do
  begin
    ReadLn(Datei,ActLine);
    Scan(ActLine);
    DoOutPutTokens;
  end;
Angezeigt bekomme ich das hier:
Zitat:
******************
NextLine:
Token: Hallo
Token: 712
Token: +
Die Zu behandelnde Datei siet so aus:
Zitat:
Hallo=712+sd
n+od +df
Ich verstehe nicht was ich falsch gemacht habe...
Wenn an dieser Stelle eine AV kommt, hätte eigentlich noch nichts Ausgegeben werden dürfen...

Wisst ihr warum das so ist???

gruß Teekeks
Peter
"Div by zero Error" oder auch: "Es geht auch ohne Signatur!".
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:01 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz