Text Datei auslesen



  • Hi, hab schon ein paar ähnliche beiträge gefunden jedoch waren diese alle für die konsole bestimmt... hab jetz diesen code:

    ifstream f;  // Datei-Handle
        AnsiString s;
        f.open("Allgemeine Informationen.txt", ios::in); // Öffne Datei aus Parameter
        while (!f.eof())          // Solange noch Daten vorliegen
        {
            getline(f, s);        // Lese eine Zeile
            StaticText1->Caption = s;    // Zeige sie auf dem Bildschirm
    
        }
        f.close();                // Datei wieder schließen
    
     system("pause");
    

    und es kommt diese fehlermeldung

    [C++ Error] control_overview.cpp(40): E2285 Could not find a match for 'getline<_CharT,_Traits,_Alloc>(ifstream,AnsiString)'

    hab keine ahnung was ich noch machen soll, in meinen augen müsste das gehen 😞
    bin jedoch noch anfänger...
    Wär echt super wenn ihr mir helfen könntet

    MFG kevin danke im voraus



  • getline() arbeitet nur mit den STL-eigenen Strings (std::string) zusammen, weil es für diese entwickelt wurde. Wenn du mit AnsiString's (eine Borland-spezifische Stringklasse) umgehen willst, mußt du dir eine eigene getline-Funktion schreiben, z.B. so:

    istream& getline(istream& in,AnsiString& data,char delim='\n')
    {
      string line;
      getline(in,line,delim);
      data=line.c_str();
      return in;
    }
    


  • oder man wechselt hier einfach auf string

    ifstream f("Allgemeine Informationen.txt");  // Datei-Handle
    string s;
    while (!f.eof())          // Solange noch Daten vorliegen
    {
       getline(f, s);        // Lese eine Zeile
       if( !f.eof())
          StaticText1->Caption = s.c_str();    // Zeige sie auf dem Bildschirm
    }
    


  • wow, danke für die schnelle antwort...!

    hab die funktion bei mir eingefügt... aufgerufen wird sie ja trotzdem noch mit getline?? oder

    das programm wird ausgeführt jedoch wenn ich die datei auslesen lasse öffnet eine konsole, dazu is da garnichts drin...

    wär toll wenn du nochma weiterhelfen könntest
    edit:: Bei beiden lösungen das gleiche 😞

    MFG kevin



  • kevinklein schrieb:

    wow, danke für die schnelle antwort...!

    hab die funktion bei mir eingefügt... aufgerufen wird sie ja trotzdem noch mit getline?? oder

    Ja, wird sie.

    das programm wird ausgeführt jedoch wenn ich die datei auslesen lasse öffnet eine konsole, dazu is da garnichts drin...

    Dann solltest du den system()-Befehl aus deinem Programm rausschmeißen. In einer Windows-Anwendung brauchst du den sowieso nicht.



  • Huch, garnicht gemerkt das system noch da is ... hatte ersten code ja in console geschrieben ... 🙂 danke jetz geht es...

    Noch eine frage... wenn ich jetz eine größere datei auslesen lasse ist nur die letzte zeile drin... gibts eine möglichkeit den ganzen text in ein objekt von borland reinzumachen??? Glaub nicht das Label geeignet ist... wohl eher Memo oder Rich Edit scheint mit aber von den Datentypen schwer da das ja TStrings sind hab keine ahnung von der umsetzen o0

    Danke im voraus

    MFG



  • Hi!

    Ich kenn die Objekte vom Borland C++ Builder nicht. Aber in Delphi sind das wohl die selben, vom Aufbau her.

    TStrings->add( string )
    also
    

    Damit könnts denn auch funktionieren. Wobei, dann verwende lieber:

    loadfromfile( dateiname )
    

    von TString

    grüße



  • [off]sry, doppelpost[/off]



  • Wie schon erwähnt, solltest du sowas lieber im BCB-Forum fragen.
    Ansonsten sieh dir mal die Hilfe zu TMemo::Lines an. Da gibt es z.Bsp.

    Memo1->Lines->Add("String");
    


  • Hi, da kommt diese fehlermeldung...

    [C++ Error] control_overview.cpp(61): E2294 Structure required on left side of . or .*

    Edit:KK geht soweit so gut 🙂 vielen dank an alle... hab wiedermal einiges dazugelernt 🙂 Wart ne große hilfe

    MFG kevin



  • Ich sollte vielleicht noch erwähnen, dass ein Texteditortutorial in der BCB-Hilfe gibt. Wenn du das mal durcharbeitest wird dir vieles klarer.



  • Hi!

    Ich hab von Delphi geredet, sorry. Is nichso rübergekommen?

    -> //den operator brauchst du
    

    grüße



  • Warum siehst du alles immer so klein? 😉
    Die Funktion heißt eher
    LoadFromFile()



  • Hi!

    Wie gesagt, ich kenne die Borland C++ Builder sachen da nich. In Delphi is groß/kleinschreibung egal, daher weis ich nich wie Borland das bei der C++ Variante gelöst hat.

    Bin sowiso nichso der Borland C++ fan! 😉
    Aber gut... LoadFromFile()

    grüße



  • Falls ihr es auf Vorseite nicht gelesen habt ...

    Nun funktioniert das 🙂 super danke an alle seit echt gut 🙂
    Special Thanks!!!!

    MFG Kevin


Anmelden zum Antworten