Announcement

Collapse
No announcement yet.

Satz aus CString extrahieren

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Satz aus CString extrahieren

    Hallo!
    Ich habe ein kleines Problem mit einem CString.
    Und zwar ist das Ziel, einen zufällig gewählten Satz aus einem großen CString zu extrahieren.
    "Satz" soll also das bedeuten, was zwischen zwei Punkten steht.
    Die rand-Funktion würfelt mir eine Zufallszahl aus, die für einen Punkt im ganzen CString stehen soll. Angenommen, es handelt sich um 54, dann soll damit der 54. Punkt im CString gemeint sein.
    Wenn der dann gefunden ist, müsste ich von da an nur die Zeichen soweit zurückgehen, bis ich auf den nächsten Punkt stoße und habe dann mit allen Zeichen, die dazwischenliegen, einen Satz ausgewählt.

    Mein Problem liegt nun darin, dass ich nicht weiß, wie ich den i-ten Punkt in einem String ausfindig machen kann und dann auch noch den Satz links davon bis zum nächsten Punkt herausfinden kann!

    Wenn mir jemand helfen könnte, wäre ich sehr dankbar!
    mfg


    EDIT: Und wieder einmal bewahrheitet sich, wenn man lang genug dranbleibt, kriegt man die Lösung auch raus!
    Der funktionierende Code, falls es jemanden interessiert:


    CString strGesamt;

    //String extrahieren
    int pos = 0;
    int i;
    int temp = 0;
    for(i=0; i<iZufallszahl; i++)
    {
    pos = strGesamt.Find('.', temp);
    temp = (pos+1);
    }
    int pos2 = 0;
    temp = 0;
    for(i=0; i<(iZufallszahl-1); i++)
    {
    pos2 = strGesamt.Find('.', temp);
    temp = (pos2+1);
    }
    int ilaenge = (pos - pos2);
    CString strSatz = strGesamt.Mid((pos2+1), ilaenge);
    MessageBox(strSatz);
    //String anzeigen

    Vielen Dank trotzdem!
    Michi
    Zuletzt editiert von Michi62; 20.02.2008, 21:52. Reason: gelöst

  • #2
    Satz aus CString extrahieren

    hilft es Dir nicht wenn Du die Stringlänge hast:

    long lSatzLaenge = str.Getlength();

    Comment

    Working...
    X