AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

2 Listen vergleichen

Ein Thema von blooddog_90 · begonnen am 14. Mai 2009 · letzter Beitrag vom 14. Mai 2009
Antwort Antwort
Seite 1 von 2  1 2   
blooddog_90

Registriert seit: 23. Sep 2007
24 Beiträge
 
Turbo Delphi für Win32
 
#1

2 Listen vergleichen

  Alt 14. Mai 2009, 13:01
Guten Tag Alle zusammen =)!


ich möchte zwei Listen vergleichen. Der Inhalt dieser sieht immer so aus:

213456
436745
3245
923476
12375
[...]

Die Inhalte der beiden Dateien unterscheiden sich stark. Aber ich will eben, dass Werte aus Datei 1 nicht in Datei 2 vorkommen. Aber die Werte die in Datei 1 existieren, jedoch aber nicht in Datei 2, sollen hinzugefügt werden zu Datei 2. - ja ^^

So würde meine fake-Prozedur aussehen:

Delphi-Quellcode:
var
dat1: TStringlist;
dat2: TStringlist;


procedure TForm1.FormCreate(Sender: TObject);
begin
  dat1:=Tstringlist.create;
  dat2:=Tstringlist.create;
  dat1.LoadFromFile('1.txt');
  dat2.loadfromfile('2.txt');
end;

// Werte löschen;
procedure TForm1.Button1Click(Sender: TObject);
var i,j,k:integer;
begin
  for i:=0 to dat2.count-1 do
    for j:=0 to dat1.count-1 do
      if dat2[i]=dat1[j] then
      //lösche dat2[i] in '2.txt';
 for k:=0 to dat1.count-1 do
  //dat[k] zu '2.txt' hinzufügen
end;
Wird das funktionieren? Und wie müsste der Code aussehen dort wo meine Kommentare jetzt sind? Bitte helft mir =)!
  Mit Zitat antworten Zitat
GHorn

Registriert seit: 24. Mär 2009
Ort: NRW
124 Beiträge
 
#2

Re: 2 Listen vergleichen

  Alt 14. Mai 2009, 13:20
Hi,

schon

dat2.Delete[i] probiert?

[edit=mkinzler]Delphi-Tag eingefügt Mfg, mkinzler[/edit]
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: 2 Listen vergleichen

  Alt 14. Mai 2009, 13:26
Hallo,

Zitat:
Aber ich will eben, dass Werte aus Datei 1 nicht in Datei 2 vorkommen.
Aber die Werte die in Datei 1 existieren, jedoch aber nicht in Datei 2, sollen hinzugefügt werden zu Datei 2.
Habe ich da jetzt einen Knick im Gehirn,
oder schliesst sich das nicht aus ?

< Aber ich will eben, dass Werte aus Datei 1 nicht in Datei 2 vorkommen. >
Also aus 2 löschen, wenn in 1

Delphi-Quellcode:
for iDat2:= dat2.Count-1 downto 0
begin
  if dat1.IndexOf(dat2[iDat])<>-1 then dat2.Delete(iDat2);
end;

Heiko
Heiko
  Mit Zitat antworten Zitat
blooddog_90

Registriert seit: 23. Sep 2007
24 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: 2 Listen vergleichen

  Alt 14. Mai 2009, 13:27
Nein. Aber das löscht ja auch nur in der Stringlist, richtig?
Ich wills ja in der Datei löschen. Und soweit ich weiß, ändert sich nichts innerhalb der Datei wenn ich was in der Stringlist lösche.
Aber trotzdem danke, für den Versuch

  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: 2 Listen vergleichen

  Alt 14. Mai 2009, 13:28
Du musst natürlich am Ende die Strigliste zurück in die Datei schreiben
Markus Kinzler
  Mit Zitat antworten Zitat
blooddog_90

Registriert seit: 23. Sep 2007
24 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: 2 Listen vergleichen

  Alt 14. Mai 2009, 13:30
Ja schreiben mit writeln.Oder?

Aber wie sag ich Delphi, das er Zeile 417 in 1.txt löschen oder überschreiben soll?
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.754 Beiträge
 
Delphi 10.4 Sydney
 
#7

Re: 2 Listen vergleichen

  Alt 14. Mai 2009, 13:32
dat2.savetoFile(FileName);
Klaus
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#8

Re: 2 Listen vergleichen

  Alt 14. Mai 2009, 13:40
Hallo,

Zitat:
Aber wie sag ich Delphi, das er Zeile 417 in 1.txt löschen oder überschreiben soll?
Gar nicht, geht auch nicht in Delphi.

Du lädst beide Dateien in die StringLists,
bearbeitest diese StringLisst und dann halt wieder zurückspeichern.


Heiko
Heiko
  Mit Zitat antworten Zitat
blooddog_90

Registriert seit: 23. Sep 2007
24 Beiträge
 
Turbo Delphi für Win32
 
#9

Re: 2 Listen vergleichen

  Alt 14. Mai 2009, 13:52
Was passiert bei:dat2.savetoFile(FileName); Wird dann der Inhalt von dat2 zur Datei hinzugefügt oder wird damit die Datei überschrieben?
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.754 Beiträge
 
Delphi 10.4 Sydney
 
#10

Re: 2 Listen vergleichen

  Alt 14. Mai 2009, 13:53
Zitat von blooddog_90:
Was passiert bei:dat2.savetoFile(FileName); Wird dann der Inhalt von dat2 zur Datei hinzugefügt oder wird damit die Datei überschrieben?
das zweite wird passieren

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

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 17:46 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