Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Textfile reset mit fmOpenRead -> E/A Fehler 32 (https://www.delphipraxis.net/185425-textfile-reset-mit-fmopenread-e-fehler-32-a.html)

baumina 9. Jun 2015 08:38

Delphi-Version: XE

Textfile reset mit fmOpenRead -> E/A Fehler 32
 
Wenn ich eine csv-Datei mit Excel offen habe, schaffe ich es nicht diese mit meinem Delphi ebenfalls nur lesend zu öffnen. Was mache ich falsch?

Delphi-Quellcode:
var
  fFile  : TextFile;

begin
  AssignFile(fFile,lSourceFile);
  FileMode := fmOpenRead;
  reset(fFile); // <- E/A Fehler
  CloseFile(fFile);
  FileMode := fmOpenReadWrite;
end;

Uwe Raabe 9. Jun 2015 08:45

AW: Textfile reset mit fmOpenRead -> E/A Fehler 32
 
Ich sehe da zwei Möglichkeiten:

1. Addiere zu dem fmOpenRead noch ein fmShareDenyNone.

2. Excel öffnet die Datei selbst exklusiv, dann hast du keine Chance.

Ich hatte da ein ähnliches Problem mit DXF-Dateien in AutoCAD. Die kann man auch nicht lesen, wenn sie in AutoCAD offen sind.

baumina 9. Jun 2015 08:59

AW: Textfile reset mit fmOpenRead -> E/A Fehler 32
 
Delphi-Quellcode:
FileMode := fmOpenRead OR fmShareDenyNone;
klappt leider nicht. Auch der Versuch über StringList.LoadFromFile zu gehen hat nicht geklappt.

Uwe Raabe 9. Jun 2015 10:12

AW: Textfile reset mit fmOpenRead -> E/A Fehler 32
 
Zitat:

Zitat von baumina (Beitrag 1304638)
Delphi-Quellcode:
FileMode := fmOpenRead OR fmShareDenyNone;
klappt leider nicht. Auch der Versuch über StringList.LoadFromFile zu gehen hat nicht geklappt.

LoadFromFile macht auch nichts anderes als fmOpenRead. Wenn auch kein anderes Programm (z.B. notepad oder die Vorschau im Windows Explorer) die Datei öffnen kann, dann sieht es schlecht aus.

baumina 9. Jun 2015 10:26

AW: Textfile reset mit fmOpenRead -> E/A Fehler 32
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1304653)
Wenn auch kein anderes Programm (z.B. notepad oder die Vorschau im Windows Explorer) die Datei öffnen kann, dann sieht es schlecht aus.

Mit Notepad, der Delphi-IDE oder WinVI kann ich die Datei aufmachen, mit WordPad nicht. Demnach muss es da eine Möglichkeit geben.

Uwe Raabe 9. Jun 2015 10:46

AW: Textfile reset mit fmOpenRead -> E/A Fehler 32
 
Ich sehe gerade, du benutzt
Delphi-Quellcode:
TextFile
- das ignoriert das Share-Bit!

Mach statt dessen einen
Delphi-Quellcode:
TFileStream
mit
Delphi-Quellcode:
fmOpenRead OR fmShareDenyNone
auf und übergib den dem
Delphi-Quellcode:
LoadFromStream
einer
Delphi-Quellcode:
TStringList
.

baumina 9. Jun 2015 10:55

AW: Textfile reset mit fmOpenRead -> E/A Fehler 32
 
Danke Uwe, diesen Weg hatte ich mir auch grad überlegt und siehe da, es klappt.

Delphi-Quellcode:
  aStream := TFileStream.Create(lSourceFile,fmOpenRead OR fmShareDenyNone);
  aList := TStringList.Create;
  aList.LoadFromStream(aStream);

p80286 9. Jun 2015 11:32

AW: Textfile reset mit fmOpenRead -> E/A Fehler 32
 
Noch ein kleiner Nachtrag aus der OH:
Zitat:

In Delphi legt FileMode den Zugriffsmodus fest, wenn typisierte und nicht typisierte Dateien (keine Textdateien) mit der Prozedur Reset geöffnet werden.
Gruß
K-H

baumina 9. Jun 2015 11:59

AW: Textfile reset mit fmOpenRead -> E/A Fehler 32
 
Aber auch schade, dass man der Stringlist beim LoadFromFile keinen Mode mitgeben kann.

p80286 9. Jun 2015 13:06

AW: Textfile reset mit fmOpenRead -> E/A Fehler 32
 
Zitat:

Zitat von baumina (Beitrag 1304673)
Aber auch schade, dass man der Stringlist beim LoadFromFile keinen Mode mitgeben kann.

ich glaube das ist Standardmäßig RO und ShareDenyNone.

Gruß
K-H


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:28 Uhr.
Seite 1 von 2  1 2      

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