Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Abfage einer FileListbox auf doppelte dateien (https://www.delphipraxis.net/96935-abfage-einer-filelistbox-auf-doppelte-dateien.html)

SaFu 1. Aug 2007 22:43


Abfage einer FileListbox auf doppelte dateien
 
hi leutz

Ich denke mal die überschrift sagt alles

so gehts nicht

Delphi-Quellcode:
 if FileListBox1.Items.IndexOf(FileListbox1) then
    begin
      MessageDlgPos('Datei vorhenaden',mtInformation,[mbOk],0,290,300);
     end
gruss sascha :stupid:

DelphiKlaus 2. Aug 2007 07:10

Re: Abfage einer FileListbox auf doppelte dateien
 
Hallo,

wenn, dann vielleicht so:

Delphi-Quellcode:
  if FileListBox1.Items.IndexOf (FileListbox1.Items [FileListBox1.ItemIndex]) then
    MessageDlgPos ('Datei vorhanden', mtInformation, [mbOk], 0, 290, 300);
Dann wird aber nur überprüft, ob der angewählte Eintrag doppelt vorkommt. Wenn Du alle doppelten haben willst:

Delphi-Quellcode:
  for Loop1 := 0 to Pred (FileListBox1.Items.count) do
    for Loop2 := Succ (Loop1) to Pred (FileListBox1.Items.count) do
      if FileListBox1.Items.IndexOf (FileListbox1.Items [Loop2]) <> Loop2 then
        MessageDlgPos ('Datei vorhanden', mtInformation, [mbOk], 0, 290, 300);
Habs nicht getestet; aber so in etwa sollte es gehen.

Viele Grüße

Klaus

SaFu 2. Aug 2007 18:35

Re: Abfage einer FileListbox auf doppelte dateien
 
Leider geht das doch nicht so

Delphi-Quellcode:
procedure TForm7.speichern;
begin
if FileListBox1.Items.IndexOf (FileListbox1.Items [FileListBox1.ItemIndex])then
    MessageDlgPos ('Wollen Sie Wirklich diese Datei überschreiben', mtInformation, [mbYes,mbNo], 0, 290, 300):= mbYes then
   begin
    speichern;
   end;
end;
es muss nür abgfragt werden ob die datei vorhanden ist in der FilListBox und wen ja nur fragen ob sie überschrieben werden soll oder nicht
????

marabu 2. Aug 2007 18:42

Re: Abfage einer FileListbox auf doppelte dateien
 
Hallo Sascha,

kannst du mal genauer beschreiben, was du unter Doppelte Datei verstehst?

Jede Datei in deiner FileListBox wird wohl auch auf der Platte existieren - und in der FileListBox selbst werden wohl nie zwei gleiche Dateinamen stehen.

Freundliche Grüße

SaFu 2. Aug 2007 18:48

Re: Abfage einer FileListbox auf doppelte dateien
 
ja stimmt doof erklärt

wenn die datei unter dem Namen sascha schon in der FileListBox enthalten ist und ich speicher jetzt nochmal eine datei unter sascha wird die alte datei einfach ohne abfrage überschrieben und jetzt möchte ich einfach vorher eine abfrage einbauen

z.b sowas nur für die fileListBox weiss ich nicht wie das geht
Delphi-Quellcode:
  if ComboBox3.Items.IndexOf(ComboBox4.text)> -1 then
     begin
      if MessageDlgPos('Wollen Sie wirklich die Datei überschreiben? '
       +'',mtInformation,[mbYes,mbNo],0,290,300) = mrYes then
         begin
          speichern
         end;

marabu 2. Aug 2007 18:58

Re: Abfage einer FileListbox auf doppelte dateien
 
Hallo Sascha,

warum prüfst du nicht gleich, ob die fragliche Datei auf der Platte existiert?

Delphi-Quellcode:
var
  fn: TFileName;
begin
  with FileListBox do
    fn := {Pfad + } Items[ItemIndex];
  if not FileExists(fn) or AllowReplace(fn) then
    DateiSpeichern(fn);
end;
Freundliche Grüße

SaFu 2. Aug 2007 19:01

Re: Abfage einer FileListbox auf doppelte dateien
 
Also ghet das net so das ich einfach die FileListBox abfrage sonnst wäre es koplizierter mit dem code weil der inhalt der fileListBox sich stätig ändert aus unterschiedlichen ordnern

marabu 2. Aug 2007 19:16

Re: Abfage einer FileListbox auf doppelte dateien
 
Was du wirklich vor hast, das kann ich nicht mal ahnen. Aber irgendwo hast du einen Dateinamen und einen Inhalt für diese Datei und du möchtest sicher stellen, dass diese Datei nur nach Beantwortung einer Sicherheitsrückfrage überschrieben wird. Dabei helfen dir FileEXists() und deine eigene Funktion AllowReplace(), in der du deinen MessageDialog unterbringen kannst. Die FileListBox ist für mich nur Beiwerk. Letzte Sicherheit gibt dir nur der Existenztest auf der Platte.

Wenn ich das Problem noch nicht erkennen sollte, dann kannst du es ja vielleicht noch etwas besser beschreiben.

SaFu 2. Aug 2007 19:42

Re: Abfage einer FileListbox auf doppelte dateien
 
sorry bin ja auch ne hohlbirne hab ja ne Combobox worüber ich diese abfrage gestallten kann

Delphi-Quellcode:
 if FileListBox1.Items.IndexOf(ComboBox4.Text+'.txt') >-1 then
   begin
    if MessageDlgPos ('Wollen Sie Wirklich diese Datei überschreiben',mtInformation,[mbYes,mbNo],0,290,300)= mrYes then
     begin


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