Smilla Geschrieben 30. November 2005 Teilen Geschrieben 30. November 2005 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
jasso Geschrieben 30. November 2005 Teilen Geschrieben 30. November 2005 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Amstelchen Geschrieben 30. November 2005 Teilen Geschrieben 30. November 2005 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
jasso Geschrieben 30. November 2005 Teilen Geschrieben 30. November 2005 @Amstelchen: ich find es persönlich etwas umständlich die zählvariable mit 1 vorzubelegen und nacher zu überprüfen ob der string nochmals gefunden wurde, aber das ist sicher geschmackssache^^. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Smilla Geschrieben 30. November 2005 Autor Teilen Geschrieben 30. November 2005 Wenn ich "i" dann mit wscript.echo ausgeben will dann habe ich eine Endlosschleife erzeugt! P.S. das ist jetzt auf Jasso´s erste Antwort bezogen Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Amstelchen Geschrieben 30. November 2005 Teilen Geschrieben 30. November 2005 @jasso: hab ich gleich korrigiert gehabt @smilla: wie, endlosschleife? wo setzt du denn das echo ein? s'Amstel Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
jasso Geschrieben 30. November 2005 Teilen Geschrieben 30. November 2005 @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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Smilla Geschrieben 30. November 2005 Autor Teilen Geschrieben 30. November 2005 Ich habe oberhalt des "Loop" das wscript.echo eingesetzt. Baue ich es unter die Do...Loop Schleife dann bekomme ich keine Ausgabe Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
jasso Geschrieben 30. November 2005 Teilen Geschrieben 30. November 2005 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Smilla Geschrieben 30. November 2005 Autor Teilen Geschrieben 30. November 2005 @jasso: und was tue ich am besten dagegen? Die Do...Loop Schleife wird aber doch fertig wenn das Ergebnis 0 ist, wenn Instr. keine Übereinstimmung (mehr) findet, bekommt man als Rückgabe 0. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
jasso Geschrieben 30. November 2005 Teilen Geschrieben 30. November 2005 probier mal statt Do While ergebnis <> 0 einDo While ergebnis > 0 evtl wird nämlich nicht 0 sondern NULL als ergebnis geliefert. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Smilla Geschrieben 30. November 2005 Autor Teilen Geschrieben 30. November 2005 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
jasso Geschrieben 30. November 2005 Teilen Geschrieben 30. November 2005 *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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Smilla Geschrieben 30. November 2005 Autor Teilen Geschrieben 30. November 2005 @Jasso: Danke was lasse ich jetzt ausgeben? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
jasso Geschrieben 30. November 2005 Teilen Geschrieben 30. November 2005 *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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Smilla Geschrieben 30. November 2005 Autor Teilen Geschrieben 30. November 2005 Wenn ich jetzt X ausgeben lasse dann kommen 3 Zahlen (die 3 Positionen an denen sich "ein" befindet) aber jeweils eine Zahl zu hoch, also statt Pos. 2 kommt 3 usw. Eigentlich ja logisch, aber was lasse ich stattdessenausgeben? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Smilla Geschrieben 30. November 2005 Autor Teilen Geschrieben 30. November 2005 Vielen Dank Jasso! :e@sy Jetzt passt es! Muss ich mir nur noch klar werden wie das alles funktioniert und das alles auch erklären können, dann geht das Beispiel per eMail ab zum Ausbilder Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
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.