AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Numerische höchster Stringwert
Thema durchsuchen
Ansicht
Themen-Optionen

Numerische höchster Stringwert

Ein Thema von creehawk · begonnen am 21. Nov 2022 · letzter Beitrag vom 22. Nov 2022
Antwort Antwort
Seite 1 von 2  1 2      
creehawk

Registriert seit: 1. Jul 2013
Ort: Hamburg
233 Beiträge
 
Delphi 10.4 Sydney
 
#1

Numerische höchster Stringwert

  Alt 21. Nov 2022, 10:15
Eine Stringliste von Dateinamen, die via

Delphi-Quellcode:
  FileList := TSTringlist.create;
  begin
    if FindFirst(DERPath + '*.*', faAnyFile, SR) = 0 then
    begin
      repeat
        if (SR.Attr <> faDirectory) then
        begin
         FileList.Add(SR.Name);
        end;
      until FindNext(SR) <> 0;
      FindClose(SR);
    end;
  end;
bringt das FileList.text Ergebnis:
Code:
  sgm1.der
  sgm11.der
  sgm12.der
  sgm17.der
  sgm22.der
  sgm25.der
  sgm3.der
  sgm4.der
  sgm9.der
Ich brauche die numerisch höchsten Dateinamen, was in dieser Liste die «sgm25.der» wäre. Wir kriege ich die?

creehawk

Geändert von creehawk (21. Nov 2022 um 14:07 Uhr)
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.110 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Numerische höchster Stringwert

  Alt 21. Nov 2022, 10:20
  1. Übung: Extrahiere die Zahl (Integer) aus dem String
  2. Mache aus der String-Liste ein Zahlen-Array
  3. Sortiere das Array absteigend
  4. Gebe den Wert von meineZahlen[0] zurück

Wobei genau klemmt es?
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.733 Beiträge
 
Delphi 6 Enterprise
 
#3

AW: Numerische höchster Stringwert

  Alt 21. Nov 2022, 10:22
Heißen die Dateien immer so sgmX.der?
Ralph
  Mit Zitat antworten Zitat
creehawk

Registriert seit: 1. Jul 2013
Ort: Hamburg
233 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Numerische höchster Stringwert

  Alt 21. Nov 2022, 10:38
@Der schöne Günther

Okay, versteh ich natürlich, ich dachte es gibt was "Eingebautes".....

@jumpy

Ja die Dateien heißen immer so, ist in Messwerte Format.

creehawk
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.297 Beiträge
 
Delphi 12 Athens
 
#5

AW: Numerische höchster Stringwert

  Alt 21. Nov 2022, 11:06
Zitat:
ich dachte es gibt was "Eingebautes
Jo...regex.

Beispiele:
https://www.google.de/search?q=regex...client=gws-wiz
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.009 Beiträge
 
Delphi 12 Athens
 
#6

AW: Numerische höchster Stringwert

  Alt 21. Nov 2022, 12:02
Warun 25 und nicht 91?
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
creehawk

Registriert seit: 1. Jul 2013
Ort: Hamburg
233 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: Numerische höchster Stringwert

  Alt 21. Nov 2022, 14:11
@Uwe Raabe

Hast recht, die 91 bzw. 33 gehörten da nicht rein, habe ich mal rausgenommen.

Ich hatte eigentlich ein Sortierdingens für eine Stringlist im Auge die diese List eben schlicht in der richtigen Reihenfolge wie z.B. der Explorer anzeigt.

creehawk
  Mit Zitat antworten Zitat
Benutzerbild von Gausi
Gausi

Registriert seit: 17. Jul 2005
847 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Numerische höchster Stringwert

  Alt 21. Nov 2022, 15:17
Dafür musst du eine passende Compare-Funktion nehmen. Wie das genau mit StringList und CustomSort dort geht, weiß ich auf Anhieb nicht. In meinem Player nutze ich für meine String-Properties der Objekte in den ObjectLists sowas:

Delphi-Quellcode:
function AnsiCompareText_Numbers(const S1, S2: string): Integer;
begin
  Result := CompareString(LOCALE_USER_DEFAULT, SORT_STRINGSORT or SORT_DIGITSASNUMBERS, PChar(S1),
    Length(S1), PChar(S2), Length(S2)) - CSTR_EQUAL;
end;
Relevant ist hier das Flag SORT_DIGITSASNUMBERS. Die Syntax der Compare-Funktion muss für StringListen ggf. etwas angepasst werden.
The angels have the phone box.
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.685 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: Numerische höchster Stringwert

  Alt 21. Nov 2022, 23:01
@Uwe Raabe

Hast recht, die 91 bzw. 33 gehörten da nicht rein, habe ich mal rausgenommen.

Ich hatte eigentlich ein Sortierdingens für eine Stringlist im Auge die diese List eben schlicht in der richtigen Reihenfolge wie z.B. der Explorer anzeigt.

creehawk
Der Explorer zeigt es doch genau so an wie Du es geschrieben hast.
Wenn Deine Dateien für eine Sortierung korrekt benannt wären, würden die auch so dargestellt werden wie Du es eigentlich möchtest.
(sgm001, sgm002 etc...)
Soll heißen, durchforste Deine Liste nach dem längsten string und füge dann nullen hinter sgm ein um mit der längsten länge gleich zu sein.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.142 Beiträge
 
Delphi 12 Athens
 
#10

AW: Numerische höchster Stringwert

  Alt 21. Nov 2022, 23:36
Wozu?

SORT_DIGITSASNUMBERS macht das, was gewollt ist.


Im Gunde zerlegt es den String in seine Einzelteile "Zahlen" und "Anderes" und sortiert die Teile entsprechens, also Zahlen wie Zahlen und nicht als String, wobei führende Nullen egal sind (außer die Zahlenwerte sind gleich, dann nochmal als String)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:09 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz