AGB  ·  Datenschutz  ·  Impressum  







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

Sinnvoller Einsatz von goto

Ein Thema von Luckie · begonnen am 19. Mär 2010 · letzter Beitrag vom 22. Mär 2010
Antwort Antwort
Seite 2 von 5     12 34     Letzte »    
samso

Registriert seit: 29. Mär 2009
439 Beiträge
 
#11

Re: Sinnvoller Einsatz von goto

  Alt 20. Mär 2010, 07:24
N.B. Und vielleicht auch noch die 64-Bit-Version vorbereiten:

Delphi-Quellcode:
{$IF (CompilerVersion<20.00)}
Type
  NativeInt = type Integer; //Delphi2007: SizeOf(NativeInt)<>4(!)
{$IFEND}
...
SendMessage(ParentHandle, CM_STATUS, NativeInt(PChar('Durchlauf:')), i);
...
Mist - zereditiert
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

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

Re: Sinnvoller Einsatz von goto

  Alt 20. Mär 2010, 07:29
Zitat von samso:
N.B. Und vielleicht auch noch die 64-Bit-Version vorbereiten:

Integer bleibt 32 bittig, wenn ich richtig informiert bin ....
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#13

Re: Sinnvoller Einsatz von goto

  Alt 20. Mär 2010, 07:31
Das hat dann aber nicht mehr soooo viel mit GOTO zu tun, dem Thema des Threads.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
samso

Registriert seit: 29. Mär 2009
439 Beiträge
 
#14

Re: Sinnvoller Einsatz von goto

  Alt 20. Mär 2010, 07:45
Zitat:
Integer bleibt 32 bittig, wenn ich richtig informiert bin ....
Darum ja, denn PChar wird 64-Bit.
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#15

Re: Sinnvoller Einsatz von goto

  Alt 20. Mär 2010, 08:34
Zitat von samso:
Zitat:
Integer bleibt 32 bittig, wenn ich richtig informiert bin ....
Darum ja, denn PChar wird 64-Bit.
Zitat von alzaimar:
Das hat dann aber nicht mehr soooo viel mit GOTO zu tun, dem Thema des Threads.
*Tap* *Tap* *Tap*
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Sinnvoller Einsatz von goto

  Alt 21. Mär 2010, 22:45
Delphi-Quellcode:
function DemoThread(p: Pointer): Integer;
var
  i: Integer;
  ParentHandle: THandle;
begin
  ParentHandle := PThreadParams(p)^.ParentHandle;
  for i := 0 to 9 do
  begin
    if Abort then
    begin
      SendMessage(ParentHandle, CM_ABORT, 0 , 0);
      Break;
    end;
    SendMessage(ParentHandle, CM_STATUS, Integer(PChar('Durchlauf:')), i);
    Sleep(500);
    if i = 9 then SendMessage(ParentHandle, CM_FINISHED, 0, 0);
  end;
  Dispose(p);
  Result := 0;
end;

Delphi-Quellcode:
function DemoThread(p: Pointer): Integer;
var
  i: Integer;
  ParentHandle: THandle;
begin
  ParentHandle := PThreadParams(p)^.ParentHandle;
  i := 0
  while (i <= 9) and not Abort do
  begin
    SendMessage(ParentHandle, CM_STATUS, LPARAM(PChar('Durchlauf:')), i);
    Sleep(500);
    Inc(i);
  end;
  if i > 9 then
    SendMessage(ParentHandle, CM_FINISHED, 0, 0)
  else SendMessage(ParentHandle, CM_ABORT, 0 , 0);
  Dispose(p);
  Result := 0;
end;
Wobei bei Sowas das Try-Finally, bezüglich des der Speicherfeigabe, sowieso in irgendeiner Weise zu bevorzugen ist.
Delphi-Quellcode:
function DemoThread(p: Pointer): Integer;
var
  i: Integer;
  ParentHandle: THandle;
begin
  try
    ParentHandle := PThreadParams(p)^.ParentHandle;
    i := 0
    while (i <= 9) and not Abort do
    begin
      SendMessage(ParentHandle, CM_STATUS, LPARAM(PChar('Durchlauf:')), i);
      Sleep(500);
      Inc(i);
    end;
    if i > 9 then
      SendMessage(ParentHandle, CM_FINISHED, 0, 0)
    else SendMessage(ParentHandle, CM_ABORT, 0 , 0);
  finally
    Dispose(p);
  end;
  Result := 0;
end;
Abgesehn davon ist der Quatsch mit dem 32-Bit-Integer in 64 Bt hier egal, denn selbst wenn man hier den Pointer ordnungsgemäß in einen 64-Bit-Intreger (in einem 64-Bit-Compiler) umwandelt, dann muß man eh erstmal abgleichen ob dort SendMessage auch 64-Bit-Parameter hat ... also denke ich mal, daß man dort auch gleich den Typen des Parameters nutzen kann.

Und ja, ich finde auch, daß es an einigen Stellen einfach einfacher mit GOTO lösbar ist.
PS: ein Break, While, For, Case und vieles Anderes besteht intern quasi auch nur ein ein paar IFs+GOTO.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#17

Re: Sinnvoller Einsatz von goto

  Alt 21. Mär 2010, 23:03
Zitat von himitsu:
Und ja, ich finde auch, daß es an einigen Stellen einfach einfacher mit GOTO lösbar ist.
nicht wirklich, aber wenn du meinst.

Zitat von himitsu:
PS: ein Break, While, For, Case und vieles Anderes besteht intern quasi auch nur ein ein paar IFs+GOTO.
Ja ne, is klar. Wo war nochmal der Unterschied zwischen Hochsprache und Assembler? Ach ja, in einer Hochsprache kann man strukturiert programmieren. GOTO gehört nicht zu den strukturierten Befehlen (Disskussion wie immer, daran ändert sich auch niemals etwas). Nur weil ein Befehl aus historischen Gründen noch existiert, muss man nicht unbedingt auf krampf ein Beispiel konstruieren, damit man auch diesen endlich mal benutzen kann. Das ist einfach unglaublich wie dieses Thema immer wieder hochkocht. Einfach faszinierend und echt traurig.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Sinnvoller Einsatz von goto

  Alt 21. Mär 2010, 23:16
http://www.delphipraxis.net/internal...062424#1062424
Tut mir ja Leid, aber ohne Goto hätte ich dort so Einiges an doppeltem Code und/oder die eine oder andere Stelle hätte etwas umständlicher gelößt werden müssen.

Und nein, bis auf wenige Stellen nutze ich auch sehr selten ein Goto, also ich kann nicht behaupten, daß ich dieses auf Krampf versuche immer zu verwenden ... wie man oben sieht, geht es auch ja auch oftmals anders/ohne.

Aber bei Rücksprüngen oder beim Rumspringen in mehreren verschachtelten Schleifen ist es schon hier oder da auch mal recht gut zu gebrauchen.

Und wozu soll man etwas Vorhandenes und vorallem Funktionierendes nicht verwenden, wenn es damit "einfacher" geht?

Wenn man weiß, was man macht, dann erzeugt ein Goto auch keinen gefährlichen Code.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
omata

Registriert seit: 26. Aug 2004
Ort: Nebel auf Amrum
3.154 Beiträge
 
Delphi 7 Enterprise
 
#19

Re: Sinnvoller Einsatz von goto

  Alt 21. Mär 2010, 23:20
Da reichen vier Buchstaben: Nein
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#20

Re: Sinnvoller Einsatz von goto

  Alt 22. Mär 2010, 01:24
Zitat von omata:
Da reichen vier Buchstaben: Nein


Ich bin auch äußerst verwundert über diesen Thread. Gerade von Luckie hätte ich das nicht erwartet

Sinnvoller Einsatz von goto ... ist nicht möglich.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 5     12 34     Letzte »    


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 20:45 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