Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Zellen eines Stringgrids vergleichen (https://www.delphipraxis.net/216566-zellen-eines-stringgrids-vergleichen.html)

sILeNt heLLsCrEAm 18. Jan 2025 23:35

Zellen eines Stringgrids vergleichen
 
Hallo Liebe Delphianer,

ich stehe aktuell vor einem Problem mit einem Stringgrid.
Dieses Stringgrid hat mehrere Spalten und auch Zeilen. Die Zeilenanzahl kann unterschiedlich, jedoch maximal 30 Zeilen sein.
Jetzt ist es so das ich von einer bestimmten Spalte die Inhalte folgendermaßen vergleichen will bzw. herausfinden möchte ob ein Zelleninhalt mehrmals vorkommt...

Beispiel anhand von 5 Zeilen, eigentlich 6 Zeilen aber die Überschriften Zeile ist eine "feste" Zeile / Fixed Row
Überschrift
Zeile 1 1234
Zeile 2 4567
Zeile 3 89
Zeile 4 4567
Zeile 5 1234

Ich müsste also den Wert der ersten Zeile (1234) mit allen nachfolgenden Zeilen vergleichen. Ist das abgeschlossen prüfe ich den Inhalt von Zeile 2 (4567) mit den nachfolgenden Zeilen. Bin ich dann bei Zeile 5 angelangt, muss ja nicht mehr geprüft werden weil keine weitere Zeile mehr existiert.
In diesem Beispiel müsste mir also eine Message ausgespuckt werden das Zeile 1 mit Zeile 5 und Zeile 2 mit Zeile 4 übereinstimmt.
Wie könnte denn hier sinnvollerweise eine Funktion aussehen die dies bewerkstelligt?

Vielen Dank schonmal für eure Hilfe...
Viele Grüße

Delphi.Narium 19. Jan 2025 00:12

AW: Zellen eines Stringgrids vergleichen
 
Meinst Du sinngemäß sowas? (nur hingedaddelt, sicherlich nicht 100% korrekt)
Delphi-Quellcode:
for i := 1 to AnzahlZeilen - 2 do begin
  for k := i + 1 to AnzahlZeilen - 1 do begin
    if Zelle[SpalteNr,i] = Zelle[SpalteNr,k] then begin
      ShowMessage(Format('Zelle %d und %d sind gleich - %s = %s',[i,k,Zelle[SpalteNr,i],Zelle[SpalteNr,k]]));
    end;
  end;
end;

Stolle58 19. Jan 2025 10:47

AW: Zellen eines Stringgrids vergleichen
 
Schau mal hier vielleicht hilft Dir das weiter.

sILeNt heLLsCrEAm 19. Jan 2025 13:41

AW: Zellen eines Stringgrids vergleichen
 
Zitat:

Zitat von Delphi.Narium (Beitrag 1545387)
Meinst Du sinngemäß sowas? (nur hingedaddelt, sicherlich nicht 100% korrekt)
Delphi-Quellcode:
for i := 1 to AnzahlZeilen - 2 do begin
  for k := i + 1 to AnzahlZeilen - 1 do begin
    if Zelle[SpalteNr,i] = Zelle[SpalteNr,k] then begin
      ShowMessage(Format('Zelle %d und %d sind gleich - %s = %s',[i,k,Zelle[SpalteNr,i],Zelle[SpalteNr,k]]));
    end;
  end;
end;

Vielen vielen Dank.
Stimmt, es ist nicht 100%ig perfekt, aber das muss es auch nicht.
Das ist genau der Schubs in die richtige Richtung gewesen und entsprechend meinem Programm abgeändert ist es genau das was ich beabsichtige.
In diesem Sinne noch ein schönes restliches Wochenende...

haentschman 19. Jan 2025 13:52

AW: Zellen eines Stringgrids vergleichen
 
Zitat:

Stimmt, es ist nicht 100%ig perfekt, aber das muss es auch nicht.
...perfekt wäre es, wenn du nicht das visuelle Control zum Suchen und Vergleichen benutzt sondern die Datenmenge dahinter (aus der du das Grid gefüllt hast). :zwinker:


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:43 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