www.mikrocontroller.net

Forum: PC-Programmierung Geöffnete Textdatei lesen


Autor: MacAloc (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: yxcv (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Peter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: yalu (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: MacAloc (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
naja ich werde es heute nochmal in C mit dem bekannten fopen() .

Ich werde dann bald berichten!

Liebe Grüße.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.