String teilen



  • hi

    kann mir jemand sagen wie ich diesen String auf mehrer Zeilen aufteilen kann

    also das:

    strVorne = "INSERT INTO     Tabellenname (Spaltenname1, Spaltenname2";
    trHinten =        " VALUES ('" + sSpaltenname1 + "','" + sSpaltenname2 + "'";
    strVorne += ")";
    strHinten += ")";
    

    so klappt das ja nicht:

    strVorne = "INSERT INTO     Tabellenname ("Spaltenname1", 
                                               "Spaltenname2"";
    trHinten =        " VALUES ("'" + sSpaltenname1 + "'",
                                "'" + sSpaltenname2 + "'"";
    

    wie macht man das denn richtig?

    besten dank 🙂



  • 1.)
    Du musst den String mit " abschließen und dann einfach addieren.

    strText = "Teil1" + 
              "Teil2";
    

    oder
    Wenn ein Befehl in der nächste Zeile weitergeht, beendet man die erste nicht mit einem ; sondern mit einem \.

    CString str = "Teil1 \
    			   Teil2";
    

    2.) Denk bitte daran, dass du IN der Zeichenkette statt " \" und statt ' \' schreiben musst.

    🙂



  • klappt nur nicht der mist....ich versuchs nochmal



  • Nich meckern - herzeigen! 🤡

    Also, das was ich geschrieben hatte, hat er kompiliert. 🙂



  • Liegt wohl daran:

    [cpp]strVorne = "INSERT INTO Tabellenname ("Spaltenname1", // Zeile 1
    "Spaltenname2""; // Zeile 2
    trHinten = " VALUES ("'" + sSpaltenname1 + "'", // Zeile 3
    "'" + sSpaltenname2 + "'""; // Zeile 4

    /*
    Zeile 1:
    - die Anführungsstriche vor Spaltenname1 müssen weg
    - heisst die Spalte in der Datenbank wirklich Spaltenname1 ?
    - **hinter Spaltenname1 und vor den Anführungszeichen fehlt ein Komma
    **- das Komma am Zeilenende muss weg
    Zeile 2:
    - einmal Anführungszeichen nach Spaltenname2 reicht, also einmal wegmachen
    - heisst die Spalte in der Datenbank wirklich Spaltenname2 ?
    Zeile 3:
    - Anführungszeichen vor dem ersten Apostroph weg machen
    - Komma zwischen dem letzten Apostroph und den folgenden Anführungszeichen setzen
    - Komma am Ende der Zeile weg machen
    Zeile 4:
    - einmal Anführungszeichen vor dem Semikolon reicht, also einmal wegmachen
    */[/cpp]

    [/edit]
    😉
    [edit]



  • ja dein Bsp hat funktioniert
    (das hät ich auch so gemacht

    CString str = "Teil1 \
                   Teil2";
    

    aber das geth hier leider nicht:

    strVorne = "INSERT INTO    Tabellenname (Spaltenname1 \ 
                                             Spaltenname2";
    strHinten =        " VALUES ('" + sSpaltenname1 + "','" + sSpaltenname2 + "'";
    
    strVorne += ")";
    strHinten += ")";
    


  • werds gleich ausprobieren isabeau
    ne Spaltename1 hab ich nur so hingeschrieben 😉

    (ich hab deins noch NICHT ausprobiert isabeau) schau mal auf die Zeit 😃



  • naja so ...hab alles gemacht wie beschrieben *hoff*

    CString sSpaltenname1;
    CString sSpaltenname2;
    CString sSpaltenname3;
    
    strVorne = "INSERT INTO     Versuchsdaten (Spaltenname1," 
                                               "Spaltenname2," 
    				           "Spaltenname3"; 
    strHinten =    " VALUES ('" + sSpaltenname1 + "',"
    		      '" + sSpaltenname2 + "'," 
    		      '" + sSpaltenname3 + "'"; 
    strVorne += ")"; 
    strHinten += ")";
    

    Fehler:
    error C2015: too many characters in constant //: '" + sSpaltenname2 + "',"

    error C2143: syntax error : missing ';' before 'constant' //: '" +
    sSpaltenname2 + "',"
    error C2001: newline in constant //: '" + sSpaltenname2 + "',"
    error C2015: too many characters in constant //'" + sSpaltenname3 + "'";
    error C2143: syntax error : missing ';' before 'constant' //'" + sSpaltenname3 + "'";

    error C2001: newline in constant //'" + sSpaltenname3 + "'";
    error C2143: syntax error : missing ';' before 'string' //'" + sSpaltenname3 + "'";

    error C2146: syntax error : missing ';' before identifier 'strVorne' // strVorne += ")";



  • strHinten =    " VALUES ('" + sSpaltenname1 + "'," 
                  '" + sSpaltenname2 + "'," // <- am Anfang fehlen Anführungsstriche
                  '" + sSpaltenname3 + "'"; // hier auch
    


  • Hab ich einen Backslashfilter in der Leitung? 😕
    Ach ne, du verwendest das gemischt... das geht schief. 😞

    CString sSpaltenname1;
    CString sSpaltenname2;
    CString sSpaltenname3;
    
    strVorne = "INSERT INTO     Versuchsdaten (Spaltenname1, \
                                               Spaltenname2, \
     Spaltenname3";
    

    Und mach bitte "\'" und nicht "'"; ⚠



  • danke isabeau jetzt passts,
    vielen dank für eure Mühe und Hilfe 🙂

    endlich....... 🤡

    PS: estartu_de: okay, hab nicht genau gewusst was du damit meintest:

    Denk bitte daran, dass du IN der Zeichenkette statt " \" und statt ' \' schreiben musst.

    😉


Anmelden zum Antworten