AGB  ·  Datenschutz  ·  Impressum  







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

Probleme bei if - then ...

Ein Thema von Peter-Pascal · begonnen am 28. Mär 2010 · letzter Beitrag vom 28. Mär 2010
Antwort Antwort
Peter-Pascal

Registriert seit: 18. Feb 2007
Ort: 32139 Spenge
197 Beiträge
 
Delphi 11 Alexandria
 
#1

Probleme bei if - then ...

  Alt 28. Mär 2010, 21:19
Hallo,

vielleicht ist es auch etwas spät und ich sehe den Wald vor lauter Bäumen nicht, aber ...

folgender Code: (es geht um die fett geschriebene Zeile)
Delphi-Quellcode:
type
TAbschlussRecord = record
    KontoNr : integer;
    Soll, Haben : currency;
  end;

  TAbschlussArray = array of TAbschlussRecord;

a ist vom Typ TAbschlussRecord

//kein Konto vorhanden, freien Eintrag suchen
  if frei = -1 then
    for I := 0 to length(a) - 1 do
      if a[i].KontoNr = 0 then //Diese Bedingung wird wahr ...
      begin
        frei := I;
        exit;
      end;
Die Bedingung ist wahr, nur statt die Folgeanweisung abzuarbeiten, springt Delphi an das Ende der Routine. Die zwei Anweisungen frei := i; und exit; macht delphi nicht.
Seht ihr irgendwo einen Syntaxfehler? Ohne begin und end arbeiteit Delphi die Anweisung sauber ab.

Gruß
Peter

[edit=Luckie]Delphi-Tags gesetzt. Beim nächsten mal bitte selber setzen. Mfg, Luckie[/edit]
Peter Niemeier
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Probleme bei if - then ...

  Alt 28. Mär 2010, 21:22
Wenn er an das Ende der Routine springt wird es vielleicht doch ausgeführt. Ich denke es hat eher damit zu tun das der Compiler etwas weg optimiert. Schalte am besten mal die Optimierung aus und baue das Projekt neu.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#3

Re: Probleme bei if - then ...

  Alt 28. Mär 2010, 21:22
Wahrscheinlich steht der Code in einer Prozedur/Funktion.

Da am ende exit kommt, ist die Zuweisung
frei := I; total irrelevant und wird wegoptimiert. Das Exit ist sowiso ein Sprung zum Prozedurende.

Zum Debuggen also einfach mal die Optimierung abschalten oder Code schreiben, der was bewirkt (wird dann auch nicht wegoptimiert )
  Mit Zitat antworten Zitat
Peter-Pascal

Registriert seit: 18. Feb 2007
Ort: 32139 Spenge
197 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: Probleme bei if - then ...

  Alt 28. Mär 2010, 21:32
hmmm, vielen Dank bisher,

wie schalte ich die Optimierung aus?

wieso macht Delphi das überhaupt weg? In der Tat beim Debuggen führt er den Teil nicht aus.
Peter Niemeier
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#5

Re: Probleme bei if - then ...

  Alt 28. Mär 2010, 21:35
Zitat von Peter-Pascal:
wie schalte ich die Optimierung aus?
http://www.google.de/search?q=delphi...ng+ausschalten
Zitat:
wieso macht Delphi das überhaupt weg? In der Tat beim Debuggen führt er den Teil nicht aus.
Haben wir dir doch gesagt - weil der Code unnütz ist, und nichts bewirkt - und die optimierung ist eben genau dafür da, unnützen Ballast zu entfernen.
  Mit Zitat antworten Zitat
Peter-Pascal

Registriert seit: 18. Feb 2007
Ort: 32139 Spenge
197 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Probleme bei if - then ...

  Alt 28. Mär 2010, 21:37
ich habe es begriffen, es gibt Tage da sollte man nicht an den PC ...

Ich wollte nicht exit schreiben, sondern break, es sollte nur die Schleife abgebrochen werden. So funktioniert es.

Und jetzt leuchtet mir ein, warum Delphi das wegoptimiert, wenn der Compiler exit findet.

Nichtdestotrotz, wie schalte ich die Optimierung aus?

Vielen Dank nochmals
Gruß
Peter
Peter Niemeier
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Probleme bei if - then ...

  Alt 28. Mär 2010, 21:40
Zitat von Peter-Pascal:
Nichtdestotrotz, wie schalte ich die Optimierung aus?
Hast du den Beitrag von jheins gelesen?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von SimonRap
SimonRap

Registriert seit: 17. Okt 2009
Ort: Mahlow
147 Beiträge
 
Delphi 6 Personal
 
#8

Re: Probleme bei if - then ...

  Alt 28. Mär 2010, 21:44
würde das nich ir wie so {O+-} gehen?
Simon
  Mit Zitat antworten Zitat
Peter-Pascal

Registriert seit: 18. Feb 2007
Ort: 32139 Spenge
197 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Probleme bei if - then ...

  Alt 28. Mär 2010, 21:49
Danke Lucki, den Beitrag habe ich gelesen.

Die Beiträge haben sich überschnitten.

Ich bekomme das mit dem schönen eingerücktem Quellcode nicht hin... übe die ganze Zeit, will einfach nicht klappen
Peter Niemeier
  Mit Zitat antworten Zitat
Peter-Pascal

Registriert seit: 18. Feb 2007
Ort: 32139 Spenge
197 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: Probleme bei if - then ...

  Alt 28. Mär 2010, 21:53
.. auch das hat jetzt geklappt, doch ein versöhnlicher abend. Man muß den Code markieren und auf Quellcode drücken
Peter Niemeier
  Mit Zitat antworten Zitat
Antwort Antwort


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 04:56 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