Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - einfach verkettete listen
angela - Mo 09.02.09 23:03
Titel: einfach verkettete listen
hey erstmal,
ich brauch dringend hilfe, weil ich in info ein programm schreiben soll und ich nicht weiter weiß. Unser Lehrer hat uns zwar ein paar sachen vorgegeben, aber es funktioniert nicht.
es wär echt nett wenn mir jemand helfen könnte.
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: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102: 103: 104: 105: 106: 107: 108: 109: 110: 111: 112: 113: 114: 115: 116: 117: 118: 119: 120: 121: 122: 123: 124: 125: 126: 127: 128: 129: 130: 131: 132: 133: 134: 135: 136: 137: 138: 139: 140: 141: 142: 143:
| unit Unit1;
interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;
type Pknoten = ^Tknoten; TKnoten = Record Nr:Integer; Inhalt:String; Next:PKnoten; end; TForm1 = class(TForm) Edit1: TEdit; ListBox1: TListBox; Schliessen: TButton; weiter: TButton; speichern: TButton; eingabe: TButton; Edit2: TEdit; loeschen: TButton; Label1: TLabel; Label2: TLabel; procedure SchliessenClick(Sender: TObject); procedure FormCreate(Sender: TObject); procedure weiterClick(Sender: TObject); Procedure FormClose(Sender:Tobject; var Action:TcloseAction); procedure eingabeClick(Sender: TObject); procedure loeschenClick(Sender: TObject); private public end;
var Form1: TForm1; Root,knoten:Pknoten; implementation
{$R *.DFM}
procedure TForm1.SchliessenClick(Sender: TObject); begin Form1.close; end;
procedure TForm1.FormCreate(Sender: TObject); var Nr: integer; inhalt: string; next:Pknoten; begin new(root); Knoten:=root; with Knoten^ do begin Nr:=0; Inhalt:=''; Next:= nil; end; end;
procedure Anzeige; begin with knoten^ do begin Form1.edit1.text:=inttostr(nr); Form1.edit2.text:=inhalt; end; end;
Procedure Tform1.FormClose(Sender:Tobject; var Action:TcloseAction); begin knoten:=root; while knoten^.next <> nil do begin root:=knoten; Knoten:=Root^.next; end; Dispose(root); end;
Procedure DateiEinlesen; var f:Textfile; S:string; Neuerknoten:Pknoten; I:integer; begin Assignfile(f,'Liste\Daten.dat'); {$I-} reset(f); {$I+} if Ioresult <> 0 then begin showmessage('Datei konnte nicht gefunden werden'); exit; end; I:=0; while not eof(f) do begin Readln(f,s); new(neuerknoten); with knoten^ do begin next:=neuerknoten; inhalt:=s; Nr:=i; end; knoten:=neuerknoten; knoten^.next:=nil; inc(i); end; closefile(f); knoten:=root; anzeige; end;
procedure TForm1.weiterClick(Sender: TObject); begin if knoten.next^.next <> nil then knoten:=knoten^.next; anzeige; end;
procedure TForm1.eingabeClick(Sender: TObject); var inhalt:string; Nr:integer; begin Dateieinlesen; listbox1.Items.add(inhalt); listbox1.items.add(inttostr(nr)); end;
procedure TForm1.loeschenClick(Sender: TObject); begin listbox1.clear; end;
end. |
Moderiert von
Narses: Quote- durch Delphi-Tags ersetztModeriert von
Narses: Topic aus VisualCLX (Component Library for Cross Platform) verschoben am Mo 09.02.2009 um 22:48
uko - Mo 09.02.09 23:13
Erst mal hallo :welcome:
Wenn wir Dir helfen sollen, mußt Du uns schon auch sagen, was dein Problem ist! :P
Was geht denn nicht?
Grüße,
Uli
angela - Mo 09.02.09 23:17
naja einfacher zu sagen ist was geht und das ist nur die anzeige 'datei konnte nicht gefunden werden'
Jens Hartmann - Mo 09.02.09 23:31
Hallo erstmal,
Also uko meinte, was sollst Du überhaupt konkret machen, wo ist dein Problem, Was für eine Aufgabe hast Du bekommen und womit hast Du dich bereits beschäftigt?
Gruß
Jens
angela - Mo 09.02.09 23:43
naja ich danke euch erstmal...
also ich soll ein programm schreiben in dem in edit-feldern die nummer und der inhalt angegeben werden und die sollen in eine listbox übertragen werden. und irgendwie soll man das mit zeigern machen. das versteh ich leider nicht, tut mir leid hab nich viel ahnung davon.
Jens Hartmann - Mo 09.02.09 23:46
Zum einlesen von Dateien,
das wäre eine Möglichkeit
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20:
| procedure TFUebung.BTTextEinlesenSender: TObject); var f : TextFile; i : integer; s : String; begin AssignFile(f,'test.txt'); {$i-}Reset(f){$i+}; if IOResult <> 0 then begin ShowMessage('Datei nicht gefunden'); Exit end; while NOT EOF(F) do begin Readln(f,s); Memo1.Text := s; end; end; end; |
Gruß
Jens
---
Moderiert von
Narses: Beiträge zusammengefasst---
Was für Nummern und für ein Inhalt soll den in den EDIT Feldern stehen.
angela - Di 10.02.09 18:43
danke schön...
also das in den edit feldern so man das so eintragen können, also da gibt es keine vorgabe
Jens Hartmann - Di 10.02.09 20:16
Ja,
aber Du musst doch irgendeine Richtung haben, was da eingegeben wird.
Wenn das egal ist, könntest Du wahrscheinlich mit einem String arbeiten, denn du dann an deine Listbox übergibst.
Allerdings, wenn da sowas wie ...
Delphi-Quelltext
1:
| 1. Meine Eingabe steht, |
dann willst du doch gewiss was mit dem Zähler 1 erreichen, oder?
Wenn ich dich richtig verstanden habe, soll man in das Editfeld was eingeben und anschließend den Button klicken.
Nach dem klick soll der Wert im Edit der Listbox hinzugefügt werden.
Wenn das so richtig ist, müsstest du mit
was anfangen können.
MFG
Jens
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 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!