AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Datei in Benutzung

Ein Thema von SaFu · begonnen am 2. Sep 2008 · letzter Beitrag vom 3. Sep 2008
Antwort Antwort
Seite 1 von 4  1 23     Letzte » 
Benutzerbild von SaFu
SaFu

Registriert seit: 8. Nov 2006
1.360 Beiträge
 
Delphi 10.3 Rio
 
#1

Datei in Benutzung

  Alt 2. Sep 2008, 16:09
Hi

Ich weis das Thema wurde oft genug behandelt nd hab hier im Forum auc schon geguckt. Hab aber immer nur sachen gefunden, wie man abfragt ob eine Datei in Benutzung ist.

Ich wollte meiner LadeProcedure irgenwie klarmachen, das sie die Datei als "In Benutzung" kennzeinen soll.

Was gibt es da so

hab das hier um meine Datei ins Grid zu Laden beim Speichern soll das Flag wieder zurückgesetzt werden

Delphi-Quellcode:
procedure TForm7.GridLaden;
var x, y, row, col,len :Word;
    Grid :TFileName;
    FileStream :TMemoryStream;
    buff :string;
begin
  FileStream:= TMemoryStream.Create; //MemoryStream erzeugen

  Grid:= FileListbox1.FileName;
  FileStream.LoadFromFile(Grid);

  FileStream.Read(row, SizeOf(Word));
  FileStream.Read(col, SizeOf(Word));

  for x:= 0 to row do
   for y:= 0 to col do
    begin
     FileStream.Read(len, SizeOf(Word));
     SetLength(buff, len);
     FileStream.Read(buff[1], len);
     StringGrid1.Cells[y,x]:= buff;
    end;
   FileStream.Free;
end;
Gruß sascha
"... Wie gesagt, die Nutzer von 10, 12, 14 Zoll Display's werden deine Seite nicht in voller Pracht sehen können, ...

Surft Ihr mit dem Taschenrechner?"
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#2

Re: Datei in Benutzung

  Alt 2. Sep 2008, 16:12
Hi,

Du willst, wenn jemand anders diese Datei auch öffnen will, dass er die Meldung bekommt "Datei ist in Benutzung"?
  Mit Zitat antworten Zitat
Benutzerbild von SaFu
SaFu

Registriert seit: 8. Nov 2006
1.360 Beiträge
 
Delphi 10.3 Rio
 
#3

Re: Datei in Benutzung

  Alt 2. Sep 2008, 16:13
Genau kurzgesagt
"... Wie gesagt, die Nutzer von 10, 12, 14 Zoll Display's werden deine Seite nicht in voller Pracht sehen können, ...

Surft Ihr mit dem Taschenrechner?"
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#4

Re: Datei in Benutzung

  Alt 2. Sep 2008, 16:13
Nimm einen TFilestream anstatt den TMemoryStream und als Modus nimmst Du fmShareExclusive
  Mit Zitat antworten Zitat
Benutzerbild von SaFu
SaFu

Registriert seit: 8. Nov 2006
1.360 Beiträge
 
Delphi 10.3 Rio
 
#5

Re: Datei in Benutzung

  Alt 2. Sep 2008, 16:46
So hab es mal umgebaut aber ich kann es Trotzdem noch mit einer neuen Instanz meines Programmes ein Zweites mal Öffnen

Delphi-Quellcode:
procedure TForm7.GridLaden;
var x, y, row, col,len :Word;
    Grid :TFileName;
    FFileStream1: TFileStream;
    buff :string;
begin
  FFileStream1 := TFileStream.Create(FileListbox1.FileName, fmOpenRead, fmShareExclusive);

  FFileStream1.Read(row, SizeOf(Word));
  FFileStream1.Read(col, SizeOf(Word));

  for x:= 0 to row do
   for y:= 0 to col do
    begin
     FFileStream1.Read(len, SizeOf(Word));
     SetLength(buff, len);
     FFileStream1.Read(buff[1], len);
     StringGrid1.Cells[y,x]:= buff;
    end;
   FFileStream1.Free;
end;
"... Wie gesagt, die Nutzer von 10, 12, 14 Zoll Display's werden deine Seite nicht in voller Pracht sehen können, ...

Surft Ihr mit dem Taschenrechner?"
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#6

Re: Datei in Benutzung

  Alt 2. Sep 2008, 16:47
FFileStream1 := TFileStream.Create(FileListbox1.FileName, fmOpenRead, fmShareExclusive); Was ist das o.O

FFileStream1 := TFileStream.Create(FileListbox1.FileName, fmOpenRead or fmShareExclusive);
  Mit Zitat antworten Zitat
Benutzerbild von SaFu
SaFu

Registriert seit: 8. Nov 2006
1.360 Beiträge
 
Delphi 10.3 Rio
 
#7

Re: Datei in Benutzung

  Alt 2. Sep 2008, 16:50
Nee geht immernoch selbst wenn ich es so schreibe


FFileStream1 := TFileStream.Create(FileListbox1.FileName,fmShareExclusive);
"... Wie gesagt, die Nutzer von 10, 12, 14 Zoll Display's werden deine Seite nicht in voller Pracht sehen können, ...

Surft Ihr mit dem Taschenrechner?"
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.242 Beiträge
 
Delphi 10.4 Sydney
 
#8

Re: Datei in Benutzung

  Alt 2. Sep 2008, 16:57
Zitat von Delphi-Hilfe:
Die Methode erzeugt eine Instanz von TFileStream.

constructor Create(const FileName: string; Mode: Word); Beschreibung

Mit Create wird ein Datei-Stream zum Lesen aus oder Schreiben in die benannte Datei instantiiert. In den Parametern wird der Name und der Öffnungsmodus der Datei übergeben.

Der Parameter Mode steuert, auf welche Art die Datei geöffnet wird. Der Parameter besteht aus zwei Elementen: Eines beschreibt das Öffnen, und eines legt den Modus für gemeinsamen Zugriff fest. Beide Elemente werden durch ein logisches ODER verknüpft. Der Öffnen-Modus kann folgende Konstantenwerte annehmen:

Wert Bedeutung

fmCreate Es wird eine Datei mit dem angegebenen Namen angelegt. Ist eine Datei mit diesem Namen bereits vorhanden, wird die Datei zum Schreiben geöffnet.
fmOpenRead Die Datei wird ausschließlich zum Lesen geöffnet.
fmOpenWrite Die Datei wird ausschließlich zum Schreiben geöffnet. Beim Schreiben in die Datei wird der aktuelle Inhalt vollständig ersetzt.
fmOpenReadWrite Die Datei wird so geöffnet, daß der aktuelle Inhalt geändert werden kann, ohne daß er ersetzt wird.

Für den Zugriffsmodus sind folgende Konstantenwerte verfügbar:

Wert Bedeutung

fmShareCompat Der Zugriffsmodus ist kompatibel zu dem Verfahren, mit dem Dateisteuerblöcke (FCBs) geöffnet werden.
fmShareExclusive Andere Anwendungen können die Datei nicht öffnen.
fmShareDenyWrite Andere Anwendungen können die Datei ausschließlich zum Lesen öffnen.
fmShareDenyRead Andere Anwendungen können die Datei ausschließlich zum Schreiben öffnen.
fmShareDenyNone Andere Anwendungen können die Datei ohne Einschränkungen zum Lesen oder Schreiben öffnen.

Wenn die Datei nicht geöffnet werden kann, löst Create eine Exception aus.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
taaktaak

Registriert seit: 25. Okt 2007
Ort: Radbruch
1.979 Beiträge
 
Delphi 7 Professional
 
#9

Re: Datei in Benutzung

  Alt 2. Sep 2008, 16:58
Könnte es sein, dass "fmShareExclusive" nur solange eine Wirkung hat, bis die Instanz von FileStream wieder freigegeben wird?
Ralph
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.242 Beiträge
 
Delphi 10.4 Sydney
 
#10

Re: Datei in Benutzung

  Alt 2. Sep 2008, 17:00
Davon ist auszugehen, wäre ja blöde, wenn nicht
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 +2. Es ist jetzt 04:27 Uhr.
Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf