Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Pointer - Alphabetisch sortieren - Hinzufügen
kuschelfreddy - Fr 01.05.09 15:15
Titel: Pointer - Alphabetisch sortieren - Hinzufügen
Hey!
Ich schon wieder. Habe ein Programm mit Pointern geschrieben, was auch so weit funktioniert, bis auf eine Kleinigkeit, die ich nicht behoben bekomme. Deshalb hoffe ich, dass ihr mir dabei behilflich sein könnt.
Was das Programm macht, dürfte beim Angucken ziemlich klar werden. Das Problem ist Folgendes:
Wenn ich die Liste im linken Memofeld alphabeitsch einlesen lasse und dann ausgebe, funktioniert dies einwandfrei. Wenn ich dann ein Wort hinzufügen möchte, zB Maus, dann setzt er es ganz oft nur an das Ende der Liste und sortiert es nicht ein. Füge ich ein zweites Wort ein, sortiert er es einwandfrei ein. Deshalb weiß ich auch nicht, wo genau der Fehler liegt....
Bei allen anderen Sortiermodi (FiFo, LiFo) funktioniert das Hinzufügen einwandfrei...
Ich hoffe, hier findet jemand das Problem und hilft mir beim Beheben!
Danke schon mal im Voraus!
LG Nathalie
Moderiert von
Narses: Topic aus Sonstiges (Delphi) verschoben am Sa 02.05.2009 um 00:29
Narses - Sa 02.05.09 00:35
Moin!
Was hast du denn schon unternommen, um den Fehler zu finden? Hast du denn wenigstens eine Ahnung, wo im Quelltext der Fehler liegen müsste? Hast du mal versucht, das Programm zu debuggen? Oder mal ein paar Testausgaben eingefügt? :nixweiss:
Du wirst hier vermutlich niemanden finden, der dir dein Programm einfach so analysiert und die Fehler entfernt. Vielleicht solltest du erstmal den relevanten Codeteil identifizieren und nur diesen hier direkt im Beitrag präsentieren. :idea:
cu
Narses
kuschelfreddy - Sa 02.05.09 16:25
Hey!
Also so wirklich ne Ahnung, wo der Fehler liegt, habe ich nicht und ich habe auch noch keine genaue Fehleranalyse gemacht, da ich keine Ahnung habe, wie ich das in Delphi am besten angehe.
Ich hoffe, dass das Problem klar geworden ist. Theoretisch müsste der Fehler entweder in diesem:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50:
| procedure TForm2.alphabetisch; begin new(lauf); lauf^.inhalt:=memo2.lines[a]; if lauf^.inhalt<start^.Inhalt then begin lauf^.richtung:=start; start:=lauf; hilfe:=start; end else begin if start^.richtung=nil then begin lauf^.richtung:=start^.richtung; start^.richtung:=lauf; end else begin repeat hilfe:=hilfe^.richtung; until (hilfe^.richtung=nil) or (lauf^.inhalt<hilfe^.inhalt); if hilfe^.richtung=nil then begin hilfe^.richtung:=lauf; lauf^.richtung:=nil; hilfe:=start; end else begin lauf^.richtung:=hilfe; hilfe:=start; if hilfe^.richtung<>lauf^.richtung then begin repeat hilfe:=hilfe^.richtung; until hilfe^.richtung=lauf^.richtung; end; hilfe^.richtung:=lauf; hilfe:=start; end; end; end; inc(a); end; |
oder in diesem Teil:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30:
| procedure TForm2.Button4Click(Sender: TObject); begin memo2.lines.add(''); memo2.lines[a]:=edit1.text; hilfe:=start; if button1.Visible then lifo else if button2.Visible then begin if hilfe^.richtung<>nil then begin repeat hilfe:=hilfe^.richtung; until hilfe^.richtung=nil; end; fifo; end else alphabetisch; lauf:=start; hilfe:=start; Ausgabe; edit1.clear; end; |
liegen, da das eigentlich die einzigen relevanten Teile sind, für den Teil, in dem das Problem auftaucht....
Notfalls gebe ich das Programm so ab und mein Lehrer muss sich damit rum schlagen... Ist ja eigentlich auch nur ein kleines Problem, aber ich hätte es gern behoben...
LG Nathalie
Moderiert von
Kha: Delphi-Tags hinzugefügt
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!