zeichenanzahl und stop beim einschreiben in dateien



  • Ich lese eine text datei ein (meiner meinung nach einer der wichtigsten funktionen, ich benutze sie SEHR oft).
    So. Ich speichere das eingelesen in einem String. und zwar ganz und komplett in einem.

    so eventuell komm ich darauf noch mal zurück.

    das eingelesene "bearbeite" ich beim einschreiben und pack das in die datei.
    der eingelesen text ist in einem array und in einer schleife bearbeite ich jeden Buchstabe einzeln. aber wie soll ich aus der schleife wieder raus ?
    so säh das abgekürzt aus:

    for(;save<save2;)
                            {
    
                                                    checkingletterornot = 0;
                                                    save = save + 1;
                                                    //cout<<save<<" "<<save2<<"\n"; //syntax tests
                                                    teiler[save] = fileinhalt[save].substr(save-1,1);
                                                    //cout<<teiler[save]<<"\n"; //syntax tests
                                                    end.clear(); //jetzt den Buchstaben überprüfen
                                                    if(teiler[save]=="a"||teiler[save]=="A")
                                                    {
                                                                    end = alphabet[1];
                                                                    checkingletterornot = 1;
                                                                    }
    

    zuerst hab ich es so versucht:

    if(teiler[save]=="")
                                                    {
                                                    cout<<"String leer -- breche ab ! und schreibe ein\n";
                                                    //datei << intext;
                                                    //cout<<"ERFOLGREICH !";
                                                    break;
                                                    }
    

    das ist aber murks und geit nicht immer. nur mit manchen dateien
    so dann sah es mal so aus:

    size3 = teiler[save];
    save = save + 1;
    if(save = size3)
                                                    {
                                                    cout<<"breche ab ! und schreibe ein\n";
                                                    //datei << intext;
                                                    //cout<<"ERFOLGREICH !";
                                                    break;
                                                    }
    

    aber das hat auch probleme bereitet

    Probleme: einlesen und einschreiben. ich weiß nicht wie ich es am besten abrechen soll. wjile(datei.eof){} hab ich auch versucht dann ist aber siz3 = 120000.. ganz groß. HILFE und danke. (mir fiel nix geniales ein).



  • Tim06TR schrieb:

    for(;save<save2;)
    

    Es gibt auch while-Schleifen, nur so am Rande... 😉



  • _matze schrieb:

    Es gibt auch while-Schleifen, nur so am Rande... 😉

    wieso ? for(;;) ist doch ok? Ich benutze fast nur for(;;). ist das falsch ?
    und um nochal zum Thema zu kommen. kann man mir hier nicht ein paar alternative bieten ?, zum beispiel an das ausgelesene irgendwas anhängen, was dann signalwort für das einscreiben ist zum aufhören ?
    Also mit .find("endstring") oder so ? das einzige, was dann noch zu klären wäre, ob man mit find einem die stelle anzeigen lassen kann, wo das steht (oder anderen funktion. dann könnte ich das realisieren.
    wenn es dafür was gäbe würde es mir helfen !


Log in to reply