noch mal zu kleine Editfelder



  • ich hab schon mal gepostetet aber da schon ein paar antowrten kamen, schaut wohl keiner mehr rein.hier noch mal die frage: ich will in ein CEdit oder CRichEditCtrl den text einer Dateieinfügen.die dateigrösse sollte beliebig sein
    (also eventuell auch einige MB !!!)

    Es gibt in CEdit 2 memberfunktionen:

    [code type="C++"]
    CEdit::SetLimitText
    void SetLimitText( UINT nMax );

    und

    CEdit::LimitText
    void LimitText( int nChars = 0 );

    mit denen soll man angeblich die gesamtgrösse der möglichen zeichenzahl steuern können.heist also im quell-code:

    CEdit *pEdit = (CEdit*)GetDlgItem(IDC_EDIT1);
    pEdit->SetLimitText(20000);

    bzw.

    CEdit *pEdit = (CEdit*)GetDlgItem(IDC_EDIT1);
    pEdit->LimitText(20000);

    einlesen und reinschreiben mach ich das wie folgt:

    CStdioFile SpFile;
    if (SpFile.Open(m_strTitle, CFile::modeRead))
    {
    CString Zeile;
    CString EditFeld;
    while (SpFile.ReadString(Zeile))
    {
    EditFeld += Zeile + "\r\n"; //"\r\n" ist zeilenumbruch im CEdit
    SetDlgItemText (IDC_EDIT1, EditFeld);
    }
    SpFile.Close();
    }[\code]

    bitte bitte: wo liegt mein fehler oder was hab ich vergessen ?
    es muss doch möglich sein beliebig grosse dateien in CEdit (oder CRichEdit, funtionen sind identisch !!) darzustellen. kennt sich jemand damit aus ?
    es hat doch sicher schoneinmal jemand einen Editor geschrieben.
    kurz noch die umgebung: VC++/6.0 ,MFC,Dialogbasiert.danke

    nur so am rand, kann mir mal jemadn das mit den code-tags verklickern ?
    scheint irgendwie nich zu gehen

    [ Dieser Beitrag wurde am 09.10.2002 um 16:02 Uhr von pain_md editiert. ]



  • Vielleicht beschreibst du erstmal ausführlich was nich geht...
    Kommen Fehlermeldungen ? ODer wird einfach nichts angezeigt oder was ?
    Also so auf den ersten Blick sollte das mit dem unteren Code gehen



  • folgendes: das einlesen mach steuere ich über einen button.sprich drauf klickt heist datei holen-lesen-reinschreiben (OnButtontralala..)
    mit kleinen dateien kein problem.draufklicken,text ist da.sobald die dateien grösser sind klick ich drauf und dann passiert gar nichts !!!!!!
    das programm is verreckt und lässt sich nur mit dem taskmanager töten.
    wie gesagt, keine fehlermeldung, debuger bringt auch nix.
    das prob is das ich im Edit, bzw RichEdit nich unendlich viele zeichen reinschreiben kann(in der standardinitialisierung), ich muss also was finden was dem Editboxen sagt: du darfst soviel zeichen lesen und reinschreiben wie du willst, ok so ? 😉
    gruss pain



  • Also bei kleinen Dateien gehtz ja ?
    Hast du denn schon ma länger gewartet wenn du was grosses öffnest ?
    Notepad braucht ja auch ne weile, wenn man versucht 1GB damit zu öffnen 😉 😃
    Die Angabe der Größe solltest du auf Standard (Keine Längenprüfung) lassen. Soweit ich weiss, reserviert CString den erforderlichen Speicher dynamisch bei der Zuweisung (Sofern du CString als Speicher für dein CEdit verwendest)



  • jo, hast recht wenn du ne weile wartest kommts.für alle die es interresiert:
    wenn man was grosses irgendwo reinschreiben will am besten listbox, is zwar mit editieren schlecht, aber für nur lesen reichts.
    dank und gruss

    pain


Anmelden zum Antworten