Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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

Geschrieben

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 :)

Geschrieben

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

Geschrieben

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 ]

Geschrieben

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

Geschrieben

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.

Geschrieben

Hiilfe, versteht mich denn keiner? ;):D

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

Geschrieben

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

Geschrieben

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

Geschrieben

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(); 

Geschrieben

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

Geschrieben

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.

Geschrieben

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

Geschrieben

<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>

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...