Forum: PC-Programmierung Geöffnete Textdatei lesen


von MacAloc (Gast)


Lesenswert?

Hallo!

Ich habe eine Frage:
 - Wie kann ich eine von einem anderen Programm bereits geöffnete 
Textdatei zum Schreiben, lesen?

Ein Programm schreibt ständig in eine Textdatei Messwerte. Mit einem von 
mir geschriebenen Programm möchte ich die Messwerte auslesen....

Das ganze soll in C oder VB2005 sein.

Vielen Dank!

von yxcv (Gast)


Lesenswert?

Nur lesend dürfte (in C) kein Problem sein. Die Frage ist nur, ob der 
Inhalt der Datei aktualisiert wird, ich vermute nicht, denn die 
einfachen Texteditoren merken Änderungen an geöffneten Dateien auch 
nicht (der Editor von MS z.B.). Das müsstest du ausprobieren und 
gegebenenfalls immer wieder schließen und neu einlesen.
Sowas braucht man eigntlich auch nicht zu fragen, sondern kann einfach 
selbst getestet werden. ;-)

cu

von Peter (Gast)


Lesenswert?

Hallo,
es kommt darauf an wie das andere Programm die Datei geöffnet hat, wenn 
es sie exclusiv geöffnet hat geht es nicht.
Sonst einfach mit CreateFile öffnet und als Parameter FILE_SHARE_READ 
angeben, dann sollte das schon gehen.

von yalu (Gast)


Lesenswert?

VB2005 hört sich gewaltig nach MS an. Für Unix/Linux hätte ich es dir
sagen können. Ich nehme an, du hast es bereits auf die naheliegendste
Art und Weise versucht:

  1. Datei öffnen
  2. lesen bis zum EOF
  3. kurz schlafen, um CPU-Last zu senken
  4. weiter bei 2

Funktioniert das nicht? Was passiert?

Unter Linux geht es so. Solange das schreibende Programm die Datei
offen hält oder sie schließt und anschließend mit O_APPEND öffnet,
werden die neu hinzugefügten Daten wie erwartet gelesen. Nur wenn die
Datei neu erzeugt wird (O_CREAT), funktioniert es so nicht, was aber
nachvollziehbar ist, da es sich dabei dann um eine andere Datei (mit
demselben Namen) handelt.

von MacAloc (Gast)


Lesenswert?

naja ich werde es heute nochmal in C mit dem bekannten fopen() .

Ich werde dann bald berichten!

Liebe Grüße.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.