Autor Beitrag
Coder
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1383
Erhaltene Danke: 1

WinXP
D2005 PE
BeitragVerfasst: So 26.09.04 18:45 
Hi
ich hab eine while Schleife die ich aber eigentlich nur mit break beenden will. Gibt es da etwas oder muss ich mir eine sinnlose Variable erstellen?
.Chef
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1112



BeitragVerfasst: So 26.09.04 19:09 
Nein, das hier tuts auch:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
while True do
begin
  //...
end;


Gruß,
Jörg

_________________
Die Antworten auf die 5 häufigsten Fragen:
1. Copy(), Pos(), Length() --- 2. DoubleBuffered:=True; --- 3. Application.ProcessMessages bzw. TThread --- 4. ShellExecute() --- 5. Keine Vergleiche von Real-Typen mit "="!
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: So 26.09.04 19:14 
ausblenden Delphi-Quelltext
1:
While true do;					

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
Coder Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1383
Erhaltene Danke: 1

WinXP
D2005 PE
BeitragVerfasst: So 26.09.04 19:38 
cool, danke :D
[WOL]Azrael
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 51



BeitragVerfasst: Mi 29.09.04 09:18 
.Chef hat folgendes geschrieben:
Nein, das hier tuts auch:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
while True do
begin
  //...
end;


Gruß,
Jörg


Wie setzt man dann denn das True ggf. auf False?
dsa ist ja fast wie eine hübsche
ausblenden Delphi-Quelltext
1:
2:
repeat 
until false

Schleife
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6395
Erhaltene Danke: 149

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Mi 29.09.04 09:22 
Gar nicht. Schleife soll mit break beendet werden.
[WOL]Azrael
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 51



BeitragVerfasst: Mi 29.09.04 09:26 
jasocul hat folgendes geschrieben:
Gar nicht. Schleife soll mit break beendet werden.


Ein Break sollte in Delphi nicht eingesetzt werden. Die Daten bleiben auf dem Stack und so könnte es ggf. zu einem Überlauf kommen. Daher lieber eine zusätzliche Boolsche Variable basteln.
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6395
Erhaltene Danke: 149

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Mi 29.09.04 09:34 
Das war mir auch noch nicht bekannt. Danke für den Hinweis.
Ich wollte nur darauf hinweisen, wie Coder das geplant hat.
Hoffentlich liest er das auch.
Udontknow
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2596

Win7
D2006 WIN32, .NET (C#)
BeitragVerfasst: Mi 29.09.04 09:34 
Zitat:
Ein Break sollte in Delphi nicht eingesetzt werden. Die Daten bleiben auf dem Stack und so könnte es ggf. zu einem Überlauf kommen. Daher lieber eine zusätzliche Boolsche Variable basteln.

Ist mir völlig unbekannt und auch noch nie passiert trotz Einsatz von break. Woher hast du diese Info? Wieso überhaupt Stack?

Cu,
Udontknow
[WOL]Azrael
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 51



BeitragVerfasst: Mi 29.09.04 10:00 
Udontknow hat folgendes geschrieben:
Zitat:
Ein Break sollte in Delphi nicht eingesetzt werden. Die Daten bleiben auf dem Stack und so könnte es ggf. zu einem Überlauf kommen. Daher lieber eine zusätzliche Boolsche Variable basteln.

Ist mir völlig unbekannt und auch noch nie passiert trotz Einsatz von break. Woher hast du diese Info? Wieso überhaupt Stack?

Cu,
Udontknow



Dass es passiert ist auch relativ unwahrscheinlich, dennoch aber möglich. Ich hab das in einer Übung (studier Informatik in Wedel) auch mal eingesetzt und mein Prof. war wenig begeistert davon, was mir dann auch keine Bonusnote eingebracht hat :(.
Tja ich nehm mal an, dass in dem Assemblercode auf dem Stack zwischengespeichert wird.
.Chef
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1112



BeitragVerfasst: Mi 29.09.04 10:09 
Auf die Note ist gesch*****. :twisted:

Ich verwende Break auch regelmäßig und hatte noch nie irgebdwelche Sorgen damit. Beispiel: Ich habe ein Bytearray, dass mit beliebigen Zahlen gefüllt ist, und ich will die erste Stelle haben, die "123" enthält. Da gehts doch so am einfachsten:
ausblenden Delphi-Quelltext
1:
2:
for a:=0 to Length(Bytearray)-1 do
  if Bytearray[a] = 123 then Break;

_________________
Die Antworten auf die 5 häufigsten Fragen:
1. Copy(), Pos(), Length() --- 2. DoubleBuffered:=True; --- 3. Application.ProcessMessages bzw. TThread --- 4. ShellExecute() --- 5. Keine Vergleiche von Real-Typen mit "="!
[WOL]Azrael
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 51



BeitragVerfasst: Mi 29.09.04 10:12 
.Chef hat folgendes geschrieben:
Auf die Note ist gesch*****. :twisted:

Ich verwende Break auch regelmäßig und hatte noch nie irgebdwelche Sorgen damit. Beispiel: Ich habe ein Bytearray, dass mit beliebigen Zahlen gefüllt ist, und ich will die erste Stelle haben, die "123" enthält. Da gehts doch so am einfachsten:
ausblenden Delphi-Quelltext
1:
2:
for a:=0 to Length(Bytearray)-1 do
  if Bytearray[a] = 123 then Break;


Wie gesagt funktionieren tut es - fast immer. Und schlecht programmiert ist es auch. Das ist einer der Gründe, war die heutige Softwaresituation ist, wie sie ist. Naja schreibt wie ihr wollt, ich werds nicht tun.
Udontknow
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2596

Win7
D2006 WIN32, .NET (C#)
BeitragVerfasst: Mi 29.09.04 10:13 
Also, ich habe nun das BDN durchsucht und dort nichts gefunden, daher nehme ich mal stark an, daß dein Prof sich da wohl vertut. Kannst ihn ja nochmal drauf ansprechen, ob er vielleicht ein paar Quellen angeben kann, die so ein Verhalten belegen. (Profs stehen doch auf Quellenangaben! :wink: )

Edit: Was ist schlecht daran? Natürlich kann man das auch mit einer While-Klausel das erreichen.

Cu,
Udontknow
.Chef
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1112



BeitragVerfasst: Mi 29.09.04 10:21 
[WOL]Azrael hat folgendes geschrieben:
Wie gesagt funktionieren tut es - fast immer.

Ich warte auf den Screenshot, mit dem du mir zeigst, dass es nicht geht.

[WOL]Azrael hat folgendes geschrieben:
Und schlecht programmiert ist es auch.

Das nehm ich persönlich!

[WOL]Azrael hat folgendes geschrieben:
Das ist einer der Gründe, war die heutige Softwaresituation ist, wie sie ist.

Pass mal auf, Jugendfreund. Ich spreche Pascal wie meine zweite Muttersprache, habe schon Programme auf Rechnern geschrieben, die höchstens halbsoviel Leistung hatten wie dein Taschenrechner. Ich habe Programmieren in einer Zeit gelernt, als es noch drauf ankam, jede Zeile bis ins Kleinste zu optimieren. Und du willst mich für die heutige Situation verantwortlich machen? Ausgerechnet MICH?! Da lachen ja die Hühner ...

So, das musste mal gesagt werden.

_________________
Die Antworten auf die 5 häufigsten Fragen:
1. Copy(), Pos(), Length() --- 2. DoubleBuffered:=True; --- 3. Application.ProcessMessages bzw. TThread --- 4. ShellExecute() --- 5. Keine Vergleiche von Real-Typen mit "="!
Udontknow
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2596

Win7
D2006 WIN32, .NET (C#)
BeitragVerfasst: Mi 29.09.04 10:26 
Wenn das nun ein Ich-kann-besser-proggen-Thread wird, schliesse ich ihn. Bleibt doch einfach sachlich. :?

Also, warum ist die Verwendung von "break" schlecht(-er Stil)? Bezieht sich das auch auf das verwandte "exit"?

Cu,
Udontknow
.Chef
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1112



BeitragVerfasst: Mi 29.09.04 10:28 
Udontknow hat folgendes geschrieben:
Wenn das nun zu einem Ich-kann-besser-proggen-Thread wird, schliesse ich ihn. Bleibt doch einfach sachlich. :?

Tschuldigung, es überkam mich einfach. :oops:

_________________
Die Antworten auf die 5 häufigsten Fragen:
1. Copy(), Pos(), Length() --- 2. DoubleBuffered:=True; --- 3. Application.ProcessMessages bzw. TThread --- 4. ShellExecute() --- 5. Keine Vergleiche von Real-Typen mit "="!
[WOL]Azrael
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 51



BeitragVerfasst: Mi 29.09.04 10:36 
.Chef hat folgendes geschrieben:
Udontknow hat folgendes geschrieben:
Wenn das nun zu einem Ich-kann-besser-proggen-Thread wird, schliesse ich ihn. Bleibt doch einfach sachlich. :?

Tschuldigung, es überkam mich einfach. :oops:


Ich werds ignorieren.

Ahja mhm mit dem Exit weiss ich nicht. Am 8.10 geht das Semester wieder los, dann werd ich den Prof mal fragen und posten wie es damit ist.


Soweit mir bekannt ist der Fehler der bei dem Break auftreten "könnte" vergleichbar mit der Situation des (öhm) *glaub* "get()" aus C. Das liest solange ein, bis die Eingabe Taste gedrückt wurde. Funktioniert in 99% aller fälle wunderbar, es sei denn es werden soviele Ziechen eingegeben, dass der Stack überlauft. Und das könnten sich "hacker" zunutze machen um ihren eigenen Quellcode im Speicher abzulegen (der Aspekt der schlechten Softwaresituation).
Das war kein persönlicher Angriff!


Zuletzt bearbeitet von [WOL]Azrael am Mi 29.09.04 10:43, insgesamt 2-mal bearbeitet
.Chef
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1112



BeitragVerfasst: Mi 29.09.04 10:41 
[WOL]Azrael hat folgendes geschrieben:
Ich werds ignorieren.

Die Tatsache, dass ich es hätte weniger emotional audrücken können, bedeutet keine Einschränkung der Gültigkeit.

Udontknow hat folgendes geschrieben:
Also, warum ist die Verwendung von "break" schlecht(-er Stil)? Bezieht sich das auch auf das verwandte "exit"?

Das wäre noch zu klären: Wie gut oder schlecht ist (das von mir wesentlich weniger gebrauchte) Exit?

_________________
Die Antworten auf die 5 häufigsten Fragen:
1. Copy(), Pos(), Length() --- 2. DoubleBuffered:=True; --- 3. Application.ProcessMessages bzw. TThread --- 4. ShellExecute() --- 5. Keine Vergleiche von Real-Typen mit "="!
[WOL]Azrael
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 51



BeitragVerfasst: Mi 29.09.04 10:43 
siehe oben ;)
Udontknow
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2596

Win7
D2006 WIN32, .NET (C#)
BeitragVerfasst: Mi 29.09.04 10:47 
Hmmm... Also, es klingt so, als würdest du da einiges durcheinander werfen. Meinst du vielleicht einen "Buffer Overflow"? Das ist die typische Angriffsfläche, hat aber mit einem Stack-Overflow nicht viel gemein. Und was das nun mit dem Break-Kommando zu tun hat, verschliesst sich mir.

Sprich am besten noch mal mit dem Prof drüber, dann sehen wir ja weiter. :o

Cu,
Udontknow