Zum Inhalt springen

Schleifendurchläufe zählen bei Do While...Loop in VBS


Smilla

Empfohlene Beiträge

Hallo, ich bins schon wieder ;)

Aktuelles Problem: Bei meinem Script sollen die Schleifendurchläufe gezählt werden und somit soll herausgefunden werden wie oft "str2" in "str1" enthalten ist ;-)

Wie und wo muss ich eine Zählvariable einbauen?


Option Explicit


Dim str1

Dim str2

Dim x

Dim ergebnis

Dim anzahlEin


str1 = "Deiner ist ein schöner Text, meiner nicht."

str2 = "ein"

x = 1


ergebnis = InStr (x, str1, str2)


Do While ergebnis <> 0


	x = ergebnis


	ergebnis = InStr (x, str1, str2)


Loop 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Option Explicit


Dim str1

Dim str2

Dim x

[B]Dim i[/B]

Dim ergebnis

Dim anzahlEin


str1 = "Deiner ist ein schöner Text, meiner nicht."

str2 = "ein"

x = 1

[B]i = 0[/B]


ergebnis = InStr (x, str1, str2)


Do While ergebnis <> 0


	x = ergebnis


	ergebnis = InStr (x, str1, str2)


[B]	i = i + 1[/B]

Loop 

Link zu diesem Kommentar
Auf anderen Seiten teilen


Option Explicit


Dim str1

Dim str2

Dim x

Dim ergebnis

Dim anzahlEin

[COLOR="Red"]Dim cnt[/COLOR]


str1 = "Deiner ist ein schöner Text, meiner nicht."

str2 = "ein"

x = 1

[COLOR="red"]cnt = 0[/COLOR]


ergebnis = InStr (x, str1, str2)

Do While ergebnis <> 0

	x = ergebnis

	ergebnis = InStr (x, str1, str2)

[COLOR="red"]	if ergebnis > 0 then

		cnt = cnt + 1

	end if[/COLOR]	

Loop 

ach ja, guck doch mal da: http://www.romankoch.ch/capslock/strfun.htm

willst du nicht doch lieber gleich sowas verwenden?

s'Amstel

Link zu diesem Kommentar
Auf anderen Seiten teilen

@Amstelchen: jetzt wenn du noch die überprüfung inner schleife rausnimmst bin ich glücklich (sonst wird eins zu wenig gezählt da er ja außerhalb der schleife die erste abfrage macht)

was die endlosschleife angeht ... es kann auf jeden fall nicht an der zählervariable (i oder cnt oder wie auch immer) liegen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Baue ich es unter die Do...Loop Schleife dann bekomme ich keine Ausgabe :(
ist klar weil die endlosschleife ja nicht fertig wird (egal ob mit oder ohne die ausgabe)

gib in der schleife lieber mal nicht die zählervariable sondern die "ergebnis"-variable aus, dann wirst du auch sehen warum er die schleife nicht verlässt.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Du meinst so?

Dann gibts ne Endlosschleife wo "2" ausgegeben wird

Option Explicit


Dim str1

Dim str2

Dim x

Dim ergebnis

Dim anzahlEin


str1 = "Deiner ist ein schöner Text, meiner nicht."

str2 = "ein"

x = 1


ergebnis = InStr (x, str1, str2)


Do While ergebnis <> 0


	x = ergebnis


	ergebnis = InStr (x, str1, str2)


wscript.echo ergebnis


Loop 

Link zu diesem Kommentar
Auf anderen Seiten teilen

*auf kopf hau*

der fehler is eigentlich relativ klar nur stand ich wiedermal auf dem schlauch.

probier das:

Option Explicit


Dim str1

Dim str2

Dim x

Dim ergebnis

Dim anzahlEin


str1 = "Deiner ist ein schöner Text, meiner nicht."

str2 = "ein"

x = 1


ergebnis = InStr (x, str1, str2)


Do While ergebnis <> 0


	x = ergebnis + 1


	ergebnis = InStr (x, str1, str2)


Loop 

Link zu diesem Kommentar
Auf anderen Seiten teilen

*g*

okok hier wirds schön langsam richtig unübersichtlich mit den ganzen ähnlichen codebeispielen.

hier nochmal komplett:

Option Explicit


Dim str1

Dim str2

Dim x

Dim i

Dim ergebnis

Dim anzahlEin


str1 = "Deiner ist ein schöner Text, meiner nicht."

str2 = "ein"

x = 1

i = 0


ergebnis = InStr (x, str1, str2)


Do While ergebnis <> 0


	x = ergebnis + 1


	ergebnis = InStr (x, str1, str2)


	i = i + 1

Loop 

wscript.echo i

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...