![]() |
Re: For-Schleife Rückwärts?
Hallo
@TeronG wie kommst du darauf, das es in "seltenen" Fällen was ausmacht, in der Praxis aber nicht. ich find die aussage breiig! Bastel doch mal was um deine Aussage zu unterstützen! mfg DerDan |
Re: For-Schleife Rückwärts?
Zitat:
In MEINEM bescheidenen Progger-alltag war das noch nie n Problem (so weit ich weis ^^) und zur unterstützung meiner Meinung hatte ich ja "Nuclear-Ping" zitiert (vlt. 10 Jahre ohne Probleme). |
Re: For-Schleife Rückwärts?
Ich bin nun seit Delphi 1 dabei - mit wechselnder Intensität - und mir ist das auch noch nie unangenehm aufgefallen. Normalerweise schalte ich die Optimierung nur für die "Finale" Compilierung ein, weil mir die ständig nicht mehr vorhandenen Variablen sonst das Leben schwer machen. Nur gestern hatte ich eine "optimierte" Anwendung "mal schnell" noch an einer Stelle überarbeiten wollen. Der Aufruf von FastReport.LoadFile gab jedes 7. Mal ein "Invalid File Format" - egal, welcher Report der siebte war. Nach dem Hinweis darauf, dass in Wirklichkeit "Report[11-i]" aufgerufen wurde statt "Report[i]", war sonnenklar, welcher Report der "böse" war. Nochmals also sehr herzlichen Dank für den Tipp!
Aber wie gesagt - das ist gestern das erste mal gewesen, dass ich darüber gestolpert bin. Gruß Mark |
Re: For-Schleife Rückwärts?
Hallo und sorry das ich diesen alten Thread auskrame.
Ich stolper zum 2. mal über diese "Optimierung" und zum 2. mal muss ich die For-Schleife aus dem Programmcode nehmen, da sonst ein komplettes Fehlverhalten auftritt. Ich habe folgenden Code:
Delphi-Quellcode:
for i := low(AZiffer) to high(AZiffer)-1 do begin //Prüfungen der Ziffern... if AZiffer[i,0] = '5.' then begin // Hier springt er JEDESMAL in dn den IF Block wenn Aziffer[i,0] = '0.1' und das ist FALSCH // wenn er bei 5. angelangt ist springt er über die Bedingung und sagt False. // Ergo ein komplettes Fehlverhalten. //Hier wird ein Stringzusammen gebastelt. end; end; edit: zu früh gepostet... verdammtes Tab ;) |
Re: For-Schleife Rückwärts?
Delphi-Quellcode:
Sollte die Schleife nicht bis High(AZiffer) laufen.
for i := low(AZiffer) to high(AZiffer)-1 do begin
//Prüfungen der Ziffern... Da High ja den letzen Index des Array repräsentiert. Grüße Klaus |
Re: For-Schleife Rückwärts?
nd du solltest Fließkommawerte mie auf Göleichheit prüfen.
|
Re: For-Schleife Rückwärts?
Das sind doch Strings die ich vergleiche.
Zu dem High: Das -1 ist an der Stelle schon ok. |
Re: For-Schleife Rückwärts?
Ich kann dieses Verhalten (BDS2006 Pro) nicht nachvollziehn.
Du musst aber nicht zwingend auf die For-Schleife verzichten. Per Compilerdirektiven {O+-} kannst du die Optimierung für bestimmte Codeblöcke ausschalten. greetz Mike |
Re: For-Schleife Rückwärts?
Ok damit geht es.
Danke... Der Tag fängt echt super an x) :wall: |
Re: For-Schleife Rückwärts?
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:08 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