Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

24.12.2011, 01:46

[c++] Logdatei während Laufzeit auslesen

Ich weiß wie man eine bestehende Textdatei öffnet und diese ausliest.

Nun möchte ich aber ein Programm schreiben, was eine Logdatei ausliest und dann je nach Eintrag diverse Sachen macht. Da das System aber fortlaufend Einträge in die Logdatei schreibt, wäre es sinnvoll, wenn ich immer nur den neusten Eintrag auslesen könnte und nicht jedesmal die Datei neu öffnen muss und überprüfen muss, ob sich was zum letzten Mal verändert habt.

Leider weiß ich nicht wie man sowas genau nennt, da mir die Suche zu "Dateien Auslesen" nur Altbekanntes liefert wie man stinknormale Textdatei öffnet =/

Vielen Dank schon mal für eure Hilfe und Frohe Weihnachten :)

PS: Ich arbeite mit Linux

FSA

Community-Fossil

  • Private Nachricht senden

2

24.12.2011, 11:28

Datei öffnen, bis zum Ende springen, oder wenn du es einfacher haben willst so lange zeichen lesen bis keins mehr kommt. Am Ende dann ein Paar Zeichen zurückgehen. Da stellt sich die Frage ob jeder eintrag gleich viel Zeichen hat. Was ich auch mal verwendet habe sind INI Dateien. Dann kannst du jedem eintrag eine Zahl geben, und die anzahl der Einträge reinschreiben. Dann liest du die Zahl aus z.B 3 und liest den 3. Key aus:

Quellcode

1
2
3
4
5
[Log]
Neuster_Eintrag=3
1=Hallo
2=Fehler
3=Neuster_Eintrag

Dann musst du deinem Log schreiber Programm noch sagen, dass er immer die Zahl um eins erhöhen soll ;)
MfG

Zitat

Der RCCSWU (RandomCamelCaseSomtimesWithUndersquare) Stil bricht auch mal mit den veraltet strukturierten Denkmustern und erlaubt dem Entwickler seine Kreativität zu entfalten.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

3

24.12.2011, 12:04

Die Idee finde ich nicht so gut. Dann lieber den Output in eine Pipe jagen und als Stream auslesen. Das erfordert keine merkwürdigen Protokolle wie das da oben und geht mit jedem beliebigen Format.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

4

24.12.2011, 14:56

?

Ich will keine Logdatei erstellen.

Ich will eine Logdatei auslesen/mitlesen.
Auf das Tool, das die Logdatei beschreibt, habe ich absolut keinen Einfluss.
Ich will immer uptodate sein, was den Inhalt der Logdatei angeht.

Mein jetziger Ansatz ist, dass ich jede Sekunde die Logdatei öffne und mir halt noch merke, wie viele Zeilen die Datei vorher hatte. Die neuen Zeilen lese ich dann ein und merk mir die neue Zeilenanzahl und schließe die Datei wieder. Nach einer Sekunde wiederhole ich den ganzen Vorgang wieder.

Dachte mir halt, es gibt evt. eine Funktion, die dann aufgerufen wird, wenn sich die geöffnete Textdatei verändert hat.

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

5

24.12.2011, 22:14

Wie ich schon sagte. Pipen und mit einem Stream auslesen. Da brauchst Du Dir absolut nichts merken. Gar nichts. Es kommt einfach nacheinander eingetrudelt.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

Werbeanzeige