Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   array inhalt vergleichen (https://www.delphipraxis.net/152957-array-inhalt-vergleichen.html)

khh 14. Jul 2010 17:17

Delphi-Version: 2005

array inhalt vergleichen
 
halo zusammen, ich steh grad auf der Leitung :-(

ich hab ein dyn. Array welches sortiert Artikelbezeichnungen enthält.

also arbez[i] := 'testartikel'; usw.

Diese sollen, nachdem Sie komplett gefüllt sind, ausgedruckt werden, und dabei sollen die doppelten Einträge übergangen werden.
jemand ne Idee?

Danke gruss KHH

EDIT: Delphi 2005 ist falsch :-(

himitsu 14. Jul 2010 17:29

AW: array inhalt vergleichen
 
[info] im erweiterten Editor kann man mehr umstellen (wie z.B. auch die Delphiversion)

da gibt es mehrere Wege:

- entweder du prüfst beim Durchgehn des Arrays, ob vorher schonmal diese Bezeichnung verarbeitet wurde
Delphi-Quellcode:
for i = 0 to high(arr) do begin
  b := true;
  for j = 0 to i - 1 do
    if arr[j] = arr[i] then begin
      b := false;
      break;
    end;
  if b then begin
    ...
  end;
end;
- das selbe wie das Letze, nur daß man sich hier in einer weiteren Liste alles Verarbeitete merkt und wenn dann irgendwann das Aktuelle in dieser Liste schon drinsteht, dann wird es übersprungen
(z.B. über eine StringListe und IndexOf)

- man filtert vorher alles Doppelte/Mehrfache aus dem Array und geht dann nur noch das Übriggebliebene durch

(eventuell auch einfach noch das Array sortieren, dann läßt sich schneller was finden)

Mschmidt 14. Jul 2010 17:58

AW: array inhalt vergleichen
 
was hälst du von einer TStringList? Zusammen mit dem Attribut duplicates sollte diesen Anforderungen genügen, zumal es dir
die Arbeit mit den Arrays abnimmt.
:mschmidt


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