![]() |
Re: Datei in Benutzung
Und in welcher Instanz? Wäre evtl. besser, eine kleine Text-Exe zu schreiben, die einfach nur versucht, die Datei nach dem Exklusiven Öffnen durch das Hauptprogramm zu laden.
|
Re: Datei in Benutzung
Mit instanz meine ich wenn ich die exe das 2 mal starte, hab mir gerade mal zuhause ein kleines Netzwek aufgebaut und das mal mit eionem 2 rechner ausprobiert ist aber der gleiche fehler
|
Re: Datei in Benutzung
Und ich meine, welche Instanz löst den Fehler aus? Die erste, die die Datei offen hält, oder die zweite, die es auch versucht? Das dürfte schwierig sein, das herauszufinden, deshalb mein Vorschlag mit dem Testprogramm.
|
Re: Datei in Benutzung
die Zweite löst es aus wie gesagt beim erstenmal geht es aber ich darf die gesperrte Datei kein zweites mal versuchen zu öffnen
|
Re: Datei in Benutzung
Dann zeig mal den Code des zweiten.
|
Re: Datei in Benutzung
Macht es eigentlich was aus, wenn die Datei in einem MemoryStream gespeichert wird
Delphi-Quellcode:
Was meinst du mit Code des Zweiten
procedure TForm7.GridSpeichern;
var FileStream: TMemoryStream; Grid :TFileName; x, y, row, col,leng :Word; st :string; begin Label3.Caption:= ComboBox1.Text; begin FileStream:= TMemoryStream.Create; //MemoryStream erzeugen col:= StringGrid1.ColCount -1; //Ab Spalte 0 row:= StringGrid1.RowCount -1; //Ab Zeile 0 FileStream.Write(row, SizeOf(Word)); // Zeilen zum Schreiben öffnen FileStream.Write(col, SizeOf(Word)); // Spalten zum schreiben öffnen for x:= 0 to row do //Alle Spalten in die Variable übergeben for y:= 0 to col do //Alle Zeilen in die Variable übergeben begin st:= StringGrid1.Cells[y,x]; leng:= length(st); FileStream.Write(leng, SizeOf(Word)); FileStream.Write(st[1], leng); end; Grid:= ShellTreeView1.SelectedFolder.PathName+'\'+ ComboBox4.Text +'.pla'; FileStream.SaveToFile(Grid); FileStream.Free; end; end; |
Re: Datei in Benutzung
Beim 2. Programm tritt doch der Fehler auf. Dessen Code hätte ich gern gesehen.
|
Re: Datei in Benutzung
Hab ich mich wieder einmal so blöd ausgedrückt??
ich habe nur ein Programm das über das Netzwerk auf die Dateien zugreift und das über die FileListbox Ich habe das Programm (Das gleiche Programm) auf 2 verschiedennen rechnern im Netz installiert Und die Procedure zum Laden steht in Post #19 mehr hab ich net |
Re: Datei in Benutzung
Dann wird der Fehler wohl beim Erzeugen des Streams auftreten (2 mal exklusiv geht eben nicht, das heißt ja exklusiv). Das müsste man abfangen.
|
Re: Datei in Benutzung
Ersetze im Quelltext von Posting #19
Delphi-Quellcode:
in den Zeilen 6 und 7 durch
if FFileStream1 <> nil then
FFileStream1.Free;
Delphi-Quellcode:
Der Fehler tritt auf, weil beim dritten Versuch, die Datei zu öffnen, FFileStream immer noch ungleich nil ist.
FreeAndNil(FFileStream1);
jkr |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:18 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