Autor Beitrag
driv3r
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Fr 19.11.10 13:41 
Hallo allerseits,
mir wurde schon mal geholfen, hoffe, dass es diesmal auch der Fall wird. :)
Ich sollte ein Programm schreiben, dass eine Textdatei ausliest (die per Zufallsgen. diese Datei mit Text füllt) und dann den Inhalt sortiert im Programm darstellt. Der Sortiervorgang sollte dabei unter bestimmten Kriterien ablaufen wie z.B. "Jedes 2. oder 3. Wort nach Semikolon( ; ) angezeigt werden (im Programm)".
Ich habe bisher Bubble-Sort und QuickSort in Betracht gezogen, doch weiter komme ich nun nicht, da ich es in Delphi nicht umsetzen kann. Ich scheitere an der Grundidee, wie es in Delphi aussehen (Quellcode) soll.
Hat vtl. jmd. in der Richtung schon was programmiert?
Bergmann89
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1742
Erhaltene Danke: 72

Win7 x64, Ubuntu 11.10
Delphi 7 Personal, Lazarus/FPC 2.2.4, C, C++, C# (Visual Studio 2010), PHP, Java (Netbeans, Eclipse)
BeitragVerfasst: Fr 19.11.10 20:31 
Hey,

wenn du nur das einer Wort speichern willst, dann würd ich ne TStringList nehmen, und dann beim laden immer ein Wort hinzufügen. Dann musst du die Liste nur noch sortieren.
Wenn du mehrere Daten pro Eintrag haben willst, dann würd ich eine TList nehmen und ein record, das die Daten speichert. Das sieht dann ungefähr so aus:
ausblenden volle Höhe 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:
type
  TMyData = packed record
    Index: Integer;
    Word1, Word2, Filanme: String;
  end;
  PMyData = ^TMyData;
  
var
 List: TList;

procedure AddToList(Index: Integer; Word1, Word2, Filename: String);
var
  p: PMyData;
begin
  new(p);
  p^.Index    := Index;
  p^.Word1    := Word1;
  p^.Word2    := Word2;
  p^.Filename := Filename;
  List.Add(p);
end;

procedure DelFromList(Index: Integer);
var
  p: TMyData;
begin
  p := List[Index];
  SetLength(p^.Word1, 0);
  SetLength(p^.Word2, 0);
  SetLength(p^.Filenama, 0);
  Dispose(p);
  List.Delete(Index);
end;

function GetListItem(Index: Integer): TMyData;
begin
  result := PMyData(List[Index])^;
end;

So in etwas funktioniert das Ganze dann. Ist natürlich nur ein ausschnitt der möglichen Funktionen. Sortieren kannst du das dann mithilfe von List.Sort(), dazu findest du was in der Delphi hilfe, oder hier im Forum.

€: natrlich würde es sich anbieten eine Klasse zu schreiben, die von TList abgeleitet ist und die Methoden von TList mit deinen Daten implementiert.

MfG Bergmann

_________________
Ich weiß nicht viel, lern aber dafür umso schneller^^