AGB  ·  Datenschutz  ·  Impressum  







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

Mehrere Dateien auslesen?

Ein Thema von gnui · begonnen am 10. Nov 2007 · letzter Beitrag vom 10. Nov 2007
Antwort Antwort
Seite 1 von 2  1 2      
gnui

Registriert seit: 8. Jun 2007
40 Beiträge
 
#1

Mehrere Dateien auslesen?

  Alt 10. Nov 2007, 11:36
Hi, also ich möchte mit OpenDialog von mehreren Dateien das Datum auslesen und diese dann in einem Feld gespeichert haben.
Bisher habe ich es nur hinbekommen von einer Datei das Datum auszulesen.

Delphi-Quellcode:
var
  Form1: TForm1;
   fileName : string;
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  fileDate : Integer;
begin
   fileDate := FileAge(fileName);

  if fileDate > -1 then
    ShowMessage(fileName+' Datum = '+
                DateToStr(FileDateToDateTime(fileDate)));
end;

procedure TForm1.auswhlen1Click(Sender: TObject);
begin
OpenDialog1.Execute;
filename := opendialog1.FileName;
end;
ich weiß auch wie ich opendialog dazu bringe mehrer dateien auswählbar zu machen aber dann fehlts mir.

danke schonmal
  Mit Zitat antworten Zitat
Prototypjack

Registriert seit: 2. Feb 2003
611 Beiträge
 
Delphi 2009 Professional
 
#2

Re: Mehrere Dateien auslesen?

  Alt 10. Nov 2007, 11:42
Moin,

Du kannst Multi-Selektion vom Opendialog so auslesen:

Delphi-Quellcode:
var
  I: Integer;
begin
  if dlgOpen1.execute then
  begin
    for I := 0 to dlgOpen1.Files.Count - 1 do
    begin
      MachWas(dlgOpen1.Files.Strings[I]);
    end;
  end;
end;
Grüße,
Max
Max
„If you have any great suggestions, feel free to mail me, and I'll probably feel free to ignore you.“ . Linus Torvalds
  Mit Zitat antworten Zitat
marabu

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

Re: Mehrere Dateien auslesen?

  Alt 10. Nov 2007, 12:04
Hallo Max,

weil Strings die default property ist, kannst du auch so zugreifen:

Delphi-Quellcode:
begin
  with OpenDialog do
  begin
    Options := Options + [ofAllowMultiSelect];
    if Execute then
      for i := 0 to Pred(Files.Count) do
        DoProcess(Files[i]);
  end;
end;
Grüße vom marabu
  Mit Zitat antworten Zitat
Prototypjack

Registriert seit: 2. Feb 2003
611 Beiträge
 
Delphi 2009 Professional
 
#4

Re: Mehrere Dateien auslesen?

  Alt 10. Nov 2007, 12:22
Moin,

Ah, sehr interessant. Fiel mir bis jetzt noch gar nicht auf.

Danke für den Hinweis

Grüße,
Max
Max
„If you have any great suggestions, feel free to mail me, and I'll probably feel free to ignore you.“ . Linus Torvalds
  Mit Zitat antworten Zitat
gnui

Registriert seit: 8. Jun 2007
40 Beiträge
 
#5

Re: Mehrere Dateien auslesen?

  Alt 10. Nov 2007, 12:45
Delphi-Quellcode:
procedure TForm1.auswhlen1Click(Sender: TObject);
var i:integer;
begin
OpenDialog1.Execute;

for i := 1 to 10 do
  begin
        filename[i] := opendialog1.Files.Strings[i];
        auslesen(Filename[i],i);
  end;
end;
das habe ich jetzt, im einzelschrittmodus seh ich auch wie er verschiedene dateien anwählt, aber sobal er die 2. hat sagt er "listindex überschreitet maximum (2)" oder so ähnlich.
wo liegt mein fehler?
  Mit Zitat antworten Zitat
marabu

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

Re: Mehrere Dateien auslesen?

  Alt 10. Nov 2007, 13:01
Files ist eine StringList - deren Items werden von 0 bis Pred(Count) indiziert ...
  Mit Zitat antworten Zitat
gnui

Registriert seit: 8. Jun 2007
40 Beiträge
 
#7

Re: Mehrere Dateien auslesen?

  Alt 10. Nov 2007, 13:08
Delphi-Quellcode:
for i := 0 to Pred(Files.Count) do
  begin
        filename[i] := opendialog1.Files.Strings[i];
        auslesen(Filename[i],i);
  end;
bei dem sagt er mir aber dass "files" ein undefinierter bezeichner ist, sorry ich kenn mich da nicht so aus, ich glaub das ist was ganz dummes was ich hier falsch mache.
  Mit Zitat antworten Zitat
gnui

Registriert seit: 8. Jun 2007
40 Beiträge
 
#8

Re: Mehrere Dateien auslesen?

  Alt 10. Nov 2007, 13:10
ah ich habs, vor das files musste ja noch ein "opendialog1."
jetzt klappt es, ich dank euch allen für die super hilfe
  Mit Zitat antworten Zitat
gnui

Registriert seit: 8. Jun 2007
40 Beiträge
 
#9

Re: Mehrere Dateien auslesen?

  Alt 10. Nov 2007, 13:15
sorry wenn ich hier wieder was neues schreibe aber ganz 100%ig geht es noch nocht, zwar zeigt er nun alles exakt an aber wenn ich das programm beenden will gibt es eine fehlermeldung:

"Im Projekt Projekt2.exe ist eine Exception der Klasse EAccessViolation aufgetreten. Meldung: ' Zugriffsverletzung bei Adresse 00403E46 in Modul 'Projekt2.exe'. Lesen von Adresse 3682943B'. Prozess wurde angehalten. Mit einzelne Anweisung oder Start fortsetzen."

mh ich denke irgendwie hat er ein Problem mit den Zugriffsrechten oder so, was ich da herauslesen kann.

hier mein jetziger kompletter quellcode:

Delphi-Quellcode:
var
  Form1: TForm1;
   fileName :array[1..10] of string;
   fileDate :array[1..10] of Integer;
implementation

{$R *.dfm}
procedure auslesen(i:integer);
begin
fileDate[i] := FileAge(fileName[i]);
end;

procedure TForm1.Button1Click(Sender: TObject);

var i:integer;
begin
  for i := 0 to Pred(opendialog1.Files.Count) do
  begin
  if fileDate[i] > -1 then
    memo1.lines.add(fileName[i]+' last modified date = '+
                DateToStr(FileDateToDateTime(fileDate[i])));
  end;
end;

procedure TForm1.auswhlen1Click(Sender: TObject);
var i:integer;
begin
OpenDialog1.Execute;

for i := 0 to Pred(opendialog1.Files.Count) do
  begin
        filename[i] := opendialog1.Files.Strings[i];
        auslesen(i);
  end;
end;
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: Mehrere Dateien auslesen?

  Alt 10. Nov 2007, 13:22
Deklarier die Arrays mal um, statt von Index 1 bis 10 auf Index 0 bis 9.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  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 09: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