Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

hey. ich hab folgendes problem: ich hab ne textdatei. diese soll geleert werden. dann will ich in diese textdatei etwas neues reinschreiben.

quelltext:

ofstream NichtGefiltert("c:\\Programme\\Borland\\CBuilder5\\Projects\\LogAuswerter_Abschluss\\Programm\\application_test.txt", ios::app);

NichtGefiltert.clear();

while(Zeichen != EndOfLine)

{

Makiert.get(Zeichen);

NichtGefiltert << Zeichen;

}

NichtGefiltert.close();

der befehl NichtGefiltert.clear(); funktioniert aber nicht. woran liegt das? ich bekomme nämlich keine fehlermeldung.

Original geschrieben von LLpresident

der befehl NichtGefiltert.clear(); funktioniert aber nicht. woran liegt das? ich bekomme nämlich keine fehlermeldung.

Ich glaub schon, dass der funktioniert. Allerdings setzt du damit nur deine Fehlerbits wieder zurueck. :)

Goos

@klotzkopp: weil ich sie in der while-schleife darunter neu füllen will.

hm. und wie bekomme ich die datei dann leer? will nämlich mehere zeilen einlesen und für jede extra in die txt schreiben. dadurch das ich app benutze werden bei jedem aufruf die gleichen zeilen wieder reingeschirben. und das soll nicht passieren. deshalb will ich die textdatei bevor ich in sie schreibe leeren.

Original geschrieben von LLpresident

dadurch das ich app benutze werden bei jedem aufruf die gleichen zeilen wieder reingeschirben.

Nein. Dadurch wird an die bestehende Datei angehängt (app steht für "append" = anhängen).

und das soll nicht passieren. deshalb will ich die textdatei bevor ich in sie schreibe leeren.
Dann sag einfach nicht, dass du anhängen willst. ios::out | ios::trunc sollte es tun. Dann wird die Datei gleich beim Öffnen geleert.
Original geschrieben von LLpresident

dadurch das ich app benutze werden bei jedem aufruf die gleichen zeilen wieder reingeschirben. und das soll nicht passieren. deshalb will ich die textdatei bevor ich in sie schreibe leeren.

...na jetzt muss ich aber schon mal lachen.....vielleicht hast dich aber auch nur ungluecklich ausgedrueckt :D

Du sagst du nimmst die Option "Anhaengen" (Append) und beschwerst dich, weil dann jedes mal dein Text angehaengt wird. Deshalb willst du die Datei dann auch immer leeren.

Is das wirklich dein Ernst? ;)

Koenntests ja auch mit nem ios::trunc probieren.

Goos

jep. es ist mein ernst. diese funktion wird für jede zeile einzeln aufgeruffen da ich nach bestimmten kriterien abfragen lasse. es wird also mehrmals in die funktion reingegangen wodurch ich durch benutzung von out auch nur die letzte zeile bekommen würde. brauche aber alle zeilen.

hier die komplette funktion:

void __fastcall TForm1::App_Filter_Checked()

{

Zaehler = 0;

int Index;

Index = 0;

char const *Path_test = "c:\\Programme\\Borland\\CBuilder5\\Projects\\LogAuswerter_Abschluss\\Programm\\application_test.txt";

ifstream Makiert("c:\\Programme\\Borland\\CBuilder5\\Projects\\LogAuswerter_Abschluss\\Programm\\application_checked.txt", ios::in);

while(!Makiert.eof())

{

Zaehler++;

Makiert.get(Zeichen);

Zeile[0] = Zeile[1];

Zeile[1] = Zeile[2];

Zeile[2] = Zeichen;

if(Zeichen == EndOfLine)

{

if(Zeile[0] == Checked[0] && Zeile[1] == Checked[1] && Zeile[2] == Checked[2])

{

ifstream::pos_type pos = Makiert.tellg();

pos = pos - Zaehler;

Makiert.seekg(pos);

Makiert.get(Zeichen);

ofstream NichtGefiltert("c:\\Programme\\Borland\\CBuilder5\\Projects\\LogAuswerter_Abschluss\\Programm\\application_test.txt", ios::app);

NichtGefiltert.clear();

while(Zeichen != EndOfLine)

{

Makiert.get(Zeichen);

NichtGefiltert << Zeichen;

}

NichtGefiltert.close();

clbApp_Gef_Fehler->Items->LoadFromFile(Path_test);

}

Zaehler = 0;

}

}

}

Wieso oeffnest dein File denn ueberhaupt in der While Schleife?

Es waere doch wohl sinvoller, wenn du das auch vor der Schleife machst und dafuer dann mit ios::out | ios::trunc.

Dein NichtGefiltert kannst dann ja problemlos in der Schleife benutzen um deinen Text reinzuschieben.

Goos

So ganz versteh ich aber wirklich nicht, was du willst.

Wenn du deine Datei in der Schleife tatsaechlich leeren wuerdest, dann staende ja immer nur eine Zeile drin. Wo ist der Sinn dabei?

ne. funktionierrt leider nicht. habs jetzt anders geregelt. die sache mit dem in der schleiffe leeren is mir auch schon aufgefallen. habs jetzt an den anfang gesetzt und etwas geschummelt. meine leerenkunktion sieht jetzt wie volgt aus:

ofstream App_Leeren("c:\\Programme\\Borland\\CBuilder5\\Projects\\LogAuswerter_Abschluss\\Programm\\application_test.txt", ios::out);

App_Leeren << "";

App_Leeren.close();

ist leider total unsauber aber mir fällt eht nichts besseres ein. und so funktioniert es auch wie ich es mir dachte.

cool. danke klotzkopp. die funktioniert. is damit weningstens etwas sauberer als vorher. sa das es sich auch sehen lassen kann.

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.