-
Forum: Object-Pascal / Delphi-Language
by DeddyH,
14. Aug 2011
Wenn man sich natürlich entsprechenden Code zusammenbaut, dem man verschiedene Datentypen als Parameter übergibt, dann hat man auch die Fakten, die einem in den Kram passen. Wie ich schon sagte: Memo.Lines und TStringlist sind beide von TStrings abgeleitet, also sollte es letztendlich egal sein, welcher Abkömmling dahintersteckt, sobald man dann TStrings übergibt. Und will man dann den...
-
Forum: Object-Pascal / Delphi-Language
by DeddyH,
13. Aug 2011
Weiß ich nicht, bin auch zu faul, jetzt noch nachzuschauen. Zur Not leitet man sich eben eine Klasse TEmailList ab, wenn man hochwissenschaftlich EMail-Adressen sortieren möchte, und verpasst der die entsprechenden Properties, die dann bei der Sortierung Berücksichtigung finden.
-
Forum: Object-Pascal / Delphi-Language
by DeddyH,
13. Aug 2011
Und schon wieder doppelt gemoppelt. Wieso schreibt man einen Quicksort neu und übergibt dem eine TStringlist, statt einfach deren bereits implementierten zu nutzen? Tut mir leid, das ist mir einfach zu hoch.
-
Forum: Object-Pascal / Delphi-Language
by DeddyH,
13. Aug 2011
Findet Ihr es nicht selber albern, bei einem Bubblesort über Optimierungen zu schwadronieren? Da ist doch jede Anstrengung verschwendete Zeit, das Ganze ist ja wohl eher als Übungsaufgabe in der Ausbildung zu sehen.
-
Forum: Object-Pascal / Delphi-Language
by DeddyH,
12. Aug 2011
In der allergrößten Not über CustomSort. In der Hilfe steht etwas von einer Property CaseSensitive, aber ich weiß nicht, seit wann es die gibt.
-
Forum: Object-Pascal / Delphi-Language
by DeddyH,
12. Aug 2011
Wenn Du mir jetzt noch erklärst, wieso Du einmal ein Memo und einmal eine TStringlist übergibst anstatt einfach nur TStrings und damit nur eine einzige Sort-Routine benötigst, dann probiere ich es vielleicht tatsächlich.
Und wenn man schon auf Quicksort umschwenkt: das bringt die TStringList schon von Haus aus mit.
-
Forum: Object-Pascal / Delphi-Language
by DeddyH,
12. Aug 2011
Und was soll das bringen? Wenn das Memo nicht neu gezeichnet wird, haben wir doch denselben Effekt ohne Hin- und Herkopiererei.
-
Forum: Object-Pascal / Delphi-Language
by DeddyH,
12. Aug 2011
Das geht schon schneller, wenn Du am Anfang Memo1.Lines.BeginUpdate und am Ende Memo1.Lines.EndUpdate aufrufst.
-
Forum: Object-Pascal / Delphi-Language
by DeddyH,
12. Aug 2011
Oder etwas anders ausgedrückt: Listen (also auch TStrings) sind 0-indiziert, d.h. das erste Element hat den Index 0. Count gibt die Anzahl der enthaltenen Elemente zurück, da das erste den Index 0, das zweite den Index 1 usw. hat, muss das letzte Element also den Index Count - 1 haben. So, da wir ja jedes Element mit seinem Nachfolger vergleichen wollen, darf die Schleife nur bis Count - 2 (also...
-
Forum: Object-Pascal / Delphi-Language
by DeddyH,
12. Aug 2011
Aber letztendlich konnten wir Dich ja noch "hinschubsen" :mrgreen:
-
Forum: Object-Pascal / Delphi-Language
by DeddyH,
12. Aug 2011
Du musst aber auch lesen, was wir schreiben.
for i := 0 to Memo1.Lines.Count - 2 do
if Memo1.Lines > Memo1.Lines then
-
Forum: Object-Pascal / Delphi-Language
by DeddyH,
12. Aug 2011
Das tust Du aber nicht, außerdem ist es wie gesagt unnötig.
-
Forum: Object-Pascal / Delphi-Language
by DeddyH,
12. Aug 2011
Adresse ist ja auch leer, was willst Du da sortieren? Außerdem kannst Du Dir das Array doch komplett sparen, Du kannst auf die Art und Weise doch gleich Memo1.Lines nehmen, nur dass Du dort nicht Low() und High() verwendest, sondern von 0 bis Count - 2 durchgehst.
-
Forum: Object-Pascal / Delphi-Language
by DeddyH,
12. Aug 2011
Was soll denn das Memo1.Text bewirken? Wieso vergleichst Du Strings (Adresse) mit Integers (i)?
-
Forum: Object-Pascal / Delphi-Language
by DeddyH,
12. Aug 2011
TStrings.Exchange dürfte zielführend sein.