Delphi-PRAXiS
Seite 3 von 4     123 4      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Datei in Benutzung (https://www.delphipraxis.net/119875-datei-benutzung.html)

DeddyH 2. Sep 2008 17:14

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.

SaFu 2. Sep 2008 17:20

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

DeddyH 2. Sep 2008 17:21

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.

SaFu 2. Sep 2008 17:25

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

DeddyH 2. Sep 2008 17:33

Re: Datei in Benutzung
 
Dann zeig mal den Code des zweiten.

SaFu 2. Sep 2008 17:36

Re: Datei in Benutzung
 
Macht es eigentlich was aus, wenn die Datei in einem MemoryStream gespeichert wird

Delphi-Quellcode:
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;
Was meinst du mit Code des Zweiten

DeddyH 2. Sep 2008 17:39

Re: Datei in Benutzung
 
Beim 2. Programm tritt doch der Fehler auf. Dessen Code hätte ich gern gesehen.

SaFu 2. Sep 2008 17:51

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

DeddyH 2. Sep 2008 17:59

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.

jottkaerr 3. Sep 2008 06:08

Re: Datei in Benutzung
 
Ersetze im Quelltext von Posting #19
Delphi-Quellcode:
if FFileStream1 <> nil then
  FFileStream1.Free;
in den Zeilen 6 und 7 durch
Delphi-Quellcode:
FreeAndNil(FFileStream1);
Der Fehler tritt auf, weil beim dritten Versuch, die Datei zu öffnen, FFileStream immer noch ungleich nil ist.

jkr


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:14 Uhr.
Seite 3 von 4     123 4      

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