tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
3
ZUGRIFFE
677
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    paramit100 paramit100 ist offline Grünschnabel
    Registriert seit
    Apr 2007
    Beiträge
    3
    Hallo zusammen,

    habe ein riesen Problem was sich einfach nicht lösen lässt und woran ich schon seit zwei Tagen sitze. Hoffe einer von euch kann mir weiterhelfen, bin echt am verzweifeln. Vielen Dank schon mal im Vorraus. Ika

    Ich habe folgenden Quellcode:

    // Datei einlesen
    void GegliederterText::set_in_gegliedertertext(char * new_name_filelist, string new_bez_abschnitt){

    string ueberschrift;
    string buffer;
    filelist = string(new_name_filelist); //string erzeugen
    bez_abschnitt = new_bez_abschnitt;

    text.clear(); // Loescht alle Elemente
    // Datei Liste oeffnen

    fin.open(filelist.c_str()); // formatiert den Dateinamen in ein Zeichenkette-Format
    if(!fin){
    cout << "Konnte Datei nicht oeffnen!" << filelist << endl;
    }
    else {

    while(getline(fin, buffer)){ // Inhalt einlesen
    text.push_back(buffer);
    cout << "Bufferausgabe " <<buffer << endl;
    }
    for(int i=0; i<text.size(); i++){
    cout << "size" << text.size();
    if(!text[i].empty() || text[i] != "\n"){
    cout << "i = " << i << ", text[i] = " << text[i] << endl;
    Gtext.resize(i+1);
    ifstream datei_abschnitt(text[i].c_str());

    if(!datei_abschnitt){
    cout << "Konnte Datei" << text[i].c_str() << " +++nicht oeffnen!" << endl;
    }
    while(getline(datei_abschnitt, buffer)){ // Inhalt einlesen
    Gtext[i].append_string(buffer);
    cout << "buffer = " << buffer << endl;
    }
    cout << "Test: Gtext[i].print()" << endl;
    Gtext[i].print();
    cout << "Test Ende " << endl;

    }
    /*pfad = text.at(i);
    ueberschrift = bez_abschnitt;
    TextObjekt gtext(Gtext.at(i));
    gtext.at(i).append_string(ueberschrift); */
    cout << "my test" <<endl;
    //Gtext.at(i).set_in_datei(pfad.c_str());
    }

    }
    fin.close();
    }


    Das Prob ist, dass ich beim kompilieren folgende Fehlermeldung erhalte und nicht wirklich was damit anfangen kann.(bin blutiger Anfänger): Die Headerdatei <vector> wurde eingebunden, falls es darauf geschoben wird . Es funktioniert weder unter Linux noch unter Windows. Gtext ist übrigens das: vector<TextObjekt> Gtext;

    C:\Dev-Cpp\include\c++\3.4.2\bits\stl_algobase.h instantiated from `void std::fill(_ForwardIterator, _ForwardIterator, const _Tp&) [with _ForwardIterator = __gnu_cxx::__normal_iterator<TextObjekt*, std::vector<TextObjekt, std::allocator<TextObjekt> > >, _Tp = TextObjekt]'
    Geändert von paramit100 (25.05.07 um 20:38 Uhr)
     

  2. #2
    Onkel Schuppig Onkel Schuppig ist offline Mitglied Gold
    Registriert seit
    Apr 2005
    Beiträge
    191
    Hallöchen,
    ich glaub, die eigentliche Fehlermeldung hast du vergessen, hinzuzufügen.
    Ich rate mal ins Blaue hinein:
    Die Funktion std::fill() möchte einen Container (in deinem Falle "vector") mit einer Reihe von Werten füllen. Vielleicht hat deine Klasse "TextObject" keinen vernünftigen Default-Constructor.
    Falls ich falsch liege, gib mal ein paar weitere Infos.
    Noch ein Tipp: Code-Ausschnitte formatiere bitte als Code:
    Code :
    1
    
    programmtext
    .
    Dann wirds übersichtlich.

    Grüße OS
     

  3. #3
    paramit100 paramit100 ist offline Grünschnabel
    Registriert seit
    Apr 2007
    Beiträge
    3
    Hui doch eine Antwort Danke.

    es gibt einen Defaultkonstruktor, einen Konstruktor mit Parametern und noch einen Kopierkonstruktor.
    Ich habe alle Dateien hochgeladen falls jemand Interesse hat

    http://eyedea.net/fh/a8_c.cpp
    http://eyedea.net/fh/gegliedertertext.h
    http://eyedea.net/fh/textobject.h
    http://eyedea.net/fh/liste.txt

    Ich habe einen Breakepoint (system("Pause")) gesetzt und und die Fehlermeldungen kommen schon vor resize(). Wenn ich die beiden Zeilen unterm Breakpoint entferne, läuft das Prog ohne Fehler.

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    
    void GegliederterText::set_in_gegliedertertext(char * new_name_filelist, string new_bez_abschnitt){
        
        string ueberschrift;
        string datei_abschnitt_buffer;
        filelist = string(new_name_filelist);  //string erzeugen
        bez_abschnitt = new_bez_abschnitt;
        ifstream datei_abschnitt;
       
        //text.clear(); 
        // Datei Liste oeffnen
        
        set_in_datei(new_name_filelist);
        
        for(int i=0; i < text.size(); i++){
                cout << "size i: " << i << endl;
                datei_abschnitt.open(text[i].c_str());
                cout << "*set_in_gegliedertertext* Txt Dateien: " << text[i] << endl; 
                if(!datei_abschnitt){ 
                  cout << "*set_in_gegliedertertext* Konnte Datei " << text[i] << " nicht oeffnen!" << endl; 
            }
            else {
                 cout << "*set_in_gegliedertertext* Konte Datei " << text[i] << " oeffnen!" << endl;
                 
                 while(getline(datei_abschnitt, datei_abschnitt_buffer)){ // Inhalt einlesen
                     cout << "*set_in_gegliedertertext* BufferZeile: " << datei_abschnitt_buffer << endl;
                     system("Pause");
                     [B]Gtext.resize(i+1);[/B]
                     [B]Gtext.at(i).set_in_datei(datei_abschnitt_buffer.c_str());[/B]          
                 }
                 datei_abschnitt.close();
            }
        }
    }

    Folgende weitere Fehlermeldungen erhalte ich von Dev c++:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    
    C:\Dev-Cpp\include\c++\3.4.2\bits\ios_base.h In member function `std::basic_ios<char, std::char_traits<char> >& std::basic_ios<char, std::char_traits<char> >::operator=(const std::basic_ios<char, std::char_traits<char> >&)':
     
    524 C:\Dev-Cpp\include\c++\3.4.2\bits\stl_algobase.h instantiated from `void std::fill(_ForwardIterator, _ForwardIterator, const _Tp&) [with _ForwardIterator = __gnu_cxx::__normal_iterator<TextObjekt*, std::vector<TextObjekt, std::allocator<TextObjekt> > >, _Tp = TextObjekt]'
     
    291 C:\Dev-Cpp\include\c++\3.4.2\bits\vector.tcc instantiated from `void std::vector<_Tp, _Alloc>::_M_fill_insert(__gnu_cxx::__normal_iterator<typename _Alloc::pointer, std::vector<_Tp, _Alloc> >, size_t, const _Tp&) [with _Tp = TextObjekt, _Alloc = std::allocator<TextObjekt>]'
     
    612 C:\Dev-Cpp\include\c++\3.4.2\bits\stl_vector.h instantiated from `void std::vector<_Tp, _Alloc>::insert(__gnu_cxx::__normal_iterator<typename _Alloc::pointer, std::vector<_Tp, _Alloc> >, size_t, const _Tp&) [with _Tp = TextObjekt, _Alloc = std::allocator<TextObjekt>]'
     
    398 C:\Dev-Cpp\include\c++\3.4.2\bits\stl_vector.h instantiated from `void std::vector<_Tp, _Alloc>::resize(size_t, const _Tp&) [with _Tp = TextObjekt, _Alloc = std::allocator<TextObjekt>]'
     
    412 C:\Dev-Cpp\include\c++\3.4.2\bits\stl_vector.h instantiated from `void std::vector<_Tp, _Alloc>::resize(size_t) [with _Tp = TextObjekt, _Alloc = std::allocator<TextObjekt>]'
     
    123 C:\Dev-Cpp\bin\8\c\gegliedertertext.h instantiated from here
     
    741 C:\Dev-Cpp\include\c++\3.4.2\bits\ios_base.h `std::ios_base& std::ios_base::operator=(const std::ios_base&)' is private
     
    524 C:\Dev-Cpp\include\c++\3.4.2\bits\stl_algobase.h within this context
    C:\Dev-Cpp\include\c++\3.4.2\streambuf In member function `std::basic_filebuf<char, std::char_traits<char> >& std::basic_filebuf<char, std::char_traits<char> >::operator=(const std::basic_filebuf<char, std::char_traits<char> >&)':
     
    776 C:\Dev-Cpp\include\c++\3.4.2\streambuf `std::basic_streambuf<_CharT, _Traits>& std::basic_streambuf<_CharT, _Traits>::operator=(const std::basic_streambuf<_CharT, _Traits>&) [with _CharT = char, _Traits = std::char_traits<char>]' is private
     
    524 C:\Dev-Cpp\include\c++\3.4.2\bits\stl_algobase.h within this context
    Geändert von paramit100 (27.05.07 um 12:40 Uhr)
     

  4. #4
    paramit100 paramit100 ist offline Grünschnabel
    Registriert seit
    Apr 2007
    Beiträge
    3
    Problem gelöst!!
    Deine Vermutung war richtig. Es lag am Defaultkonstruktor. Ich hatte vergessen den Textbuffer zu leeren.

    Vielen Dank für die Hilfe.
    Gruß Ika
     

Ähnliche Themen

  1. Antworten: 6
    Letzter Beitrag: 08.11.10, 22:52
  2. ServiceBase.Run führt unter Win2000 zum Absturz
    Von Schnielz im Forum .NET Application und Service Design
    Antworten: 0
    Letzter Beitrag: 28.08.07, 11:06
  3. Absturz bei resize des Anwendungsfensters
    Von RuFFnEcK im Forum Borland CBuilder und VCL
    Antworten: 0
    Letzter Beitrag: 08.09.06, 11:53
  4. Bei resize des Fensters auch resize der Controls
    Von SixDark im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 4
    Letzter Beitrag: 25.11.03, 10:27
  5. malloc/free .. führt zu Absturz
    Von Sebastian L im Forum C/C++
    Antworten: 3
    Letzter Beitrag: 19.11.03, 19:09