Schleife mit Dynamische Variablen bitte helfen!!!



  • schon besser aber er sagt halt error C2660: 'GetBuffer' : Funktion akzeptiert keine 0 Parameter



  • bumbumb1 schrieb:

    schon besser aber er sagt halt error C2660: 'GetBuffer' : Funktion akzeptiert keine 0 Parameter

    Aha, da sind wir ja schonmal weiter! 😉

    Sorry, aber meine MFC Kenntnisse sind nicht so toll -- ich guck immer in die Doku und vergess es dann wieder! 😉

    Lass mal ".GetBuffer()" weg, ich glaube CString hat einen "operator const char*()".



  • so jetzt geht es und wie bekomme ich die werte wieder heraus?



  • bumbumb1 schrieb:

    so jetzt geht es und wie bekomme ich die werte wieder heraus?

    Prima! 🙂

    Was willst Du denn damit machen?

    Normalerweise geht das so:

    // also, wenn Du die Werte in einer Schleife wieder auslesen willst, als CString:
    
    int n = myArray.size();
    for ( int i=0; i < n; ++i ) {
       String s = myArray[i];
       CString cs( s.c_str() );
       // verwende cs 
    }
    


  • so das geht auch jetzt muss das alles noch in unterschiedliche Variablen gepackt werden die anhand er größe es Arrys erstellt werden müßen Wenn das Arry 20 Werte hat ebenötige ich auch 20 Variablen



  • bumbumb1 schrieb:

    so das geht auch jetzt muss das alles noch in unterschiedliche Variablen gepackt werden die anhand er größe es Arrys erstellt werden müßen Wenn das Arry 20 Werte hat ebenötige ich auch 20 Variablen

    Kannst Du so machen, aber kannst auch direkt auf das Array zugreifen.

    Wenn Du einen bestimmten Index haben willst:

    CString cs;
    if ( myArray.size() >= 1U ) cs = CString( myArray[0].c_str() );
    // ...
    if ( myArray.size() >= 3U ) cs = CString( myArray[2].c_str() );
    // usw.
    

    "3U" bedeutet "3 vorzeichenlos", das brauchst Du wegen myArray.size(), das vorzeichenlose Werte liefert.

    Wie gesagt, am besten waere, wenn Du erstmal C++ lernen wuerdest. C++ mit MFC zu lernen macht die Sache nur viel komplizierter... aber jedem das seine! 😉 -- ich hab halt ohne MFC C++ gelernt! 😉



  • aber wie geht das die Variablen dynamisch sind und anhand der arry größe erstellt werden



  • bumbumb1 schrieb:

    aber wie geht das die Variablen dynamisch sind und anhand der arry größe erstellt werden

    Das Array sind doch Deine dynamischen Variablen.

    Ein Array ist wie eine Reihe von Schachteln, in die Du was reintun kannst. Was Du da reintust, bleibt auch da drin.

    Wenn Du ein Array loeschen willst, z.B. um es neu aufzubauen, benutzt Du "myArray.resize(0)".



  • ok,
    jetzt habe ich aber ein Listenelement mit die vielen Spalten (Spalte 1,Spalte 2 etc.) so jetzt soll der wert für die Spalte 2 aus dem Array geladen werden in die die liste geschrieben werden. Der Wert steht mal am anfang mal am ende des arryas.



  • bumbumb1 schrieb:

    ok,
    jetzt habe ich aber ein Listenelement mit die vielen Spalten (Spalte 1,Spalte 2 etc.) so jetzt soll der wert für die Spalte 2 aus dem Array geladen werden in die die liste geschrieben werden. Der Wert steht mal am anfang mal am ende des arryas.

    Also, wenn Du eine Tabelle hast, nimmst Du am besten ein Zweidimensionales Array, also z.B.:

    #include <vector>
    #include <string>
    
    typedef std::string String;
    typedef String StringVec;
    typedef std::vector<StringVec> StringVecVec;
    
    StringVecVec mein2DArray;
    
    // v[Zeile][Spalte] liefert ein Element
    // mit v[Zeile].push_back( String( ... ) ); fuegst Du eine Spalte zu einer Zeile hinzu
    // mit v.push_back( ... ); fuegst Du eine Zeile hinzu
    

    Du musst halt pruefen, wo Dein Wert im Array auftaucht, und ihn entsprechend auslesen.

    Programmieren musst Du schon selber! :p

    Und das erfordert es, die Materie wirklich zu verstehen, mit der man hantiert, das kann Dir niemand abnehmen. Wie gesagt, um z.B. ein Verstaendnis fuer grundlegende Programmablaeufe zu bekommen, solltest Du erstmal programmieren lernen, z.B. mit C++.

    Die MFC ist fuer die Programmierung grafischer Oberflaechen geeignet, aber sie ist sehr komplex, und fuer Anfaenger moeglicherweise kaum verstaendlich.

    Das faengt schon damit an, dass Du Dir Dein Array sparen kannst, weil Du die Daten direkt im ListView suchen kannst, das Dir die Daten liefert.

    Du wirst kaum darum herum kommen, zu lesen, wie man ein ListView-Control bedient, und wie die MFC-Version davon zu bedienen ist. (Windows Platform SDK Dokumentation fuer ListView-Control, und MFC-Dokumentation fuer CListView etc.)

    Das ListView-Control speichert die Daten ja selber, sonst koennte es sie gar nicht anzeigen.


Anmelden zum Antworten