Net-srac Geschrieben 6. Juli 2001 Geschrieben 6. Juli 2001 Hi, also wie oben schon gesagt. Ich habe einen CString "Status" der wird von unterschiedlichen Aktionen verändert. Ich will eine Funktion haben, an die ich Status übergebe, und der Inhalt in eine Datei geschrieben wird. Soll sowas wie ein trace sein. Ich hab das bis jetzt so: ****************************************************** Deklaration ****************************************************** int protokoll(CString Status); ****************************************************** Aufruf ****************************************************** Status = "Hallo"; protokoll(Status); ****************************************************** Funktion ****************************************************** int CSockDlg::protokoll(CString Status) { //PROTOKOLLIEREN CFile datei; BOOL bRet = datei.Open( "C:\\trace.txt", CFile::modeWrite); datei.Write( Status, 100 ); datei.Close(); return 0; } Thnx4Help Zitieren
Sonic83 Geschrieben 6. Juli 2001 Geschrieben 6. Juli 2001 Dann versteh ich jetzt aber nicht ganz dein Problem! Funktioniert es so oder funktioniert es so nicht??? Wenn nicht, dann würd ich das ganze mal mit einem Zeiger auf die Variabel Status ausprobieren!! Sonic83 Zitieren
Net-srac Geschrieben 6. Juli 2001 Autor Geschrieben 6. Juli 2001 Hab es gefunden, die "modeWrite" erzeugt keine Datei, wenn sie also nicht da ist bekommt man einen Fehler. Nur wie öffne ich denn eine Datei, um etwas an das vorherige anzufügen? Thnx4Help Zitieren
maddin Geschrieben 6. Juli 2001 Geschrieben 6. Juli 2001 du must modeCreate mit angeben. sonst muss die datei schon exitieren. ich hoffe, das der modus so heist. BOOL bRet = datei.Open( "C:\\trace.txt", CFile::modeWrite | CFile::modeCreate); etwa in der art [ 06. Juli 2001: Beitrag editiert von: maddin ] Zitieren
Net-srac Geschrieben 6. Juli 2001 Autor Geschrieben 6. Juli 2001 Ist richtig, aber dann ist das Problem, dass er das neue, was reinsoll nicht an das hängt was da war, sondern alles alte löscht, bei jedem mal. Ich will ja, dass die einträge immer unten angehangen werden. Thnx4Help Zitieren
Fornax Geschrieben 6. Juli 2001 Geschrieben 6. Juli 2001 Hi, dann check doch einfach vorher, ob die Datei da ist. Wenn mode::Write nen Fehler zurück gibt (=Datei nicht vorhanden) machst Du es halt mit mode::Create nochmal. Zitieren
Net-srac Geschrieben 6. Juli 2001 Autor Geschrieben 6. Juli 2001 Hiilfe, versteht mich denn keiner? Ich mach es jetzt so, dass ich die Datei per hand erzeuge. Ich will nun bei jedem Aufruf die Datei öffnen, und den neuen Status reinschreiben, ohne, dass der alte gelöscht wird, also 15:33:48 STATUS: Keine Fehler 15:33:52 STATUS: Übertragung erfolgreich 15:33:58 STATUS: Verbindung zu Host getrennt. das das dann so aussieht. Thnx4Help Zitieren
maddin Geschrieben 6. Juli 2001 Geschrieben 6. Juli 2001 versuchs mal mit CFile::modeCreate | CFile::modeNoTruncate dann sollte es klappen. CFile::modeCreate -> File erstellen / öffnen und neu beginnen CFile::modeNoTruncate -> neu beginnen des File verhindern Zitieren
Net-srac Geschrieben 6. Juli 2001 Autor Geschrieben 6. Juli 2001 Nope, das klappt auch nicht, weil CFile::modeNoTruncate nur in verbindung mit modeCreate einzusetzen ist, damit der File, wenn er existiert nicht neu erstellt wird. Aber nicht für modeWrite. Weiß nicht mehr weiter Thnx4Help Zitieren
Armand 2k Geschrieben 6. Juli 2001 Geschrieben 6. Juli 2001 probiere es mal so: CStdioFile pfchLog ( tempFileName, CFile::modeCreate | CFile::modeNoTruncate | CFile::modeWrite ); pfchLog.SeekToEnd(); CString text; tempData.Format ("??", egal was); pfchLog.WriteString ( tempData ); pfchLog.Close(); Zitieren
Armand 2k Geschrieben 6. Juli 2001 Geschrieben 6. Juli 2001 worauf es dir ankommt, ist glaube ich SeekToEnd... Zitieren
Net-srac Geschrieben 6. Juli 2001 Autor Geschrieben 6. Juli 2001 Genau das hab ich gesucht!! Thnx. Aber wie wende ich das jetzt an, also wie sage ich der Write funktion dass sie wirklich erst der Stelle anfangen soll, die SeekToEnd zurückgibt? Thnx4Help Zitieren
Armand 2k Geschrieben 6. Juli 2001 Geschrieben 6. Juli 2001 <BLOCKQUOTE><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Zitat:</font><HR>Original erstellt von Armand 2k: <STRONG>probiere es mal so: pfchLog.SeekToEnd(); </STRONG> Zitieren
maddin Geschrieben 6. Juli 2001 Geschrieben 6. Juli 2001 indem du erst das file öffnest, dann die funktion SeekToEnd aufrufst und danach anfängst zu schreiben. wie im beispiel von armand 2k zu sehen ist. die funktion SeekToEnd ist nämlich dazu gut um die aktuelle position ans ende der datei zu versetzen. und die aktuelle position ist die position, an der geschrieben und gelesen wird. Zitieren
Net-srac Geschrieben 6. Juli 2001 Autor Geschrieben 6. Juli 2001 Wahnsinn, jetzt funktionierts. Danke an alle. Nur dass er mir nach dem eigentlichen CString noch ein bißchen Müll in die Datei reischreibt, und keinen Zeilenumbruch nach den einzelnen Einträgen macht. Thnx4Help Zitieren
Armand 2k Geschrieben 6. Juli 2001 Geschrieben 6. Juli 2001 <BLOCKQUOTE><font size="1" face="Verdana, Arial, Helvetica, sans-serif">Zitat:</font><HR>Original erstellt von FaFo: <STRONG>Wahnsinn, jetzt funktionierts. Danke an alle. Nur dass er mir nach dem eigentlichen CString noch ein bißchen Müll in die Datei reischreibt, und keinen Zeilenumbruch nach den einzelnen Einträgen macht. Thnx4Help</STRONG> Zitieren
DanielH Geschrieben 6. Juli 2001 Geschrieben 6. Juli 2001 Hi @all dies wissen Gibt es bei CFile kein equal der fstream.h Eigenschaft "a+" (Nur anhängen, wenn nicht vorhanden erstellen) ? MfG Zitieren
Net-srac Geschrieben 6. Juli 2001 Autor Geschrieben 6. Juli 2001 Stimmt, hab das \r vergessen. Nagut, jetzt funktioniert. Danke an alle, und noch einen schönen Tag bei diesem geilen Wetter. Greetz Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.