![]() |
Datei öffnen ...
Hallo,
ich möchte eine, die bereits von einem anderen Programm genutzt wird, simple Text Datei öffnen. Aus dieser Textdatei suche ich nach bestimmten Strings mit Pos(). Diese wiederum trage ich dann in eine ListView ein. Gelöst habe ich das ganze zur Zeit mit
Code:
Dieses jedoch lässt mich die Datei nicht öffnen, wenn sie von einem anderen Programm zur Zeit genutzt wird. Das ist aber leider bei der file die ich öffnen mag immer der Fall. Um genau zu sein, das ist eine Log Datei von mirc, die auch ständig offen ist, jedoch muss ich sie auch in meinem Programm öffnen können.
var
list : TStrings; begin list.LoadFromFile(path); ..... thanks für die hilfe :-) |
Re: Datei öffnen ...
Moin Sharkx,
zum einen: Nimm mal statt TStrings lieber TStringList. TStrings ist eine abstrakte Klasse, die man nur als Basisklasse für andere verwenden, und keine Instanzen davon bilden sollte. Wenn die Datei von dem Programm mit exklusiven Zugriff geöffnet wurde, wirst Du wohl Pech haben. Hast Du mal versucht, die Datei zu kopieren ( ![]() |
Re: Datei öffnen ...
Die Datei muss sich aber auch so irgendwie öffnen lassen, jedenfalls kann es so ziemlich jeder text editor ja auch ( Ultraedit, Cooledit etc. )
|
Re: Datei öffnen ...
Gesperrt ist gesperrt. Da hilft auch kein guter Editor. Die von Christian vorgeschlagene Kopie sollte funktionieren. Ggf. mal im Explorer testen, ob sich die Datei trotz Sperrung kopieren läßt.
|
Re: Datei öffnen ...
Wie gesagt, ich kann die datei mit jeglichem Editor auf meinem Sys auch dann öffnen, wenn sie ein anderes programm benutzt. So muss es auch ne lösung geben ;P
|
Re: Datei öffnen ...
Versuchs mal mit nem TFileStream und den Optionen fmOpenRead or fmShareDenyNone beim Erstellen der Stream Instanz.
Mfg mirage228 |
Re: Datei öffnen ...
Zitat:
|
Re: Datei öffnen ...
So .. da dieses Problem noch immer besteht, schieb ich mal den tread hier etwas nach oben.
Wir hatten auch schon ![]() Aber ne nette Idee habe ich dazu - mag vllt einfacher sein. Da ich auf einen bestimmten Satz im mIRC reagieren möchte, habe ich das im Moment mit dem auslesen der Log (aktuell beschriebene log lässt sich nicht öffnen) gelöst. Nun kann ich aber doch auch, den aktuell gewollten Satz von mIRc aus gleich als Parameter an mein programm übergeben. Jedoch wird der Parameter etwa alle 10 sec. an das Programm gesendet, nun mag ich ja auch nicht das sich das programm dann alle 10 sec. neu öffnet. Mag es nun die bessere Lösung sein die mIRC Log zu parsen, oder den Parameter von mIRC gleich zu übergeben? Und wie stell ich das am besten an, das sich mein Programm dann nicht immer wieder öffnet. Ich möcht gleich dazu sagen, mit Parameterübergabe oder DLL habe ich noch nie was gemacht :/ |
Re: Datei öffnen ...
Moin Sharkx,
Dein Programm muss sich auch nicht alle 10 sek. neu öffnen. Ich hatte in diesem Thread ![]() mal ein Demoprogramm gepostest, wie man neue Parameter an die gleiche laufende Instanz eines Programmes übergibt. Lass Dich nicht davon stören, dass es hier um Dateien ging, da diese ja auch nur als Pfade übergeben werden geht's nur um die Parameter. Welche Bedeutung sie für das Programm haben ist eine andere Sache. Aber nur um das noch einmal genau zu verstehen: Während mIRC auf die Datei zugreift, kannst Du mit einem Editor auch auf die Datei zugreifen? Dann könntest Du noch einmal zwei Dinge versuchen:
@Mirage: Zitat:
|
Re: Datei öffnen ...
Hallo Christian,
Wenn mIRC läuft kann ich ohne weiteres mit UltraEdit auf die datei zugreifen. Mit TFileStream.Create(file, fmOpenRead) kann ich die Datei auch nicht öffnen, kommt der gleiche Fehler. Vorschlag Nr2. kann ich von hier aus nun nicht testen, werde ich aber sobald ich nach hause komme. Das beispiel von dir werd ich mir auch ansehen, mag vieleicht doch die bessere Lösung sein. |
Re: Datei öffnen ...
Moin sharkx,
sollte die 2. Variante auch nicht gehen, wird's interessant, denn das müssten eigentlich die minimalen Einstellungen sein, um eine Datei für den Lesezugriff zu öffnen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:41 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 by Thomas Breitkreuz