Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Offene Datei lesen? (https://www.delphipraxis.net/53479-offene-datei-lesen.html)

Rastaman 17. Sep 2005 13:06


Offene Datei lesen?
 
Moin. Ich wollte aus meinem Prog mit BlockRead aus einer Datei lesen und hab se dazu mit AssignFile und Reset geöffnet.
Allerdings kommt immer der E/A 32 Fehler, wenn die Datei schon offen ist.
Kann man das umgehn?

SirThornberry 17. Sep 2005 13:08

Re: Offene Datei lesen?
 
es kommt darauf an wie die Datei geöffnet ist (ob exclusiv oder nicht). Bei TFileStream kannst du angeben mit welchen Zugriff du die Datei öffnen willst. Wenn du die Rechte dabei nur auf Lesen setzt könntest du glück haben das du dann doch auf die Datei zugreifen kannst.

Rastaman 17. Sep 2005 13:12

Re: Offene Datei lesen?
 
Mir gefällt die alte Pascal Methode BlockRead/Write aber eigentlich besser und damit komm ich auch besser klar
als mit diesem neumodischem Krimskrams :mrgreen:

SirThornberry 17. Sep 2005 13:13

Re: Offene Datei lesen?
 
dann wirst du wohl mal die Hilfe zu den anderen nutzen müssen und schauen ob man da auch die Rechte ändern kann.

Rastaman 17. Sep 2005 14:09

Re: Offene Datei lesen?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Also ich hab mal das Prog angehängt.
Habs schon mit fmOpenRead und so versucht aber dann kam Division durch null und verschiedene EA Errors.
Vllt kanns ja mal einer überprüfen und mir die Fehler zeigen.
Ausserdem funktioniert die % Anzeige bei größeren dateien nicht.
Dann kommt zwischendurch mal -30 und so.

Thx!

Edit: Das Ganze stürzt einfach mal so ab und zu mit ner fetten Exception ab obwohl gar kein pack/entpack prozess im gange ist, und ich hab kp warum :gruebel:

SirThornberry 17. Sep 2005 16:36

Re: Offene Datei lesen?
 
Zitat:

Zitat von Gerrit89
...Habs schon mit fmOpenRead und so versucht aber dann kam Division durch null und verschiedene EA...

Also in dem angehängten kommt nirgends "fmOpenRead" vor!

Anhand deines Quelltextes sieht es so aus als ob du einfach mehrere Dateien in eine schreiben willst. Ist das richtig so? Wenn ja denk ich kann man das auch bedeutend einfacher machen.

Das bei großen Dateien die anzeige nicht stimmt könnte an einem überlauf liegen. Anstelle von
SizeDone * 100 div SizeFile
kann man auch
100 div SizeFile * SizeDone
schreiben.

alzaimar 17. Sep 2005 20:43

Re: Offene Datei lesen?
 
[quote="SirThornberry"]
Zitat:

Zitat von Gerrit89
Das bei großen Dateien die anzeige nicht stimmt könnte an einem überlauf liegen. Anstelle von
SizeDone * 100 div SizeFile
kann man auch
100 div SizeFile * SizeDone
schreiben.

Das bezweifle ich: Sei SizeFile = 101, dann ist(100 div 101)*SizeDone = 0 (wg. 100 div 101 = 0).
Solche Rechnungen macht man mit MulDiv, also MulDiv (100,SizeDone, SizeFile).

Ich meine, ich kann eine Datei, die von einer anderen Anwendung exlusiv zum lesen geöffnet wurde, nur per Copy anfassen. Aber so gehts: Wenn Die Datei gesperrt ist, dann kopiere sie und archiviere die Kopie :zwinker:

SirThornberry 18. Sep 2005 15:27

Re: Offene Datei lesen?
 
@alzaimar: Wenn eine Datei exclusiv geöffnet ist so geht selbst das kopieren nicht mehr (selbst übern Arbeitsplatz geht das dann nicht mehr)

alzaimar 19. Sep 2005 08:25

Re: Offene Datei lesen?
 
Echt? :oops: Ich hatte den Eindruck, es geht mit COPY.

Rastaman 19. Sep 2005 20:24

Re: Offene Datei lesen?
 
öh das geht eigentlich auch.
Ich glaube du verwechselst das mit ausschneiden...


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:42 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz