Datei öffnen mit Edit-Box Angabe



  • Hallo, alle miteinander!
    Ich habe die Frage schon im Standard-C++Forum gefragt,
    wollte nochmal hier, an der richtigen Stelle fragen, sorry!

    Ich weiß, vielleicht ist es für euch selbstverständlich,
    doch ich habe noch ein paar Probs mit dem proggen
    und scheiter meißt an Kleinigkeiten.

    Also, meine Frage:
    Ich habe eine Edit Box und einen Öffnen Button,
    und ich möchte in der Edit Box einen Pfad für eine Datei eingeben,
    um diese Datei dann mit dem Öffnen Button zu öffnen.

    Es wäre nett wenn mir jemand helfen könnte!
    Danke schonmal im voraus!



  • Moin,
    das ist doch eigentlich auch recht einfach 😉
    so in etwa sah der code aus, den ich dafür bisher immer verwendet habe, du kannst natürlich auch StudioFile dafür benutzen

    TCHAR str[64000];
    int iDatLaenge = 0;
    CFile datei(m_sEditBox, CFile::modeRead);  //m_sEditBox ist ne CString-Membervariable deiner Editbox
    iDatLaenge = datei.Read(str, sizeof(str)); 
    datei.Close();
    str[iDatLaenge] = NULL;
    GetDlgItem(IDC_Ausgabe)->SetWindowText(str); //IDC_Ausgabe ist ne Editbox o.ä.
    

    müsste soweit laufen



  • Das klappt fast, danke.
    Öffnen kann ich eine Datei,
    aber nur wenn ich die CString-Membervariable,
    mit dem Dateinamen dirket in dem cpp File angebe.

    Wie macht man das, mit einer manuellen Eingabe,
    in der EditBox?
    Das geht bestimmt, ich habe nur nix im Kopf, irgendwie.

    EditBox Button
    test.txt klick

    Also, Eingabe, der Datei in die Editbox und anschließender klick auf den Button.



  • void CTestDlg::OnOK() 
    {
        CString filename;
        GetDlgItemText(IDC_EDIT1,filename); // Oder halt UpdateData, falls Membervariable als String
    
        CFile file;
        if(file.Open(filename,CFile::modeRead))
        {
            // ...
        }
    }
    

    [ Dieser Beitrag wurde am 26.06.2003 um 12:14 Uhr von Nemesyzz editiert. ]



  • So, jetzt hat alles funktioniert!

    Fettes LOB an alle, für die Lösung und die schnelle Antwort!



  • Kann es sein, das du vor in der Funktion kein UpdateData(TRUE); aufgerufen hast.
    Den erst damit werden die Daten vom Bildschirm "zum Rechner" übertragen


Anmelden zum Antworten