AGB  ·  Datenschutz  ·  Impressum  







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

2 Arrays zu 1 Array zusammenfassen

Ein Thema von Alex_ITA01 · begonnen am 2. Nov 2004 · letzter Beitrag vom 2. Nov 2004
Antwort Antwort
Alex_ITA01

Registriert seit: 22. Sep 2003
1.115 Beiträge
 
Delphi 12 Athens
 
#1

2 Arrays zu 1 Array zusammenfassen

  Alt 2. Nov 2004, 08:02
Moin Moin erstmal,
ich habe folgendes Problem:
2 Integer arrays mit verschiedenen Werten vom Typ:

TIntArray = array of Integer;

Es können aber auch Werte doppelt drinne vorkommen.Genau diese Werte will ich nur einmal haben.
Also die beiden Arrays in EIN array zusammenfassen und alle Einträge die doppelt vorkommen nur einmal in das "zusammengefügte" array "kopieren".
Ich hoffe ihr könnt mir da helfen?!

MFG Alex
Let's fetz sprach der Frosch und sprang in den Mixer
  Mit Zitat antworten Zitat
Benutzerbild von freak4fun
freak4fun

Registriert seit: 22. Sep 2004
Ort: Hannover
1.807 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#2

Re: 2 Arrays zu 1 Array zusammenfassen

  Alt 2. Nov 2004, 08:19
hallo,

also du willst 2 Arrays in einen packen, also so:

ArrayNeu = Array1 + Array2

und dabei die Werte die in Array1 sind nicht nochmal aus Array2 eintargen? Also so:

ArrayNeu = Array1 + (Array2 - Array1)

Dann mch doch folgendes:

ArrayNeu := Array1

For i:=1 to Länge Array1 do
Wenn Array2[i] <> Array1 dann eintargen

oder so änlich

mfg
frek
Christian
IT: Schließen Sie bitte das Fenster. User: Die Tür auch?
i++; // zaehler i um 1 erhoehen
  Mit Zitat antworten Zitat
weißer Zwerg
(Gast)

n/a Beiträge
 
#3

Re: 2 Arrays zu 1 Array zusammenfassen

  Alt 2. Nov 2004, 08:23
Hallo,

Du könntest das Gesamtarray von hinten nach vorne durchlaufen:
for i:=Arraylaenge downto 1 do und jeweils die aktuelle Zahl mit allen vorherigen Zahlen vergleichen:
for j := i downto 1 do MfG wZ
  Mit Zitat antworten Zitat
Benutzerbild von fiasko
fiasko

Registriert seit: 10. Dez 2002
Ort: Dresden
506 Beiträge
 
#4

Re: 2 Arrays zu 1 Array zusammenfassen

  Alt 2. Nov 2004, 08:40
Hallo,

ist denn das Array sortiert? Wenn nicht mußt du zwangsläufig für jedes Element aus Array2 Prüfen ob es in Array1 schon drinne ist. Damit wird auch sichergestellt das in Array2 doppelte Werte dann nicht doppelt in Array1 landen.

Pseudo Code:
Delphi-Quellcode:
for i:= 1 to Laenge2 do
begin
  found := false;

  for j:= 1 to Laenge1 do
   if array2[i]=array1[j] then
  begin
    found := true;
    break;
  end;

  if not found then
    Eintragen!
end;
Thomas Liske
Posts comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
  Mit Zitat antworten Zitat
Alex_ITA01

Registriert seit: 22. Sep 2003
1.115 Beiträge
 
Delphi 12 Athens
 
#5

Re: 2 Arrays zu 1 Array zusammenfassen

  Alt 2. Nov 2004, 08:41
ich habe es grade mit euren lösungsvorschlägen versucht aber komme nicht so richtig weiter...
Könntet ihr die Beispiele vielleicht ein wenig mit Source versehen?

MFG Alex
Let's fetz sprach der Frosch und sprang in den Mixer
  Mit Zitat antworten Zitat
Alex_ITA01

Registriert seit: 22. Sep 2003
1.115 Beiträge
 
Delphi 12 Athens
 
#6

Re: 2 Arrays zu 1 Array zusammenfassen

  Alt 2. Nov 2004, 08:42
oh danke schön, ich war zu langsam
Let's fetz sprach der Frosch und sprang in den Mixer
  Mit Zitat antworten Zitat
Alex_ITA01

Registriert seit: 22. Sep 2003
1.115 Beiträge
 
Delphi 12 Athens
 
#7

Re: 2 Arrays zu 1 Array zusammenfassen

  Alt 2. Nov 2004, 09:29
Ich habe es jetzt so probiert aber irgendwie funktioniert das nicht wirklich...
Kannst du mir vielleicht sagen woran es liegen könnte?

Delphi-Quellcode:
var
  i,j : Integer;
  Found : Boolean;
  Item1 : TIntArray;
  Item2 : TIntArray;
  ArrayGesamt : TIntArray;
begin
  //Item1 und Item2 füllen...

  for i:= 1 to Length(Item2) do
  begin
    found := false;

    for j:= 1 to Length(Item1) do
     if Item2[i]=Item1[j] then
    begin
      found := true;
      break;
    end;

    if not found then
      ArrayGesamt[i] := Item1[j];
  end;
Let's fetz sprach der Frosch und sprang in den Mixer
  Mit Zitat antworten Zitat
Benutzerbild von fiasko
fiasko

Registriert seit: 10. Dez 2002
Ort: Dresden
506 Beiträge
 
#8

Re: 2 Arrays zu 1 Array zusammenfassen

  Alt 2. Nov 2004, 12:50
Hallo,

hast du dir mal den Quelltext genau angeschaut? Bei dem Code den du für "Eintragen!" ersetzt hast fügst du doch Elemente aus Array2 die nicht schon in Array1 sind in das neue Array ein. Dort fehlen dann natürlich alle aus array1.

Du hast jetzt 2 Möglichkeiten: wenn in Array1 keine doppelten Einträge enthalten sind bzw. du diese nicht raushaben willst brauchst du ein anderen Ersatz für "Eintragen!", etwas der Art:

array1[length(array1)+1]=array2[i]; Falls du auch keine doppelten Werte aus array1 haben willst, dann mußt du mein Konstrukt zwei mal machen, einmal mit ArrayGesamt und Array1 und dann nochmal ArrayGesamt mit Array2!
Thomas Liske
Posts comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
  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:07 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