AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi doppelte Einträge verhindern beim öffnen mit OpenDialog
Thema durchsuchen
Ansicht
Themen-Optionen

doppelte Einträge verhindern beim öffnen mit OpenDialog

Ein Thema von newuser01 · begonnen am 10. Sep 2006 · letzter Beitrag vom 10. Sep 2006
Antwort Antwort
Seite 1 von 2  1 2      
newuser01

Registriert seit: 31. Aug 2006
248 Beiträge
 
Delphi 7 Professional
 
#1

doppelte Einträge verhindern beim öffnen mit OpenDialog

  Alt 10. Sep 2006, 19:22
Hallo

Ich möchte gerne verhindern das wenn ich mit Opendialog Dateien öffne und in der ListBox eintragen lasse diese doppelt erscheinen

folgendes hab ich bereits versucht finde aber den Fehler nicht

Delphi-Quellcode:

var i,j,k: Integer;
slTmp:TStringList;
begin

slTmp := TStringList.Create;
slTmp.Clear;

try
  if OpenDialog2.Execute then
  begin

   for i := 0 to OpenDialog2.Files.Count - 1 do
   begin
    slTmp.Add(OpenDialog2.Files[i]);
   end;//for
   end;//if


        for j := 0 to slTmp.Count -1 do
        begin
          if slTmp.Strings[j] = lbAusgabe.Items.Strings[j] then
          begin
          slTmp.Delete(j);
          end;
        end;//for

        for k := 0 to slTmp.Count -1 do
        begin
          lbAusgabe.Items.Add(slTmp.Strings[k]);
        end;//for



except
end;//try


end;

Gruß
Holger
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: doppelte Einträge verhindern beim öffnen mit OpenDialog

  Alt 10. Sep 2006, 19:25
In einer FileListe eines OpenDialogs dürften eigentlich keinen doppelten Einträge sein.
Markus Kinzler
  Mit Zitat antworten Zitat
newuser01

Registriert seit: 31. Aug 2006
248 Beiträge
 
Delphi 7 Professional
 
#3

Re: doppelte Einträge verhindern beim öffnen mit OpenDialog

  Alt 10. Sep 2006, 19:28
nein ich meinte wenn in der ListBox schon die selbe Datei sein sollte wie die die ich öffnen möchte das soll verhindert werden also das 2. die gleiche Datei in der ListBox erscheint
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: doppelte Einträge verhindern beim öffnen mit OpenDialog

  Alt 10. Sep 2006, 19:36
Dann würde ich schon das Einbinden des Trings unterbinden:
Delphi-Quellcode:
for i := 0 to OpenDialog2.Files.Count - 1 do
begin
    if slTmp.IndexOf(OpenDialog2.Files[i]) <> 0 then slTmp.add( OpenDialog2.Files[i]);
Markus Kinzler
  Mit Zitat antworten Zitat
marabu

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

Re: doppelte Einträge verhindern beim öffnen mit OpenDialog

  Alt 10. Sep 2006, 19:37
Oder so:

Delphi-Quellcode:
procedure TDemoForm.AddButtonClick(Sender: TObject);
var
  i: Integer;
begin
  with OpenDialog, ListBox do
    if Execute then
    begin
      Items.BeginUpdate;
      for i := 0 to Pred(Files.Count) do
        if Items.IndexOf(Files[i]) < 0 then
          Items.Add(Files[i]);
      Items.EndUpdate;
    end;
end;
Grüße vom marabu
  Mit Zitat antworten Zitat
newuser01

Registriert seit: 31. Aug 2006
248 Beiträge
 
Delphi 7 Professional
 
#6

Re: doppelte Einträge verhindern beim öffnen mit OpenDialog

  Alt 10. Sep 2006, 19:52
DANKE !!!
  Mit Zitat antworten Zitat
Benutzerbild von Cyberbob
Cyberbob

Registriert seit: 24. Jan 2005
Ort: Karben
626 Beiträge
 
Delphi XE7 Architect
 
#7

Re: doppelte Einträge verhindern beim öffnen mit OpenDialog

  Alt 10. Sep 2006, 20:05
Wobei hier die Variante mit dem IndexOf zu bevorzugen wäre, da diese bei vielen Dateien und vielen Einträgen in der Liste schneller arbeitet, als das jedesmal bei einer neuen Datei die ganze Liste mit einer For-Schleife durchlaufen werden muss.
Christian
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: doppelte Einträge verhindern beim öffnen mit OpenDialog

  Alt 10. Sep 2006, 20:08
Zitat von Cyberbob:
Wobei hier die Variante mit dem IndexOf zu bevorzugen wäre, da diese bei vielen Dateien und vielen Einträgen in der Liste schneller arbeitet, als das jedesmal bei einer neuen Datei die ganze Liste mit einer For-Schleife durchlaufen werden muss.
Es arbeiten aber beide Versionen mit .IndexOf Du meinst aber wohl Achims Methode.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Cyberbob
Cyberbob

Registriert seit: 24. Jan 2005
Ort: Karben
626 Beiträge
 
Delphi XE7 Architect
 
#9

Re: doppelte Einträge verhindern beim öffnen mit OpenDialog

  Alt 10. Sep 2006, 20:20
Uups, mein Fehler!
Einfach ignorieren
Christian
  Mit Zitat antworten Zitat
newuser01

Registriert seit: 31. Aug 2006
248 Beiträge
 
Delphi 7 Professional
 
#10

Re: doppelte Einträge verhindern beim öffnen mit OpenDialog

  Alt 10. Sep 2006, 20:46
und wie sieht es aus wenn ich zb: ein ganzes Verzeichnis mit DirectoryListBox in die ListBox übernehme und dieses Verzeichnis 2 mal übernommen werden sollte (doppelt)?


Delphi-Quellcode:

procedure TfVerzeichnis.btnOKClick(Sender: TObject);
var
  I: Integer;
  slTmp: TStringList;
begin

slTmp := TStringList.Create;
slTmp.Clear;
btnOK.Font.Color := clRed;
btnOK.Caption := 'bitte warten...';
FindAllFiles(slTmp,DirectoryListBox1.Directory+'\','*.mp3', true, true, false);
btnOK.Font.Color := clBlack;
btnOK.Caption := 'OK';


for I := 0 to slTmp.Count - 1 do
begin
Form1.lbAusgabe.Items.Add(slTmp.Strings[i]);
end;

slTmp.Free;
fVerzeichnis.Close;

end;

Gruß
Holger
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 15:36 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