AGB  ·  Datenschutz  ·  Impressum  







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

Sinnvoller Einsatz von goto

Ein Thema von Luckie · begonnen am 20. Mär 2010 · letzter Beitrag vom 22. Mär 2010
Antwort Antwort
Seite 5 von 5   « Erste     345   
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#41

Re: Sinnvoller Einsatz von goto

  Alt 22. Mär 2010, 18:29
Zitat von shmia:
Noch etwas Öl oder Code für's Feuer.
Also ich habe bei dieser Funktion noch keinen Weg gefunden, es ohne Goto elegant zu formulieren.
repeat-until?
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
Tyrael Y.

Registriert seit: 28. Jul 2003
Ort: Stuttgart
1.093 Beiträge
 
Delphi 2007 Professional
 
#42

Re: Sinnvoller Einsatz von goto

  Alt 22. Mär 2010, 18:37
Zitat von himitsu:
Zitat von Tyrael Y.:
Wenn es um die Lesbarkeit geht ist folgende Variante,
Wenn ich mich nicht irre, sollte der Compiler hier etwas vonwegen "Result könnte undefiniert sein" von sich geben.
Hast Recht himitsu, denk dir einfach ein try finally drumherum

Zitat von Tyrael Y.:

Delphi-Quellcode:
function DemoThread(const AParentHandle : THandle): Integer;
var
  i: Integer;
begin
  try
    for i := 0 to 9 do
    begin
       ...
    end;

    if not Abort then
    begin
      SendFinished(AParentHandle);
    end;
  finally
    Result := 0;
  end;
end;
Levent Yildirim
Erzeugung von Icons aus Bildern:IconLev
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#43

Re: Sinnvoller Einsatz von goto

  Alt 22. Mär 2010, 18:41
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;
begin
  Result := false;
  repeat
    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
         idIgnore: Exit;
         // idRetry: // noch ne Runde;
       end;
    end else Result := True; // Datei vorhanden und nicht leer
  until Result = true;
end;
@Roter Kasten fehlt: Oh, war jmd. schneller
Intellekt ist das Verstehen von Wissen. Verstehen ist der wahre Pfad zu Einsicht. Einsicht ist der Schlüssel zu allem.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#44

Re: Sinnvoller Einsatz von goto

  Alt 22. Mär 2010, 18:43
Delphi-Quellcode:
function CheckImportFile(const fname: TFilename; const Caption:string): Boolean;
var
  msg: string;
begin
  Result := True; // Datei vorhanden und nicht leer
  repeat
    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
      Break;
    case MessageBox(0, PChar(msg), PChar(Caption),
        MB_ICONWARNING or MB_ABORTRETRYIGNORE or MB_SETFOREGROUND) of
      idAbort: Abort; // stille Exception
      idRetry: {Continue};
      idIgnore: Result := False; // Datei vorhanden oder leer; der Benutzer möchte die Datei ignorieren
    end;
  until not Result;
end;
es geht aber auch ein while Result do begin ... end;

@BUG: =true ist böse ... sowas macht man einfach nicht. (Gründe stehen zu Genüge im Forum)
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#45

Re: Sinnvoller Einsatz von goto

  Alt 22. Mär 2010, 18:58
Zitat von himitsu:
@BUG: =true ist böse ... sowas macht man einfach nicht. (Gründe stehen zu Genüge im Forum)
Aua, ja weiß ich, war wohl etwas geschludert
Trotzdem Danke für den Hinweis.

EDIT:
Aber müsste das nicht until result; heißen, im Moment bleibst du in der Schleife bis result unwahr ist.
Intellekt ist das Verstehen von Wissen. Verstehen ist der wahre Pfad zu Einsicht. Einsicht ist der Schlüssel zu allem.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#46

Re: Sinnvoller Einsatz von goto

  Alt 22. Mär 2010, 20:20
Zitat von BUG:
Aber müsste das nicht until result; heißen, im Moment bleibst du in der Schleife bis result unwahr ist.
Nee nee, ist schon OK so ... in unseren beiden Codes wird das Result innerhalb der Schleife andersrum behandelt.
$2B or not $2B
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 5 von 5   « Erste     345   


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 16:06 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