![]() |
Nicht erklärbare AV
Hallo!
Ich habe wiedereinmal ein Problem:
Delphi-Quellcode:
Angezeigt bekomme ich das hier:
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; Zitat:
Zitat:
Wenn an dieser Stelle eine AV kommt, hätte eigentlich noch nichts Ausgegeben werden dürfen... Wisst ihr warum das so ist??? gruß Teekeks |
Re: Nicht erklärbare AV
Delphi-Quellcode:
diese beiden Schleifen können dafür sorgen, daß x aus dem gültigen Bereich rausläuft
while TheLine[x+1] in ['a'..'z','A'..'Z'] do
while TheLine[x+1] in ['0'..'9'] do probier mal dieses (durch obrige Schleifen kann es passieren, daß genau der EINE austrittspunkt übersprungen wird)
Delphi-Quellcode:
und es könnte nix schaden, wenn du in oben genannte Schleifen auch noch eine Length-Abfrage mit reinmachst.
while x < Length(TheLine) do
|
Re: Nicht erklärbare AV
THX!
Jetzt geht es... Bei mir gehen nur die größer und kleiner als Tasten nicht( sch...limmer Laptop), deswegen wollte ich das mit = lösen ^^ Ich schein aber nicht drumrum zu kommen... gruß Teekeks |
Re: Nicht erklärbare AV
nimm dann doch einfach ein anderes Tastaturlayout ... da gibt's Welche, wo diese Zeichen auf anderen Tasten liegen :)
oder Copy&Paste :angel: Zitat:
|
Re: Nicht erklärbare AV
[spam]
Hier ein paar Operatoren: { <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< } { >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> } einfach per Copy&Paste in den Quelltext legen und bei Bedarf einzelnen Operator markieren und mit der Mouse an die richtige Stelle ziehen. Das ist nur ein Schnupper-Angebot, weitere Operatoren sind kostenpflichtig! [/spam] Mist, himitsu war schneller und hat meinem Spam-Post den Sinn genommen |
Re: Nicht erklärbare AV
@satty: Ich würde gerne ein All Inclusiv angebot nehmen....
Was kostet das?? |
Re: Nicht erklärbare AV
Bei mir nichtmal einen Euro ... nur 33ct pro Zeichen. :angel:
PS: Hier noch ein paar ||||||||||| (die sind ja meißt auch mit auf dieser Taste) Wie geagt, probier einfach mal z.B. das amerikanische Tastaturlayout (wenn du das deutsche drin hast, oder andersrum), mußt nur aufpassen, daß dann zusätzlich noch Y und Z vertauscht sind. Dann sind diese Zeichen da Rechts irgendwo, bei Komma und Co. |
Re: Nicht erklärbare AV
Zitat:
|
Re: Nicht erklärbare AV
Zitat:
|
Re: Nicht erklärbare AV
ok. aber zur Verteidigung ist noc zu sagen, dass dieses Verhalten nicht durch Delphi, sondern durch Windows veranlasst wird.
Edit: ausserdem hat der Nutzer in meinen Programmen eh nix zu sagen, ergo gibts auch keine Dialoge, meine Programme sind Monologe :mrgreen: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:09 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz