Zeile aus RichEdit lesen



  • Muss ich alle *.cab Datein runterladen, oder reicht "PSDK-FULL.1"??



  • Englischnachhilfe: 😉
    2.Click each PSDK-FULL .cab file to save it.
    each - jede

    Du mußt wohl alle runterladen. Die 1,4 GB kann ich nicht bestätigen bei mir 550 MB.
    Ich muß immer wieder reinschauen, und auch ich stehe mit der englichen Sprache auf Kriegsfuß.
    Mir hilft nur eins: Nochmal und Nochmal lesen zudem habe ich als Wörterbuch QuickDic installiert (frei erhältlich).
    Ich versuche mich halt mit der Sprache vertraut zu machen da es ohne halt nicht geht.

    Gruß Alex



  • Ok, und wonach muss ich suchen??





  • Genau oder in der SDK nach Rich Edit, da stößt Du dann auch auf die "Rich Edit Conrols".

    Gruß
    Alex



  • Das was in der MSDN steht, wusste ich ja schon.
    Und das aus der SDK ist auch nicht viel mehr...

    So wie das da beschrieben ist, müsste es ja Funktionieren, mein Problem ist aber, das es SO NICHT funktioniert, und ich auch nicht genau weis, wo das Problem bei (meinem) code ist, da halt alles so ist, wie es sein müsste. Ich weiß nur, das es an der Stelle irgendwo nen Problem gibt, was dazu führt, das nicht die Zeichen eingelesen werden, die in dem Control stehen...
    -> Gibts nicht nen irgendwo nen Beispielcode, mit dem ich (meinen) code vergleichen könnt??



  • so, hab inzwischen nen paar Fehler beseitigt:

    //Komplette erste Zeile einlesen:
     char* LineBuffer = new char[LineLength+2];
     ZeroMemory(LineBuffer,LineLength+2);
      char LineBufferSize[10];
      itoa(LineLength+2, LineBufferSize, 10);
      strcpy(LineBuffer,LineBufferSize);
     SendMessage(this->RichEdithWnd,EM_GETLINE,Line,(LPARAM)LineBuffer);
    

    Den code hab ich zZ immer noch bei WM_CHAR...

    Wenn ich jetzt "123" eingebe, steht in dem Buffer folgendes:

    LineLength: 0
    LineBegin:  0
    Line:       0
    LineBuffer: 
    
    LineLength: 1
    LineBegin:  0
    Line:       0
    LineBuffer: 1
    ?w???
    
    LineLength: 2
    LineBegin:  0
    Line:       0
    LineBuffer: 12
    w???
    

    Die Zahlen in LineBuffer sind genau so, wie sie sein sollten, aber was ist mit den "w"s und den "?"-Zeichen?? Wo kommen die wech??



  • Hi RedEagle,
    ich würde darauf tippen, daß dies einfach der Wert ist der im Speicher steht nachdem du diesen allociert hast. Du solltest deinen String am Schluß einfach mit NULL terminieren.

    Gruß Alex



  • So, nach langem suchen weiß ich jetzt endlich woran es lag.
    Nach dem ende der zeile kam noch ein '\r' und dann dieser müll.

    Das hab ich jetzt so behoben:

    char* TempLine = new char[arraylength];
       strcpy(TempLine,LineBuffer);
       ZeroMemory(LineBuffer,arraylength);
       for(int i=0; TempLine[i]!='\r'; i++) LineBuffer[i]=TempLine[i];
     delete[] TempLine;
    

    gibts da auch ne "schönere" lösung für??
    Also um bis zum '\r' beizubehalten, und den rest löschen??



  • RedEagle schrieb:

    gibts da auch ne "schönere" lösung für??
    Also um bis zum '\r' beizubehalten, und den rest löschen??

    So sollte das eigentlich auch funktionieren:

    *(strchr(LineBuffer,'\r')) = 0;
    


  • danke, aber irgendwie brauchte ich das nur, solange ich in der Funktion ofstream verwendet habe, als ich die sachen rausgenommen habe, war aufmal kein \r mehr da...
    jedenfals läuft jetzt alles,

    DANKE


Anmelden zum Antworten