AGB  ·  Datenschutz  ·  Impressum  







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

Endlosschleife

Ein Thema von Pseudemys Nelsoni · begonnen am 24. Sep 2004 · letzter Beitrag vom 24. Sep 2004
Antwort Antwort
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#1

Endlosschleife

  Alt 24. Sep 2004, 20:16
Delphi-Quellcode:
  if Halter^.text = Text then
  begin
    // wenn das zu löschende item am anfang(Halter) ist
    i := Halter^.next;
    Dispose(Halter);
    Halter := i;
  end
  else
  begin
    // wenn das zu löschende item in der mitte oder am ende ist
    i := Halter;
    while (i^.next <> nil) do
    begin
      if i^.next^.text = Text then
      begin
        p := i^.next^.next;
        Dispose(i^.next);
        i^.next := p;
      end;
    end;
  end;


kann mir jemand sagen was hier falsch ist? Der erste teil funktionier einwandfrrei, möchte ich aber ein item aus meiner verketteten liste löschen das in der mitte/am ende ist endet das in einer endlossschleife, jemand ahnung warum?

i, und p sind lokale variablen, erstere ist nur dazu gedacht durch die ganze kette zu laufen, p hält am ende nur einen pointer fest, damit ich das item löschen kann.
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
xineohp

Registriert seit: 29. Jan 2004
Ort: Heusenstamm
420 Beiträge
 
Delphi 2005 Professional
 
#2

Re: Endlosschleife

  Alt 24. Sep 2004, 20:26
Delphi-Quellcode:
  if Halter^.text = Text then
  begin
    // wenn das zu löschende item am anfang(Halter) ist
    i := Halter^.next;
    Dispose(Halter);
    Halter := i;
  end
  else
  begin
    // wenn das zu löschende item in der mitte oder am ende ist
    i := Halter;
    while (i^.next <> nil) do // i wurde nie geändert!
    begin
      if i^.next^.text = Text then
      begin
        p := i^.next^.next;
        Dispose(i^.next);
        i^.next := p;
      end
      else i := i^.next; // diese Zeile fehlte!
    end;
  end;
Peter Enenkel
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#3

Re: Endlosschleife

  Alt 24. Sep 2004, 20:29
vielen dank, funzt
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Antwort Antwort


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:28 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