AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

StringGrid nach Uhrzeit sortieren

Ein Thema von H.Bothur · begonnen am 23. Jan 2020 · letzter Beitrag vom 24. Jan 2020
Antwort Antwort
H.Bothur

Registriert seit: 25. Jun 2012
Ort: Seevetal & Lagos
252 Beiträge
 
Delphi 11 Alexandria
 
#1

StringGrid nach Uhrzeit sortieren

  Alt 23. Jan 2020, 14:11
Delphi-Version: 5
Moin,

ich brauche mal einen Denkanstoß:

Ich habe ein Stringgrid mit zwei Feldern:

Feld 1: Name
Feld 2: Uhrzeit im Format HH:MM

Jetzt möchte ich die nächsten 5 Datensätze anzeigen lassen die uhrzeitmässig als nächstes kommen.
Aber - mir fehlt da irgendwie jeder Ansatz wie ich die Sortierung machen kann. Kann mich da mal jemand in die richtige Richtung schupsen ?

Danke !
Hans
Hans-Georg Bothur
www.hermann-juergensen.de
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: StringGrid nach Uhrzeit sortieren

  Alt 23. Jan 2020, 14:29
Hallo,
suchst Du Ansätze, wie man sortiert?
https://stackoverflow.com/questions/...ng-string-grid

oder wie Du das mit der Uhrzeit machen sollst?
HH:MM läßt sich sogar wie ein String sortieren (wenn die Stunden immer zwei Ziffern haben)
Heiko
  Mit Zitat antworten Zitat
H.Bothur

Registriert seit: 25. Jun 2012
Ort: Seevetal & Lagos
252 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: StringGrid nach Uhrzeit sortieren

  Alt 23. Jan 2020, 15:24
Jein - ich brauche einen Ansatz wie ich die Datensätze so sortiere das die nächsten Termine oben sind Hans. Aber das mit dem Tip die Uhrzeit immer zweistellig darzustellen war schon nicht schlecht

Hans
Hans-Georg Bothur
www.hermann-juergensen.de
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: StringGrid nach Uhrzeit sortieren

  Alt 23. Jan 2020, 17:17
Hallo,
also Order By Desc ...

Tip:
Wenn Du dir das TAdvStringGrid von TMS leisten kannst, kauf es.
Das hat bereits ein CustomSort drin.

Ansonsten nimm einen der Quelltexte aus dem Link.

Dann eine
Delphi-Quellcode:
function Compare-Methode(A, B: String): Integer;
begin
  if A<B then
  begin
    Result:= 1;
    Exit;
  end;
  if A>B then
  begin
    Result:= -1;
    Exit;
  end;
  Result:= 0;
end;
Hier ist praktisch das Sortieren umgedreht.

Bitte nicht über den miesen Code herziehen :=)
Ist ja nur ein Bsp..
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: StringGrid nach Uhrzeit sortieren

  Alt 23. Jan 2020, 17:39
Die MemoryDataSets einiger Anbieter bieten auch eine OrderBy-Funktion an (Property mit Spaltennamen).
Und dazu statt dem StringGrid ein DBGrid verwenden. (bin mir grad nicht sicher, ob TClientDataSet sowas auch hat)

Ansonsten:
StringGrid.Rows[i].Text ist die ganze Daten-Zeile (alle Cell auf einmal kopieren, oder eben stattdessen noch eine Schleife über die gewünschten Cells),
dann brauchst nur noch eine Schleife zum Vergliechen (BubbleSort ist leicht zu bauen)
und jeweils entsprechend die Zeilen austauschen, welche nicht die richtige Reihenfolge haben.

Delphi-Quellcode:
for i1 := 0 do StringGrid.RowCount-2 do
  for i2 := i1 + 1 do StringGrid.RowCount-1 do
    if AnsiSameStr(StringGrid.Cell[x, i1], StringGrid.Cell[x, i2]) < 0 then begin // x = DatumsSpalte ... oder >0 wenn andersrum
      Temp := StringGrid.Rows[i1].Text;
      StringGrid.Rows[i1].Text := StringGrid.Rows[i2].Text;
      StringGrid.Rows[i2].Text := Temp;
    end;
PS: Die Methode von hoika nennt sich Delphi-Referenz durchsuchenAnsiSameStr.

Es ist echt erstaunlich, dass nach über 25 Jahren die VCL immernoch kein halbwegs nutzbares Grid beinhaltet.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (23. Jan 2020 um 17:47 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.549 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: StringGrid nach Uhrzeit sortieren

  Alt 24. Jan 2020, 06:44
Nur mal so: http://www.bergsoft.net/en-us/product/next-grid
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort


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 23:53 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