![]() |
StringList Sortieren?
Hallo,
Ich möchte eine Stringlist Sortieren. Meine Stringlist sieht so aus.(Delimiter := ; ) 1;3.00;4;1.13;0.75;50.00;9.43 2;1.10;5;1.05;0.22;52.00;9.80 Am Anfang steht die Zeilen Zahl. Das sortieren soll sich der größe nach an der vorletzen Position in der Zeile richten. hat Jemand eine Idee. Gruß Bernd |
AW: StringList Sortieren?
Du hast eine CSV Datei in einer Stringlist und möchtest diese CSV Datei sortieren.
Eine StringList als Container ist dafür mehr als ungeeignet. (es ginge schon, ist aber mehr durch die Brust ins Auge) Wo kommen die Daten her und was soll mit den Daten weiter geschehen? Ich Wette, da gibt es einen besseren Grundansatz. |
AW: StringList Sortieren?
Hallo Sir Rufo,
Es handelt sich um einstellungs Daten die voher generiert werden. Es soll nach der best möglichen einstellung sortiert werden. Gruß bernd |
AW: StringList Sortieren?
Ei jo ... aber so wie die Daten da jetzt stehen, kann man da nicht so gemütlich drauf zugreifen, oder?
Werden diese Daten durch das gleiche Programm erstellt, mit dem du jetzt sortieren möchtest? -> warum befinden sich diese Daten nicht in einer Klasse (pro Zeile) und alle (Zeile) dann in einer TObjectList? Der TObjectList gibt man jetzt einen Comparer und die wird automatisch sortiert. Oder kommen die Daten von einem externen Programm? |
AW: StringList Sortieren?
Jepp leider kommen die Daten von einem externen Programm.
dann wäre es ja einfach gewesen :-D Irgendwie muss das gehen. Gruß Bernd |
AW: StringList Sortieren?
Du benutzt die Methode
Delphi-Quellcode:
deiner TStringList.
CustomSort(Compare: TStringListSortCompare);
- in deiner selbstgeschriebenen Compare-Function bekommst du 2 Zeilen-Indize - holst dir aus der übergebenen StringList die entsprechenden Zeilen - zerlegst diese, bzw. extrahierst den zu vergleichenden Anteil - wandelst diese Anteil ("Zahlen") jeweils in einen Read/Single/Double um, da du ja bestimmt die nummerischen Werte vergleichen willst - vergleichst diese Werte und gibst das Ergebnis als Result zurück - das Sortieren übernimmt dann CustomSort für dich Du kannst dir auch eine eigene Klasse von TStringList ableiten, überschreibst darin die Methode "Sort", implementierst in dieser die ganzen Vergleiche und rufst dann einfach nur noch das .Sort auf. |
AW: StringList Sortieren?
Ja, natürlich geht das, aber ich versuche gerade dir mühsam aus der Nase zu ziehen, wie diese Daten denn jetzt da vorliegen.
Ich vermute jetzt mal (konkret hast du dich noch nicht geäußert) da ist eine Datei wo das Gelumpe drin steht. Dann schau mal ![]() Da kann man beim Einlesen gleich sortieren lassen, und auf jeden Wert gemütlich zugreifen. Es kommt jetzt darauf an, was man mit dem Zeuges noch anfangen will |
AW: StringList Sortieren?
Hi Sir Rufo,
Es soll ja nix dolles passieren die Daten soll nur sortiert in die Datei zurück kopiert werden. Das war es schon. Aber wie gesagt ich komme nicht weiter. Danke @himitsu aber mit CustomSort hatte ich noch nicht das vergnügen. Kannst du das näher beschreiben? Gruß Bernd |
AW: StringList Sortieren?
Zitat:
(Temperaturen, Spannungswerte, Aktienkurse, ???) Die Daten sind in einer ungeeigneten Darstellung; man sollte sie erst mal so umformen, dass klar hervorgeht um was es sich handelt. Man kann natürlich die Stringliste so wie sie ist sortieren aber dann entsteht dieser völlig unverständliche Sourcecode den wir als Programmierer so hassen. |
AW: StringList Sortieren?
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:30 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz