Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » HILFE: ganze textblöcke(zeilen) in einer txt-datei verschieben

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 ] > 3 <
020
05.10.2004, 01:05 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


naja er kann das ja auch nur einmal finden weil du nur einmal nach suchst...

wenn du mehrer "mails" in einer datei hast die er jedesmal wieder neu sortieren soll musst du die sucherrei und ausgabe in die datei auch wieder in einer schleife laufen lassen
auf die schnelle ungetestet so...


C++:
#include <iostream>
#include <string>
#include <vector>
#include <fstream>
#include <iterator>
#include <algorithm>

int main() {
    std::string line;
    std::string file_in="test.txt";
    std::string file_out="test2.txt";
    std::string keyword1="Von:";
    std::string keyword2="------ Bestell Formular --------";
    std::string keyword3="##----- End ---------------------";

    std::vector<std::string> file;
    std::vector<std::string>::iterator start,i,j,k,l;

    
    std::ifstream ifs(file_in.c_str());
    while(std::getline(ifs,line))
        file.push_back(line);
    ifs.close();

    std::ofstream ofs(file_out.c_str());
    for(start=file.begin();start!=file.end();start=l){
        for(i=start;i!=file.end() && std::string::npos==i->find(keyword1);++i);
        for(j=i+1;j!=file.end() && std::string::npos==j->find(keyword2);++j);
        for(k=j+1;k!=file.end() && std::string::npos==k->find(keyword3);++k);
        for(l=k+1;l!=file.end() && std::string::npos==l->find(keyword1);++l);
        ofs<<*i<<std::endl;
        std::copy(j+1,k, std::ostream_iterator<std::string>(ofs, "\n"));
        std::copy(i+1,j, std::ostream_iterator<std::string>(ofs, "\n"));
        ofs<<*j<<std::endl;
        std::copy(k,l, std::ostream_iterator<std::string>(ofs, "\n"));
    }
    ofs.close();


//    std::copy(file.begin(), file.end(), std::ostream_iterator<std::string>(std::cout, "\n"));
}




macht dann 200€
--
...fleißig wie zwei Weißbrote

Dieser Post wurde am 05.10.2004 um 01:05 Uhr von Windalf editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
021
05.10.2004, 01:14 Uhr
enter-break



unglaublich
UNGLAUBLICH!!!!!



schick mir deine kontonummer!

ES FUNKTIONIIIIEEEERRTTT!!!

wenn du wüsstest, wie glücklich du jetzt jemanden gemacht hast (und das auch noch so kurz vorm aufgeben)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
022
05.10.2004, 01:18 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


Ich glaub dein Problem war weniger c++ sondern eher sich zu überlegen wie man die schleifen innerhalb der schleife laufen lassen muss... um die wärst du in reinem c auch nicht drumrum gekommen...
in dem fall konte man sich aufs wesentlich konzentrieren in c hätte man sich noch viel mehr mit der ganzen drum herum scheiss ärgern müssen...

wofür brauchst du eigentlich so einen umsortierblödsinn?
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] [ 2 ] > 3 <     [ 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: