Geöffnete Textdatei lesen

Gast #951864
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!
Gast #951909
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
Gast #951921
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.
Gast #951951
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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren