AGB  ·  Datenschutz  ·  Impressum  







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

Doppelte Einträge im Stringgrid ausgeben

Offene Frage von "Overburn"
Ein Thema von Overburn · begonnen am 25. Jan 2008 · letzter Beitrag vom 25. Jan 2008
Antwort Antwort
Overburn

Registriert seit: 12. Okt 2004
Ort: Bochum
47 Beiträge
 
#1

Doppelte Einträge im Stringgrid ausgeben

  Alt 25. Jan 2008, 10:11
Moin Leute,

ich hab ein Problem bzw stecke fest..
Ich lade eine CSV datei in ein Stringgrid. Diese CSV-Datei muss ich in einer Spalte nach Duplikate durchsuchen. Dann möchte ich nur die Zeilen mit den Duplikaten anzeigen lassen.
Folgenden Code hab ich als Ansatz gefunden aber leider lässt der bei mir den Speicher überlaufen. Habt ihr ne Idee?
Code:
   procedure TDemoForm.DeleteRow(iRow: integer);
var
  i: integer;
begin
  with StringGrid do begin
    if iRow < FixedRows then
      raise Exception.Create('you cannot delete a fixed row');
    for i := Succ(iRow) to RowCount - 1 do
      Rows[i-1].Assign(Rows[i]);
    RowCount := RowCount - 1;
  end;
end;

procedure TDemoForm.KillButtonClick(Sender: TObject);
var
  i, iDup, iCol, iDist: integer;
  allDuplicates: boolean;
begin
  iCol := 1; // column to check
  allDuplicates := false;
  with StringGrid do
  for i := RowCount - 1 downto 0 do begin
    iDup := i;
    while (iDup > 0)
    and (cells[iCol, iDup - 1] = cells[iCol, iDup]) do
      Dec(iDup);
    iDist := i - iDup;
    if (iDist = 0) or (not allDuplicates and (iDist > 1)) then
      DeleteRow(i);
  end;
end;
Gruß,
Stefan
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Doppelte Einträge im Stringgrid ausgeben

  Alt 25. Jan 2008, 10:59
Hallo Stefan,

ich erinnere mich an diesen Thread: Duplikate in StringGrid anzeigen und den Rest rausschmeissen

Vielleicht hilft er dir ein wenig.

Freundliche Grüße
  Mit Zitat antworten Zitat
Overburn

Registriert seit: 12. Okt 2004
Ort: Bochum
47 Beiträge
 
#3

Re: Doppelte Einträge im Stringgrid ausgeben

  Alt 25. Jan 2008, 11:00
Moin marabu,

danke. Den hatt ich auch schon ausgegraben und mit ein wenig umdneke hat er mir zur Lösung verholfen. :)
Danke!

Gruß,
Stefan
  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 18:16 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