If( CHARFORMAT1 == CHARFORMAT2 )



  • Lass dir doch einfach mal die Werte von dwMask und dwEffects ausgeben.



  • Wenn ich das nur könnte... Sry aber ich habe schon verzweifelt gesucht, ih habe es nie hinbekommen...


  • Mod

    Einfach Breakpoint setzen. Vursor auf die Variable und Shift+F9 oder einfach hoovern und auf Tooltip warten...



  • lippoliv schrieb:

    Wenn ich das nur könnte... Sry aber ich habe schon verzweifelt gesucht, ih habe es nie hinbekommen...

    Hast Du keinen Debugger, der Dir bei Variablenwatch behilflich sein könnte?
    Oder warum kannst Du das nicht?

    Martin



  • Nohcmals zu meinen primitiven mitteln:
    Notepad++ (KEIN interner compiler/debugger)
    MinGW(EXTERNER compiler)

    Ich weiß nich wer Notepad++ kennnt, aber der einzige unterschied zu Notepad ist syntaxhighlighting was manchmal zu wünschen übrig lässt...

    printf( "%d/%s/%l/%f", form1->dwEffects, form1->dwEffects, form1->dwEffects, form1->dwEffects );
    

    funktioniert alles nicht (alles 0, bis auf %s"<null>" und %l""...)



  • Nun, was soll ich denn nun dazu sagen? *räusper*

    Du weißt nicht was für ein mächtiges Werkzeug Dir mit einem fehlenden Debugger entgeht...
    Mit einem Debugger kannst Du wirklich jede einzelne Codezeile Schritt für Schritt verfolgen und dabei gleichzeitig die Variablen- und Struktur-Inhalte (hinein)sehen!

    Ohne überheblich zu wirken, mein Rat: Besorg Dir ein vernünftiges integriertes Entwicklungssystem. Es gibt welche die kostenlos sind!
    Z.B. BCB Borland C++ Builder oder auch die Express-Editionen von Microsoft Visual C++.

    Martin



  • lippoliv schrieb:

    printf( "%d/%s/%l/%f", form1->dwEffects, form1->dwEffects, form1->dwEffects, form1->dwEffects );
    

    funktioniert alles nicht (alles 0, bis auf %s"<null>" und %l""...)

    Was heißt "funktioniert alles nicht"?

    Wenn bei %d 0 ausgegeben wird, dann steht da eben der Wert 0 drin. Was ist mit dwMask und den Werten der anderen Struktur?

    P.S.: Benutz besser %08x, dann kann man die Flags besser ablesen.



  • Min jung, ik hab mit soeppes scho georbeided...

    Ne wirklich, ich weiß was mir entgeht, sehr geil.. F7 eine Zeile weiter F8 in die aufgerufene funktion, und da mit F7 jede Zeile weiter, F9 bis zum nächsten haltepunkt..

    Ich habe momentan keine Wahl, da ich in der Ausbildung bin, und wir "ein auge für kot... äh code" 😃 bekommen sollen...

    Ich werde warten müssen bis mein Chef sein OK gibt.

    Kann irgendwer von euch das mal debuggen? würde die Entsprechenden Dateien online stellen...


  • Mod

    lippoliv schrieb:

    Nohcmals zu meinen primitiven mitteln:
    Notepad++ (KEIN interner compiler/debugger)
    MinGW(EXTERNER compiler)

    <kopfschüttel /> Kein Kommentar!

    Du springst auch in den Atlantik und schwimmst, wenn Dir einer sagt, dass Du nach Amerkia sollst? 🤡



  • http://nopaste.info/3ae76c15d7_nl.html
    und
    http://nopaste.info/a1398f8a1c_nl.html

    Soll ich meinem Chef sagen
    "Mir ist egal was sie denken... ich mach was ich will!"? 😃

    Mein Chef war seit ca. 1 Monat nicht mehr bei uns Azubis, er hatte glaube ich auch nie vorgesehen, dass wir WinAPI machen, aber ich forsche gerne, weil ich so lerne...

    Naja, währ halt cool wenn irgendwer mal den code durch nen Debugger jagen könnte / mir sagen könnte, wo ich einen C debugger finde *verzweifel*



  • Du musst den cbSize-Member deiner CHARFORMAT-Strukturen initialisieren.

    Ansonsten sollte dir nur klar sein, dass bei deiner Vorgehensweise das erste Zeichen, bei dem der Vergleich fehlschlägt, bereits in buff drinsteht, weil du es schon vor der Formatprüfung dorthin einliest.



  • aber dann wird es wieder überschrieben, daher die bedingte inkrementierung von i...

    [edit]es funktioniert nicht 😢



  • lippoliv schrieb:

    aber dann wird es wieder überschrieben, daher die bedingte inkrementierung von i...

    Da wird gar nichts überschrieben, weil du die Schleife abbrichst (isEnd = true;), wenn der Formatvergleich fehlschlägt.



  • (mein edit von eben) deine sache funktioniert nicht 😢

    Die schleife wird abgebrochen wenn das nächste Zeichen zu dem aktuellen eine andere formatierung hat... Nach schleifenabbruch wird

    buff[i+1] = '\0';
    

    ausgeführt... oder hab ich das vergessen?



  • JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

    es geht.. ich hatte es vergessen... diene methode geht.... JAAAAAAAA

    SERH GEIL::: DANKE ALLEN.....

    (buff[i+1] nach der schleife auf \0 setzen, und cbSize initialisieren.



  • lippoliv schrieb:

    (buff[i+1] nach der schleife auf \0 setzen

    Oder vielleicht die Zeichen erst dann (und dann gleich auf einen Rutsch) rauslesen, wenn du mit der Formatprüfung fertig bist. Das Eine hat ja mit dem Anderen nichts zu tun.



  • Doch, ich muss sie danach nicht mehr selektieren, also später...

    apropo... es läuft die Formatier-Aktion schonmal, jetzt kommt allerdings noch etwas anderes zu tragen: Wie komme ich in die zweite Zeile?


Anmelden zum Antworten