![]() |
Re: Sinnvoller Einsatz von goto
Zitat:
Dort gibt es oftmals entsprechende Vorgaben, damit der Code innerhalb der Firma "gleich" aussieht und damit natürlich auch alle den Code dann besser verstehen können. > also meist existiert da ein entsprechender Style-Guide |
Re: Sinnvoller Einsatz von goto
Vor allem ist "Auftraggeber" nicht unbedingt gleich "Arbeitgeber"!
Dem Auftraggeber kann der Code und die verwendete Programmiersprache egal sein. Dem Arbeitgeber aber noch lange nicht! |
Re: Sinnvoller Einsatz von goto
Zitat:
Zitat:
Zitat:
|
Re: Sinnvoller Einsatz von goto
Äh, merkt denn hier keiner, dass über den Schnee von vor 40 Jahren diskutiert wird ? :shock: Alle Jahre wieder oder was ? :zwinker: Ich vermute mal, dass das Goto lediglich im Ur-Pascal vorhanden war, damit Umsteiger von Basic nicht direkt an neueren Schleifen etc. scheitern. That's it. Exit gabs übrigens schon vor BP 7. Hatte das auch gern eingesetzt. Irgendwann hatte ich dann aber gemerkt, dass es mehr ärgerliche Quereffekte verursacht, als es wert ist. Was heisst nun sinnvoll ? IMHO, auf diesen uralten goto-Firlefanz grundsätzlich zu verzichten. 8-) Warum soll man etwas mit goto machen, nur weil es auch gehen würde ? Vorteile hat es jedenfalls keine. Ausser, sich darüber zu streiten, was nun lesbarer ist ? Wenn mir ein Beispiel-Quelltext auf den Tisch käme, der mehr als 0 gotos beinhaltet, dann womöglich direkt -> Tonne. :mrgreen:
|
Re: Sinnvoller Einsatz von goto
Zitat:
Daher ist eben für mich dieses "Programmieren nach Vorschrift" irrelevant ;) |
Re: Sinnvoller Einsatz von goto
Auch wenn es langsam offtopic wird, aber nur damit ich das richtig verstehe. Du schreibst jedes Jahr das komplette Programm neu, wenn der Kunde etwas geändert oder erweitert haben will? Kannst du mir mal bitte sagen, was das soll und warum du das machst?
|
Re: Sinnvoller Einsatz von goto
Zitat:
Und dass ein Kunde (das wäre in diesem Fall z.B. ein MediaMarkt-Kunde, der das Teil für 9,99 gekauft hat) etwas geändert haben wollte, ist noch nie vorgekommen. Wäre ja auch irgendwie absurd *g* Zumal die Programme unter dem Namen unseres Auftraggebers erscheinen und unsere Firma da eigentlich unerwähnt ist. |
Re: Sinnvoller Einsatz von goto
Wenn es um die Lesbarkeit geht ist folgende Variante, angelehnt ans Cristian Seehase´s Version noch lesbarer.
Delphi-Quellcode:
Jeder soll programmieren wie er selber meint den Code am Besten lesen zu können, denn in 80% der Fälle wird der Verfasser auch den Code lesen.
function DemoThread(const AParentHandle : THandle): Integer;
var i: Integer; begin for i := 0 to 9 do begin if Abort then begin SendAbort(AParentHandle ); break; end else begin SendStatus(AParentHandle, i); Sleep(500); end; end; if not Abort then begin SendFinished(AParentHandle); Result := 0; end; end; procedure SendAbort(const AParentHandle : THandle); begin SendMessage(AParentHandle, CM_ABORT, 0 , 0); end; procedure SendStatus(const AParentHandle : THandle; index: Integer); begin SendMessage(AParentHandle, CM_STATUS, Integer(PChar('Durchlauf:')), index); end; procedure SendFinished(const AParentHandle : THandle); begin SendMessage(AParentHandle, CM_FINISHED, 0, 0); end; |
Re: Sinnvoller Einsatz von goto
Zitat:
|
Re: Sinnvoller Einsatz von goto
Noch etwas Öl oder Code für's Feuer. :stupid:
Also ich habe bei dieser Funktion noch keinen Weg gefunden, es ohne Goto elegant zu formulieren.
Delphi-Quellcode:
// Prüft, ob eine Datei für den Import vorhanden ist.
// Falls nicht, kann der Benutzer entscheiden, was passieren soll function CheckImportFile(const fname: TFilename; const Caption:string): Boolean; var msg: string; label again; begin again: if not FileExists(fname) then msg := Format('Datei <%s> ist nicht vorhanden', [fname]) else if FileGetSize(fname) = 0 then msg := Format('Datei <%s> ist leer', [fname]) else msg := ''; if msg <> '' then begin case MessageBox(0, PChar(msg), PChar(Caption), MB_ICONWARNING or MB_ABORTRETRYIGNORE or MB_SETFOREGROUND) of idAbort: Abort; // stille Exception idRetry: goto again; idIgnore: begin Result := False; // Datei vorhanden oder leer; der Benutzer möchte die Datei ignorieren Exit; end; end; end; Result := True; // Datei vorhanden und nicht leer end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:30 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