Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Problem mit Datei auslesen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
18.06.2004, 21:06 Uhr
Lensflare



hallo.

ich habe eine *.txt datei erstellt und lasse diese nun in einer endlosschleife mit fscanf() auslesen, aber wenn ich den text in der datei verändere und abspeichere, dann wird trotzdem der alte text der datei ausgelesen.
Nur wenn ich mein programm beende und neu starte, dann wird der veränderte text gelesen.
Wie krieg ich das in den griff?
--
Wenn das Gehirn so einfach wäre, dass wir es verstehen könnten, wären wir so einfach, dass wir es nicht verstehen könnten.
(Emerson Pugh Trost)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
18.06.2004, 21:10 Uhr
Pablo
Supertux
(Operator)


wie öffnest du die Datei? fopen?
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
18.06.2004, 21:49 Uhr
typecast
aka loddab
(Operator)


@Lensflare: Es wäre auch nicht schlecht, wenn du die bereffende Codezeile posten würdest.
--
All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
19.06.2004, 15:42 Uhr
Lensflare



Zur besseren übersicht hab ich meinen code auf die folgenden zeilen beschränkt.


C++:
char buffer[1000];
FILE *steuerdatei;

int main(void)
{
    while(1)
    {
      steuerdatei = fopen("D:/c1.txt","r");
      while(!feof(steuerdatei))
      {
        fscanf(steuerdatei,"%s",&buffer);
        printf("%s",buffer);
      }
    }
}



--
Wenn das Gehirn so einfach wäre, dass wir es verstehen könnten, wären wir so einfach, dass wir es nicht verstehen könnten.
(Emerson Pugh Trost)

Dieser Post wurde am 19.06.2004 um 15:46 Uhr von Lensflare editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
19.06.2004, 15:53 Uhr
typecast
aka loddab
(Operator)


@Lensflare: Sowas solltest du nicht machen. Überleg dir lieber eine andere Möglichkeit dein Problem zu lösen.

Was das Problem angeht, kann ich eigentlich nur raten. Vielleich weil du die Datei nach dem auslesen nicht schließt.

Aber selbst wenn es das ist, lass das. Dateien in einer Endlosschleife auszulesen ist nicht besonders schön.

Poste lieber mal was du machen willst. Vielleicht finden wir eine elegantere Methode.
--
All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
19.06.2004, 19:15 Uhr
0xdeadbeef
Gott
(Operator)



C++:
fclose(steuerdatei); /* <-- das suchst du. */


Aber typecast hat recht, sonderlich schön ist das grad nicht.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
20.06.2004, 12:16 Uhr
Lensflare



Hmmm, das hab ich mir auch schon gedacht... wharscheinlich ist das ganze dann auch zu langsam. Die datei am ende immer wieder zu schliessen hab ich auch versucht.

Also, was ich eigentlich machen will ist folgendes:
Mein Programm soll sich automatisch mit windows starten (Das ist kein Problem). Dann bekommt es zeitangaben zum auswerten, die in der auszulesenden datei drin stehen. Die zeitangaben werden dafür verwendet, um zu einer bestimmten Zeit etwas auszuführen (Sowas wie ein wecker). Vom programm wird dazu die aktuelle uhrzeit des rechners ausgelesen.
Wenn ich also eine neue zeitmarke setzten will, dann muss ich diese zeit in die auszulesende datei schreiben und abspeichern.
Und während das programm läuft, muss es die änderungen in der datei auch erfassen können (bzw. den neuen dateiinhalt lesen können).

Die Zeitangaben müssen unbedingt aus einer datei gelesen werden, denn ich will das programm auf einem anderen pc laufen lassen und die datei mit den zeitangaben per netztwerk überschreiben.
Damit ich bestimmen kann, zu welcher zeit welche aktionen auf dem anderen pc gestartet werden.
--
Wenn das Gehirn so einfach wäre, dass wir es verstehen könnten, wären wir so einfach, dass wir es nicht verstehen könnten.
(Emerson Pugh Trost)

Dieser Post wurde am 20.06.2004 um 12:18 Uhr von Lensflare editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
20.06.2004, 12:38 Uhr
typecast
aka loddab
(Operator)


Ok. Dann macht es aber keinen Sinn in einer Endlosschleife zu lesen. Lass doch lieber ein wenig Zeit zwischen den Lesevorgängen.

So oft wirst du die Konfig-files doch wohl nicht ändern?

Dann kannst du dir ja auch mal überlegen, ob es velleicht Sinn machen würde deinem Programm ein Netzwerkinterface zu spendieren und die Anweisungen dirket an das Programm senden.

Du könntest aber auch eine leere Datei anlegen soblad die Konfigdateien nu geladen werden müssen. Dann schaust du jede Minute (oder halt das Zeitinervall nch dem dein Programm spätestens reagiert haben sollte) nach, ob die Datei existiert. Wenn ja, Konfigfiles auslesen, wenn nein weiterschlafen. Nach dem einlesen kannst du ja die leere Datei löschen.

Das sind mal die zwei Möglichkeiten, die mir spontan Einfallen würden.
--
All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
20.06.2004, 16:21 Uhr
0xdeadbeef
Gott
(Operator)


Ich glaube, was du eigentlich willst, ist RPC oder CORBA. Frag mal google danach.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
20.06.2004, 16:22 Uhr
typecast
aka loddab
(Operator)


@beefy: Ist das nicht "mit Kanonen auf Spatzen schießen"?
--
All parts should go together without forcing. ... By all means, do not use a hammer. (IBM maintenance manual, 1925)

Dieser Post wurde am 20.06.2004 um 16:28 Uhr von typecast editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: