![]() |
TStringList: Problem beim Sortieren bei Texte mit Zahlen
Hallo,
ich lese eine Datei aus deren Einträge z. B. wie folgt aufgebaut sind:
Code:
Nur gibt es diesen Eintrag mehrmals in der Datei, nur die Zahl in den eckigen Klammern verändert sich.
N10230 $MN_SCALING_FACTORS_USER_DEF[0]=1
Nach dem Auslesen speichere ich die einzelnen Einträge in einer StringList und lasse diese mittels StringList.Sort sortieren. Leider sortiert diese Funktion nicht aufsteigend, sondern nur nach Anfangsnummer. Was dann so ausschaut:
Code:
Ich hätts aber gerne so sortiert:
N10230 $MN_SCALING_FACTORS_USER_DEF[0]=1
N10230 $MN_SCALING_FACTORS_USER_DEF[1]=1 N10230 $MN_SCALING_FACTORS_USER_DEF[10]=1 N10230 $MN_SCALING_FACTORS_USER_DEF[11]=1 N10230 $MN_SCALING_FACTORS_USER_DEF[12]=1 N10230 $MN_SCALING_FACTORS_USER_DEF[13]=1 N10230 $MN_SCALING_FACTORS_USER_DEF[14]=1 N10230 $MN_SCALING_FACTORS_USER_DEF[2]=1 N10230 $MN_SCALING_FACTORS_USER_DEF[3]=1 N10230 $MN_SCALING_FACTORS_USER_DEF[4]=1 N10230 $MN_SCALING_FACTORS_USER_DEF[5]=1 N10230 $MN_SCALING_FACTORS_USER_DEF[6]=1 N10230 $MN_SCALING_FACTORS_USER_DEF[7]=1 N10230 $MN_SCALING_FACTORS_USER_DEF[8]=1 N10230 $MN_SCALING_FACTORS_USER_DEF[9]=1
Code:
Wie könnt ich das bei der StringList realisieren?
N10230 $MN_SCALING_FACTORS_USER_DEF[0]=1
N10230 $MN_SCALING_FACTORS_USER_DEF[1]=1 N10230 $MN_SCALING_FACTORS_USER_DEF[2]=1 N10230 $MN_SCALING_FACTORS_USER_DEF[3]=1 N10230 $MN_SCALING_FACTORS_USER_DEF[4]=1 N10230 $MN_SCALING_FACTORS_USER_DEF[5]=1 N10230 $MN_SCALING_FACTORS_USER_DEF[6]=1 N10230 $MN_SCALING_FACTORS_USER_DEF[7]=1 N10230 $MN_SCALING_FACTORS_USER_DEF[8]=1 N10230 $MN_SCALING_FACTORS_USER_DEF[9]=1 N10230 $MN_SCALING_FACTORS_USER_DEF[10]=1 N10230 $MN_SCALING_FACTORS_USER_DEF[11]=1 N10230 $MN_SCALING_FACTORS_USER_DEF[12]=1 N10230 $MN_SCALING_FACTORS_USER_DEF[13]=1 N10230 $MN_SCALING_FACTORS_USER_DEF[14]=1 (das Ändern der Einträge ist nicht möglich, also aus [1] kann ich nicht [01] machen) |
Re: TStringList: Problem beim Sortieren bei Texte mit Zahlen
Jede Zeile aus dem Stringlist nehmen, den Zahlenteil zwischen den eckigen Klammern auslesen, in einen integer umwandeln und dann die stringlist manuell danach sortieren.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:11 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-2025 by Thomas Breitkreuz