AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Mehrere Textdateien aus Opendialog heraus ausführen
Thema durchsuchen
Ansicht
Themen-Optionen

Mehrere Textdateien aus Opendialog heraus ausführen

Ein Thema von illbytes · begonnen am 23. Nov 2006 · letzter Beitrag vom 29. Nov 2006
Antwort Antwort
Seite 1 von 3  1 23      
illbytes

Registriert seit: 22. Nov 2006
14 Beiträge
 
Delphi 3 Professional
 
#1

Mehrere Textdateien aus Opendialog heraus ausführen

  Alt 23. Nov 2006, 10:48
Hallo miteinander,

weiss vielleicht jemand, wie man unter Delphi 3 mehrere Dateien aus Dem OpenDialog heraus der Reihe nach ausführen kann?

Also ich habe im Objektinspektor unter Eigenschaften ->Options -> ofAllowMultiSelect auf True gesetzt.

Im Programm kann ich nun mehrere Files selektieren und diese Werden im Open Dialog unter Dateiname: in "Filename1.txt""Filename2.txt" usw. angezeigt.

Nur bei Programmausführung wird nur die erste Datei Ausgeführt. :-((

-- Was muss ich noch da reinprogrammieren, das alle selektierten Dateien in dem Verzeichnis bearbeitet werden?

-- Was muss ich noch da reinprogrammieren, das alle Dateien aus dem ausgewählten Verzeichnis bearbeitet werden?

-- Gibt es ne Grenze wenn zu viele Dateien im Verzeichnis sind und wie muss man dann vorgehen?




Delphi-Quellcode:
 procedure TForm1.BitBtn1Click(Sender: TObject);
var
  Datei : Textfile;
  Zeilenpuffer,Filename : String;

begin
  if OpenDialog1.Execute then

   AssignFile(Datei, Opendialog1.Filename);
    {$I-}
    Reset(Datei);
    {$I+}
     if IOResult <> 0 then
      begin
        MessageDlg('Fehler beim Zugriff auf die Datei', mtWarning, [mbOk], 0);
        exit;
        halt
      end
      else
       MessageDlg('Dateigröße in Bytes: ' + IntToStr(FileSize(Datei)),
       mtInformation, [mbOk], 0);
       Memo1.Lines.Clear;
         while not EOF(Datei)do
           Begin
             Readln( Datei, Zeilenpuffer);
             Memo1.Lines.Add(Zeilenpuffer);
       end;
       Reihe:=Reihe+1;
       Edit1.Text:=IntToStr(Reihe);
       CloseFile(Datei);
end;
[edit=Luckie]Delphi-Tag korrigiert. Mfg, Luckie[/edit]
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Mehrere Textdateien aus Opendialog heraus ausführen

  Alt 23. Nov 2006, 10:52
Die Dateinamen bfeinden sich in der Eigenschaft TOpenDialog.Files. Das ist eine ganz normale StringListe.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
illbytes

Registriert seit: 22. Nov 2006
14 Beiträge
 
Delphi 3 Professional
 
#3

Re: Mehrere Textdateien aus Opendialog heraus ausführen

  Alt 23. Nov 2006, 11:20
Danke für den Tipp :-))

habe wohl nun ein Schleifenproblem

es wird nach wie Vor scheinbar nur eine Datei eingelesen
im Memo1 sieht man allerdings die Letzte Datei der Liste.

Es sollten im Memo nun alle Files sichtbar sein. Tun sie aber nicht.

(Anfängerpech)


Delphi-Quellcode:

begin
  if OpenDialog1.Execute then
   with OpenDialog1.Files do begin
   AssignFile(Datei, Opendialog1.Filename);
    {$I-}
    Reset(Datei);
    {$I+}
     if IOResult <> 0 then
      begin
        MessageDlg('Fehler beim Zugriff auf die Datei', mtWarning, [mbOk], 0);
        exit;
        halt
      end
      else
       MessageDlg('Dateigröße in Bytes: ' + IntToStr(FileSize(Datei)),
       mtInformation, [mbOk], 0);
      { Memo1.Lines.Clear;}
         while not EOF(Datei)do
           Begin
             Readln( Datei, Zeilenpuffer);
             Memo1.Lines.Add(Zeilenpuffer);
       end;
       Reihe:=Reihe+1;
       Edit1.Text:=IntToStr(Reihe);
       CloseFile(Datei);
   end;
end;
[edit=Luckie]Delphi-Tag korrigiert. Du musst die Tags auch schließen mit [/ Delphi]. Mfg, Luckie[/edit]
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Mehrere Textdateien aus Opendialog heraus ausführen

  Alt 23. Nov 2006, 11:28
Du hast kein schleifen-Problem, weil du gar keine Schleife hast. Zumindest sehe ich keine
Schleife, die über die Einträge der Eigenschaft Files läuft.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
marabu

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

Re: Mehrere Textdateien aus Opendialog heraus ausführen

  Alt 23. Nov 2006, 12:52
Herzlich willkommen in der Delphi-PRAXiS, illbytes.

Wenn du ein Schleifenproblem haben möchtest, dann musst du eher so an die Sache rangehen:

Delphi-Quellcode:
var
  s: TStrings;
  i: Integer;
begin
  with OpenDialog do
    if Execute then
    begin
      s := TStringList.Create;
      Memo.Clear;
      try
        for i := 0 to Pred(Files.Count) do
        begin
          s.LoadFromFile(Files[i]);
          Memo.Lines.AddStrings(s);
        end;
      finally
        s.Free;
      end;
   end;
end;
Freundliche Grüße vom marabu
  Mit Zitat antworten Zitat
illbytes

Registriert seit: 22. Nov 2006
14 Beiträge
 
Delphi 3 Professional
 
#6

Re: Mehrere Textdateien aus Opendialog heraus ausführen

  Alt 23. Nov 2006, 14:04
Danke für die Tipps :-))

ich versuch das mal nachzuvollziehen.
  Mit Zitat antworten Zitat
illbytes

Registriert seit: 22. Nov 2006
14 Beiträge
 
Delphi 3 Professional
 
#7

Re: Mehrere Textdateien aus Opendialog heraus ausführen

  Alt 23. Nov 2006, 21:44
So nun klappts auch hat ein wenig gedauert.

Ich stell das mal hier rein, ist auch für andere Anfänger bestimmt nicht uninteressant.

Delphi-Quellcode:

procedure TForm1.BitBtn1Click(Sender: TObject);
var
  Datei : Textfile;
  Zeilenpuffer,Filename : String;
  j : integer;

begin
  if OpenDialog1.Execute then
     for j := 0 to opendialog1.Files.Count-1 do
     begin
       AssignFile(Datei, OpenDialog1.Files[j]);
    {$I-}
    Reset(Datei);
    {$I+}
     if IOResult <> 0 then
      begin
        MessageDlg('Fehler beim Zugriff auf die Datei', mtWarning, [mbOk], 0);
        exit;
        halt
      end
      else
       MessageDlg('Dateigröße in Bytes: ' + IntToStr(FileSize(Datei)),
       mtInformation, [mbOk], 0);
         while not EOF(Datei)do
           Begin
             Readln( Datei, Zeilenpuffer);
             Memo1.Lines.Add(Zeilenpuffer);
       end;
       Reihe:=Reihe+1;
       Edit1.Text:=IntToStr(Reihe);
       CloseFile(Datei);
end;
end;
Das andere Beispiel finde ich auch ganz interessant und es funktionierte direkt.

Nur hatte ich Probs. (Fehlermeldung) TStrings und Strings sind nicht miteinander vereinbar als ich versucht hatte S dem Zeilenpuffer zuzuweisen um den Text in meinem Programmrest weiterzuverarbeiten.

Würd mich schon interessieren wie man evtl. TStrings in Strings konvertiert oder mit TStrings Textbestandteile (Wörter, Datum, Zeit im String) untersucht (suchen, finden ersetzen).

Nochmals Danke für die prompten Anregungen.

Schönen Gruß
  Mit Zitat antworten Zitat
marabu

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

Re: Mehrere Textdateien aus Opendialog heraus ausführen

  Alt 24. Nov 2006, 07:34
Guten Morgen,

Zitat von illbytes:
... TStrings und Strings sind nicht miteinander vereinbar als ich versucht hatte S dem Zeilenpuffer zuzuweisen um den Text in meinem Programmrest weiterzuverarbeiten. ...
ZeilenPuffer := s.Text;
Zitat von illbytes:
... Würd mich schon interessieren wie man evtl. TStrings in Strings konvertiert oder mit TStrings Textbestandteile (Wörter, Datum, Zeit im String) untersucht (suchen, finden ersetzen).
Du kannst ein Objekt der Klasse TStrings in einen einzigen String wandeln (siehe oben) oder als eine Folge von Strings verarbeiten:

Delphi-Quellcode:
var
  i: Integer;
  s: TStrings;
begin
  // ...
  for i := 0 to Pred(s.Count) do
    ShowMessage(s[i]);
  // ...
end;
Suchen und Ersetzen kannst du also auf dem gesamten Text oder den einzelnen Zeilen.

Freundliche Grüße
  Mit Zitat antworten Zitat
illbytes

Registriert seit: 22. Nov 2006
14 Beiträge
 
Delphi 3 Professional
 
#9

Re: Mehrere Textdateien aus Opendialog heraus ausführen

  Alt 27. Nov 2006, 15:47
Halllo zusammen,

nochmal Danke für die Tipps.

Das Öffnen funktioniert und auch meine Weiterverarbeitung.

Bei beiden Möglichkeiten stellt sich aber leider heraus das ich nur ca 150-160 Dateien öffnen kann. Wähle ich das gesamte Verzeichnis aus, dann wird überhaupt keine Textdatei eingelesen.

Die einzulesenden Textdateien haben 2KB Einzeldateigrösse demnach glaube ich nicht an ein Speicherproblem.

Es scheint das dort noch ein Fehler der Fehler oder eine Limitierung vorliegt

Es muss doch möglich sein so ca. 500 bis 1000 Dateien einzulesen.

habe bis jetzt nichts darüber gefunden wie das Prob zu beheben ist.


Vielleicht kennt ihr ja das Problem.

Schöne Grüße
  Mit Zitat antworten Zitat
marabu

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

Re: Mehrere Textdateien aus Opendialog heraus ausführen

  Alt 27. Nov 2006, 16:15
Hi,

wenn du es richtig machst, dann hast du immer nur eine Eingabedatei offen. Wie sieht dein Code denn jetzt aus?

Freundliche Grüße
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 13:06 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