Finden wo nichts ist.



  • Es lauft super auser das ich irgent wie keinen wert in find bekomme den die msg würd immer ohne Zahl dargestellt. Bei mir sieht das jetzt so aus:

    UpdateData();
    
        int find = m_para.Find("-",0);
    
        if(find != -1) 
        {
            int find1 = m_para.Find(" -",0);
    
            if(find1 == -1) 
            {
                m_para.SetAt(find1-1,' ');
            }
        }
    

    Aber irgent wie lauft das net.(Er setzt kein " " vor dem "-" den find1 bz find is ja nie vorhanden)



  • Es lauft super auser das ich irgent wie keinen wert in find bekomme den die msg würd immer ohne Zahl dargestellt.

    Irgendwie erinnert mich das stark an den gestrigen Beitrag "Warum die Firmen Angst vor Azubis haben"

    Zum Code:
    Also ein ganz kleines bisschen Nachdenken wäre schon nicht schlecht.
    "enn '-' gefunden, dann, wenn '-' nicht gefunden, tue was."



  • naja:

    Wenn er ein "-" findet wirt überprüft ob ein leerzeichen vor dem "-" ist wenn nicht dann soll vor dem "-" ein leerzeichen gesetzt werden.



  • Was machst du wenn z.B. "-" an erster Stelle gefunden wird.

    m_para.SetAt(0-1,' ');
    

    Einfach ein -1 annehmen ist schlechter Code.
    Debugge mal deinen Source und gehe ihn Zeile für Zeile durch. Was steht dann wo drin. u.s.w.



  • @Lutz
    *staun*
    Das nenn ich 'ne Rechtschreibungsverbesserung 😉

    Zu meinem Beitrag
    "-" -> " -", da hatte ich wohl das Leerzeichen vor dem '-' übersehen.

    Den Code würde ich mal so probieren:

    int find = m_para.Find( '-', 0);
    if( (find > 0) && (m_para[find-1] != ' '))
      m_para.Insert( find-1, ' ');
    


  • So lauft es super:

    int find = m_para.Find('-', 0);
    
        if( (find > 0) && (m_para[find-1] != ' '))
        {
            m_para.Insert(find, ' ');
        }
    

    Es gibt nur noch ein Problem was damit eigentlich nicht zutun hat. Er springt nach dem Insertbefehl auf Position 0. Ich habe es mit:

    CEdit *pEdit = (CEdit*)GetDlgItem(IDC_EDIT_PARA);
                pEdit->SetSel(pEdit->GetWindowTextLength(),pEdit->GetWindowTextLength());
    

    versucht aber irgendwie hilft es nichts.



  • Davor UpdateData(FALSE) aufrufen hilft glaub ich.



  • Das ganze siht ja so aus:

    UpdateData(true);
    
        int find = m_para.Find('-', 0);
    
        if( (find > 0) && (m_para[find-1] != ' '))
        {
            m_para.Insert(find, ' ');
        }
    
        UpdateData(false);
    

    DAS Update muss da stehen sonst geht es nicht



  • Das ganze sieht (so is es richtig)



  • hat auch niemand was anderes behauptet. du sollst UpdateData(FALSE) aufrufen, bevor du das mit SetSel machst.


Anmelden zum Antworten