Text in String-Variable in Zeilen aufteilen



  • Sorry, ich bin glaub einfach zu blöd, ich finde weder im Forum noch in der BCB-Hilfe ein geeignetes Beispiel an dem ich verstehe wie ich die TStringList verwende... 😕

    Ich habe jetzt oben noch meinen Ansatz eingefügt, könnt ihr mir dadran vielleicht erklären wie ich die TStringList verwenden kann?

    Wäre echt Super!

    string Daten;
    string Zeilen[25];
    
    for(int loop=0; loop<25; ++loop)
    {
        Zeilen[loop] = ??????????????????;
    }
    


  • Hallo

    Ohne Kommentar...

    TStringList* file = new TStringList();
    file->LoadFromFile("Dateiname");
    for (int lv = 0; lv < file->Count; lv++)
      ... = file->Strings[lv];
    delete file;
    

    bis bald
    akari



  • hier ist noch interessant die von Joe angesprochenen StringList::Names, TStringList::Values zu verwenden.



  • Es ist immer noch das Problem dass die Daten nicht in einer Datei sondern in einer Variable liegen...



  • TStringList* file = new TStringList();
    file->Text = Daten.c_str(); // oder so ähnlich
    for (int lv = 0; lv < file->Count; lv++)
      ... = file->Strings[lv];
    delete file;
    


  • Hallo

    Wenn "Daten" ein AnsiString oder C-String ist brauchst du nichtmal das c_str()

    /Edit : offenbar ist es doch ein std::string

    bis bald
    akari



  • In dem Fall, wenn die Zeilenumbrüche mit drin sind und die Variable ein string ist

    string text;
    // irgendwie gefüllt
    TStringList* file = new TStringList();
    file->Text = text.c_str();
    

    [edit]Viel zu spät. 🙂 [edit]



  • Irgendwie reden hier alle aneinander vorbei. Liegt aber auch daran, dass f.sp meine Frage oben nicht beantwortet hat.



  • Also ich han jetzt mal ein kleines Testprogramm geschrieben...

    #include <iostream.h>
    
    void main()
    {
    string Eingang = "dasfakshf sdajhfkajsf \n asdhfjhaskdfh adfsjlaskjfd \n sdafjlasjkdf sdfkjalks";
    
    TStringList* Daten = new TStringList();
    Daten->Text = Eingang.c_str();
    string Zeilen[3];
    
    for(int loop=0; loop<3; ++loop)
    {
        Zeilen[loop] = Daten->Strings[loop];
    }
    
    getchar();
    }
    

    Muss ich für die TStringList noch eine Headerdatei einbinden?

    ich bekomme immer die Fehlermeldungen:

    [C++ Fehler] Unit1.cpp(6): E2451 Undefiniertes Symbol 'TStringList'
    [C++ Fehler] Unit1.cpp(6): E2451 Undefiniertes Symbol 'Daten'
    [C++ Fehler] Unit1.cpp(6): E2303 Typname erwartet
    [C++ Fehler] Unit1.cpp(6): E2379 In Anweisung fehlt ;
    

    Gruß,
    Freddy



  • Hallo

    Also echt, kannst du nicht von Anfang an sagen das du ein Konsolenprogramm ohne VCL-Unterstützung haben wilst?!
    Entweder must du noch

    #include <vcl.h>
    

    hinzufügen oder besser noch du beschränkst du weiterhin auf Standardmittel wie std::stringstream und std::getline.

    /Edit : Und am besten gleich noch ein Grundlagentutorial zum Thema Standardkonformes C++ durcharbeiten.

    bis bald
    akari


Anmelden zum Antworten