AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

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
156 Beiträge
 
#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
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
7.767 Beiträge
 
Delphi XE4 Professional
 
#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
156 Beiträge
 
#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
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
7.767 Beiträge
 
Delphi XE4 Professional
 
#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
36.615 Beiträge
 
Delphi 10.4 Sydney
 
#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.
Delphi-Tage 2005-2014

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.076 Beiträge
 
Delphi 10.3 Rio
 
#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
ISMIRSCHLECHT

Registriert seit: 17. Dez 2018
Ort: Görlitz
58 Beiträge
 
#7

AW: StringGrid nach Uhrzeit sortieren

  Alt 24. Jan 2020, 10:58
Hi,

Memorydatasets gibts in Delphi kostenlos.
TClientdataset !
Also ein entsprechendes TClientdataset backen, füllen und sortieren per Indexfunktion.
Oder:
Die Daten in passende Objekte hauen, diese in eine TObjectlist füllen und über die Methode Sort nach eigenem Gusto sortieren.

Immer Daten (Objektliste / Dataset) und optische Repräsentation trenne !
Immer Daten sortieren, filtern, aggregieren...
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
7.767 Beiträge
 
Delphi XE4 Professional
 
#8

AW: StringGrid nach Uhrzeit sortieren

  Alt 24. Jan 2020, 12:04
Hallo,
Zitat:
Es ist echt erstaunlich, dass nach über 25 Jahren die VCL immernoch kein halbwegs nutzbares Grid beinhaltet.
Ja, leider.
WordWrap, inplace Editor, Alignment, merged cells
-> nüx kann das TStringGrid
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.652 Beiträge
 
Delphi 7 Personal
 
#9

AW: StringGrid nach Uhrzeit sortieren

  Alt 24. Jan 2020, 21:48
Nach der reinen Lehre sollten Daten von der Anzeige getrennt sein, also sollte das vorhandene Grid reichen.
Wenn dann die Daten dann noch in einer Liste sind, dann kommt/kommen noch Sortierroutine(n) dazu und man hat alles was man braucht.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 00:33 Uhr.
Powered by vBulletin® Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2020 by Daniel R. Wolf