Speicherfunktion für Edit-Inhalte / Listbox



  • Dann kommt:
    error C2228: Links von ".GetCount" muss sich eine Klasse/Struktur/Union befinden.

    usw.

    Muss da nicht noch irgendwas mit GetDlgItem gemacht werden? Der Name allein hilft ja nicht, oder?



  • Meine Göte... du hast mir gesagt das dein Ctrl CListBox1 heißt. D.h. bin ich davon mal so ganz nice ausgegangen, das das bei dir die Memebervariabel vom Type CListBox ist!

    Denk erstmal nach bevor du noch einmal hier was schreibst! An sonnsten gibt es kein einziges char an code mehr -.-



  • Sorry...bin halt Anfänger.

    Also hab jetzt die Member eingesetzt....übrig bleibt eine Meldung:

    error C2039: 'GetLenght': Ist kein Element von 'ATL::CStringT<BaseType,StringTraits>'



  • Das is jetzt nich dein Ernst, oder? 🙄
    Also bei so viel Dummheit verweigere ich einen Post zur Lösung.

    Gruß Brainiac



  • Ich finde es immer wieder witzig, wenn irgendwelche Leute die sich besser mit etwas auskennen als andere, sich über die anderen á la "das ist doch nicht dein Ernst....oh Gott bist du dumm" lustig machen, anstatt zu erklären wo deren (scheinbar fundamentaler) Fehler liegt.

    Dieses Forum ist doch dazu da um bei Problemen Hilfe zu bekommen...und nicht ne Portion Entmutigung ("jaja...du bist zu blöd um jemals C++ zu können").

    Trotzdem danke für die Vorschläge



  • Es geht nicht darum ob du zu blöd bist um c++ zu lernen oder nicht. Deine Fehler sind auch keine fundamentalen Fehler des Programmierens. Es geht überhaupt nicht ums Programmieren! 😡

    Dein fundamentaler Fehler ist einfach dass du kein bisschen über die gemachten Vorschläge nachdenkst, sondern alles nur sinnlos per copy+paste übernimmst und null Eigeninitiative zeigst. 👎

    Es geht darum, dass von dir erwartet wird, dass du den Code der hier als Vorschlag gepostet wurde wenigstens einmal durchliest (und nicht nur "überfliegst") und genauso auch deine Fehlermeldungen einmal GENAU liest (und nicht gleich per copy+paste ins Forum klatschst).
    Wenn du dann auch noch wenigstens kurz über das Gelesene nachdenkst, dann wäre dir z.B. aufgefallen, dass in deinem Code (und deiner Fehlermeldung) GetLenght statt GetLength steht. Ich unterstelle dir jetzt einfach mal, dass du eigentlich schon weißt wie das richtig geschrieben wird, du aber gar nicht erst versucht hast, den Fehler zu finden bzw. den Code mal anzuschauen.

    Versteh das jetzt nicht falsch, auch ich werde dir in Zukunft gerne bei Problemen helfen, aber eben nur unter der Bedingung das du dir das oben Genannte zu Herzen nimmst. 😉

    Gruß Brainac



  • Danke...es tauchen halt für nen Anfänger wie mich ständig scheinbar unlösbare Probleme auf, die sich dann im Nachhinein als einfach erweisen.

    Ich hab jetzt mal versucht das zum Laufen zu bringen, bekomme aber die Fehlermeldung dass die Funktion keine zwei Argumente aktzeptiert. Da hab ich länger drüber nachgedacht und wirklich keine Ahnung (und jetzt ist's bestimmt wieder was total triviales)

    void CRechnerDlg::OnBnClickedButton2()
    {
    	SafeListbox("C:\test", m_CtlList);
    }
    
    bool SafeListbox(LPCSTR lpszFile, CListBox Liste)
    {
        FILE* pFile = NULL;
        pFile = fopen(lpszFile, "wb");
    
        if(!pFile)
            return false;
    
        fwrite(_T("m_CtlList.GetCount()"), 4, 1, pFile);
    
        CString strText;
        for(UINT n = 0; n < (UINT)Liste.GetCount(); ++n)
        {
            Liste.GetText(n, strText);
            strText += "\n";
            fwrite(strText, 1, strText.GetLength()+1, pFile);
        }
    
        fclose(pFile);
    
        return true;
    }
    


  • 1. Grundlagen von C++
    2. => Woher soll der die Funktion kennen wenn die danach erst kommt?
    3. Pointer... CListBox* pList.... und &m_ctrlList...



  • Da du mit der Ladefunktion etwas komplizierter ist wenn de die änderungen nicht so machst wie ich jetzt... naja... ich mach auch mal die anderen fehler raus... aber das ist das letzte mal -.-

    // ...
    class CRechnerDlg : public // ...
    {
        // ...
    protected:
        bool SafeListbox(LPCSTR lpszFile, CListBox* pList);
        // ...
    };
    // ...
    
    void CRechnerDlg::OnBnClickedButton2(void)
    {
        SafeListbox("C:\test", &m_CtlList);
    }
    
    bool CRechnerDlg::SafeListbox(LPCSTR lpszFile, CListBox* pList)
    {
        FILE* pFile = NULL;
        pFile = fopen(lpszFile, "wb");
    
        if(!pFile)
            return false;
    
        fwrite(pList->GetCount(), 4, 1, pFile); // was bringt dir das wenn du "m_CtlList.GetCount()" in die Datei schreibst? Da soll die Anzahl rein -.-
    
        char cText[256];
        for(UINT n = 0; n < (UINT)pList->GetCount(); ++n)
        {
            pList->GetText(n, cText, 256);
            strText += "\n";
            fwrite(cText, 1, 256, pFile);
        }
    
        fclose(pFile);
    
        return true;
    }
    


  • Das mit dem "m_CtlList.GetCount()" ist so ne Sache:
    er motzt dass er es nicht konvertieren von 'int' in 'const void' konvertieren kann. Da hab ich halt experimentiert um den Fehler weg zu bekommen (immer noch nicht gelöst), aber irgendwie hab ich das Gefühl das die Sache noch zu hoch für mich ist.

    Hab ich vorher schon gefragt, aber ging vielleicht unter:
    Gibts da ne Möglichkeit das über ein extra Fenster mit Exploreransicht zu speichern?



  • @underpro:

    Das Problem an der ganze Sache ist, dass du hier gleich grafische Windows-Programme mit MFC schreiben willst, ohne die Grundlagen von C++ zu können. Das ist wie wenn du in der Formel 1 mitfahren willst, ohne zu wissen wozu Kupplung, Gas und Bremse gut sind. Da würde dich auch jeder fragen "Was willst du hier?".

    Also ein gut gemeinter Rat:
    Lern erst mal C++ und schreib Konsolenprogramme, und wenn du das beherrscht, kannst du dich an die MFC machen. Ein gutes C++Tutorial findest du z.B. hier: www.cpp-tutor.de

    Dort gibts auch ein sehr gutes MFC-Tutorial, welches aber die Kenntnisse des C++Tutorials voraussetzt. Also mach erst mal das C++ Tutorial durch, schreib ein paar "reine" C++ Programme, und arbeite dannach das MFC-Tutorial durch. Dann klappt die Sache auch und ist nicht so frustrierend. 😉

    Gruß Brainiac



  • Ich würde sagen... es hilft am besten underpro jetzt ersteinmal keiner mehr... ehr ist voll in die Falle getappt und hat demonstriert wie dumm sich Leute anstellen, die nur Kopieren & Einfügen... Guck mal ... bei einem Eintrag von mir... nen bissel weiter oben... steht was von wegen "CFileDialog"... -.-

    Aja... wenn de mal irgendetwas anständig versuchst... dann können wa nochmal darüber reden, das man dir wieder hilft... und lernt verdammt nochmal ersteinmal die Grundlagen!!!


Anmelden zum Antworten