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
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
Comment