hi ho
kannmir jemand diese lösung als porgramm schreiben ich raff es einfach net:
aufgabe:
function getwordfromstr (byref text$, byval num& as string
Schreiben sie eine function die jeweils das „num“-te Wort aus einem übergebenen Text zurückliefert…
sorry aber ich hab keinen balssen schimmer danke im vorraus
so einfach mach ichs dir nicht:
Du sollst aus einem Satz das num(x) te Wort zurückgeben.
Also mußt du die Leerzeichen suchen, da jedes Wort mit einem Leerzeichen getrennt wird.
Also jedes Zeichen einzeln anschauen und sich die Leerzeichen merken.
Als Beispiel ‚das dritte Wort‘, 3:
Das dritte Wort - ist also ‚Wort‘, dazwischen hast du 2 Leerzeichen gefunden, also mußt du die Zeichen zwischen dem 2. und 3. Leerzeichn zurückgeben.
Geht mit 2 Schleifen bestimmt ganz einfach…
Gruß
Joe
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Function getwordfromstr(ByRef text$, ByVal num&:wink: As String
Dim i As Long, getword As Long
Dim flag As Boolean
getword = 0
flag = True
If (Mid(text, i, 1) = num) Or (i = Len(txt)) Then
If (flag = False) Then
getword = getword + num
flag = True
End If
Else
flag = False
End If
Next i
getwordfromstr = getword
derzeitg mein versuch aber irgendwie voll der fehler
ok das müsste dann die lösung seinFunction GetWordFromStr(ByRef text$, ByVal num&:wink: As String
Dim retwert As String
Dim i As Long, wordcount As Long
Dim flag As Boolean
flag = True
For i = 1 To Len(text)
If (Mid(text, i, 1) = " ") Or (i = Len(text)) Then
If (flag = False) Then
wordcount = wordcount + 1
flag = True
End If
Else
If (wordcount + 1 = num) Then
retwert = retwert & Mid(text, i, 1)
End If
flag = False
End If
ok das müsste dann die lösung seinFunction
sieht Spitze aus, aber beim letzten Wort wollen wird der letzte Buchstabe abgezwackt…
Mach deine Schleife einfach eins weiter und vergioss nicht den Ausstieg zu erweitern:
For i = 1 To Len(text) + 1
If (Mid(text, i, 1) = " ") Or (i = Len(text) + 1) Then
Hallo Fragewurm,
Schön es wird sogar berücksichtigt dass da mehrere Blanks stehen können und sogar welche am Anfang des Strings
)
Wenn du dich noch steigern willst, kannst du auch noch TAB als Trennzeichen zwischen Wörtern zulassen und ein Zeilenumbruch ist eigentlich auch noch ein Worttrenner.
MfG Peter(TOO)
P.S. Mit dem TAG werden die Listings hier lesbarer.
ok das müsste dann die lösung seinFunction
> GetWordFromStr(ByRef text$, ByVal num&:wink: As String
> Dim retwert As String
> Dim i As Long, wordcount As Long
> Dim flag As Boolean
>
>
> flag = True
> For i = 1 To Len(text)
> If (Mid(text, i, 1) = " ") Or (i = Len(text)) Then
> If (flag = False) Then
> wordcount = wordcount + 1
> flag = True
> End If
> Else
> If (wordcount + 1 = num) Then
> retwert = retwert & Mid(text, i, 1)
> End If
> flag = False
> End If
ok danke an alle werde bis nächsten dienstag ncoh mega büffeln müssen a ich dann prüfung hab…aber danach kann ich euch ja mit java belästigen das hab ichdann die nächsten vier wochen
also danke
mfg
andy
Echt? Die versauen Euch erst mit VB, bevor sie Euch die „richtigen“ Sachen zeigen? Wer macht denn sowas? *kopfschüttel*
Und jetzt schnell die Asbestjacke anziehen… 
Gruß,
Martin
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]
Versuch’s mal damit:
Function getwordfromstr(ByRef text$, ByVal num&:wink: As String
Dim a As Variant
a = Split(text, " ")
If (num - 1 0) Then
getwordfromstr = a(num - 1)
End If
End Function