AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Datei öffnen die von anderen Programm verwendet wird
Thema durchsuchen
Ansicht
Themen-Optionen

Datei öffnen die von anderen Programm verwendet wird

Ein Thema von Andreas L. · begonnen am 30. Sep 2007 · letzter Beitrag vom 30. Sep 2007
Antwort Antwort
Seite 1 von 2  1 2      
Andreas L.
(Gast)

n/a Beiträge
 
#1

Datei öffnen die von anderen Programm verwendet wird

  Alt 30. Sep 2007, 14:15
Hi,
ich habe hier eine Ini-Datei die von einen anderen Programm verwendet wird. Wenn ich die Datei nun mit TMemIniFile öffnen will, bekomme ich die Meldung das die Datei derzeit genutzt wird. Öffne ich die Datei mit Notepad oder einen anderen Programm gehts. Wieso? Benötigt TMemIniFile denn exklusiven Zugriff oder woran liegts?
  Mit Zitat antworten Zitat
Apollonius

Registriert seit: 16. Apr 2007
2.325 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Datei öffnen die von anderen Programm verwendet wird

  Alt 30. Sep 2007, 14:24
TMemIniFile verwendet TStrings.LoadFromFile, was mit fmShareDenyWrite arbeitet.
Wer erweist der Welt einen Dienst und findet ein gutes Synonym für "Pointer"?
"An interface pointer is a pointer to a pointer. This pointer points to an array of pointers, each of which points to an interface function."
  Mit Zitat antworten Zitat
Andreas L.
(Gast)

n/a Beiträge
 
#3

Re: Datei öffnen die von anderen Programm verwendet wird

  Alt 30. Sep 2007, 14:37
Zitat von Apollonius:
TMemIniFile verwendet TStrings.LoadFromFile, was mit fmShareDenyWrite arbeitet.
Und wie kann ich das Problem nun lösen?
  Mit Zitat antworten Zitat
Progman

Registriert seit: 31. Aug 2007
Ort: 99974 MHL
695 Beiträge
 
Delphi 10.1 Berlin Starter
 
#4

Re: Datei öffnen die von anderen Programm verwendet wird

  Alt 30. Sep 2007, 14:41
statt TMemIniFile nur TIniFile verwenden?
Karl-Heinz
  Mit Zitat antworten Zitat
Andreas L.
(Gast)

n/a Beiträge
 
#5

Re: Datei öffnen die von anderen Programm verwendet wird

  Alt 30. Sep 2007, 14:43
Zitat von Progman:
statt TMemIniFile nur TIniFile verwenden?
Verwendet denn TIniFile denn nicht die selbe LoadFromFile-Routine? Außerdem kann ich dann große Ini-Dateien wieder nicht öffnen wegen den Größenbeschränkung oder gibts die in Delphi 2006 nicht mehr?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#6

Re: Datei öffnen die von anderen Programm verwendet wird

  Alt 30. Sep 2007, 14:52
Über einen Umweg über TFileStream könnte es auch gehen.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var Stream: TFileStream;
    List: TStringList;
    Ini: TMemIniFile;
begin
  try
    Stream := TFileStream.Create('C:\boot.ini',fmOpenRead);
    List := TStringList.Create;
    Ini := TMemIniFile.Create('');
    try
      List.LoadFromStream(Stream);
      Ini.SetStrings(List);
      ShowMessage(Ini.ReadString('boot loader','timeout','nix'));
    finally
      FreeAndNil(Stream);
      FreeAndNil(List);
      FreeAndNil(Ini);
    end;
  except
    ShowMessage('Erzeugen von FileStream fehlgeschlagen');
  end;
end;
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
Progman

Registriert seit: 31. Aug 2007
Ort: 99974 MHL
695 Beiträge
 
Delphi 10.1 Berlin Starter
 
#7

Re: Datei öffnen die von anderen Programm verwendet wird

  Alt 30. Sep 2007, 14:54
über Größenbeschränkung ist mir nichts bekannt, ich weiß nur, dass ich mit TIniFile eine Ini-Datei beliebig oft öffnen konnte, auch von unterschiedlichen Programmen aus. Kommt aber auch darauf an, auf welche Art andere Programme darauf zugreifen. Es gibt ja Programme, die ihre Ini- und Log-Dateien sperren.
Karl-Heinz
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#8

Re: Datei öffnen die von anderen Programm verwendet wird

  Alt 30. Sep 2007, 16:00
Hallo Deddy,

du willst die Datei im compatibility mode öffnen? Das ist in der Praxis das Gleiche wie fmShareExclusive - besser so:

Delphi-Quellcode:
// ...
Stream := TFileStream.Create('C:\boot.ini', fmOpenRead or fmShareDenyNone);
// ...
Grüße vom marabu
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#9

Re: Datei öffnen die von anderen Programm verwendet wird

  Alt 30. Sep 2007, 16:08
Hallo marabu,

sorry, hast Recht
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
Andreas L.
(Gast)

n/a Beiträge
 
#10

Re: Datei öffnen die von anderen Programm verwendet wird

  Alt 30. Sep 2007, 17:15
ich verwende jetzt die normale TIniFile-Klasse. Es kommt zwar keine Meldung, aber die Datei wird anscheinend nicht geladen.

Delphi-Quellcode:
 fIniFile := TIniFile.Create(FileName);
 Sections := TStringList.Create;
 fIniFile.ReadSections(Sections);
Meine StringList bleibt leer. Noch 'ne Idee?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 +1. Es ist jetzt 12:43 Uhr.
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