tsukisan
Goto Top

How To... Groß- oder Kleinbuchstaben mit VBS und nach Zeichen oder Woertern suchen

Dieser Tipp könnte denen hilfreich sein, die immer mal in bestimmten Dateien nach Zeichen (Buchstaben) suchen und
wissen möchten, ob die existieren .

Hallo liebes Forum.

Gegeben:
1) Man(n) oder Frau auch möchten per VBS ein Wort oder Zeichen oder Buchstaben finden, der sich in einer Textdatei befinden soll.
Beispiel:
In einer Datei sind Adressen von Kunden abgelegt nach folgendem Schema:
Kopf: Name, Vorname, Telefon, Email.
Wert1: Mayer,George,0190696969,Mayer@wunschadresse.xx
Wert2: mayer,hans,0190696969,mayer@wunschadresse.xx
usw.
Wenn man jetzt mit der InStr-Funktion nach z.Bsp.: "Mayer" sucht, dann "spuckt " uns das "Ding" nur einen Eintrag aus.
Wir möchten aber in der (eventuell so benannaten) Suchspalte nicht immer auf solche Kleinigkeiten achten, ob der Name nun mit einen Groß- oder Kleinbuchstaben anfängt.
Also könnte unser Script so aussehen
SuchChar = Inputbox("Bitte Namen eingeben")  
'..... Datei öffnen und zeilenweise einlesen  
SuchText = 'ganze Zeile von Datei'  
'.....dann den ganzen String prüfen  
        TextPos = InStr(SuchText, SuchChar)
        ' Groß/Kleinschreibung egal nur am Anfang des Suchbegriffes!!!!!  
        If TextPos = "0" Then  
            SuchCharTemp = Chr(32 Xor Asc(SuchChar)) & Mid(SuchChar, 2, Len(SuchChar))
            TextPos = InStr(SuchText, SuchCharTemp)
        End If
        If TextPos <> "0" Then  
            Wscript.Echo  "Herr/Frau" & SuchChar & " wurde gefunden."  
        End If

'....und wieder von vorn, bis die Datei komplett bis zum Ende ausgelesen und geprüft worden ist  
Die Variable "TextPos" gibt beim Auffinden des eingebenen Suchbegriffes uns die Position an, an welcher Stelle sie diese "Übereinstimmung" findet. Bei "Mayer" wäre dies ("Wert1: Mayer....") die 8te Stelle.

Dieses Schnipsel funktioniert bestens bei Buchstaben. Bei Zahlen und Sonderzeichen macht es keinen Sinn, weil
da gibt es diese Groß-/Kleinschreibung ja nicht! face-wink

Wie gesagt/geschrieben, dies soll helfen nach Wörten oder Buchstaben zu suchen, bei denen es egal ist ob sie groß oder klein anfangen.

Gruß
Tsuki
Ps.: man kann damit auch nach Dateien in einem Ordner suchen lassen, z.Bsp.: die MP3-Sammlung nach Liedern durchsuchen, ob man diese schon hat oder nicht. Aber das vielleicht beim nächsten Mal
PSS.: Etwaige Zusammenhänge mit obig aufgeführten Personen sind rein zufällig und sind niemals nicht beabsichtigt!

Content-Key: 119747

Url: https://administrator.de/contentid/119747

Ausgedruckt am: 29.03.2024 um 12:03 Uhr

Mitglied: 80220
80220 05.07.2009 um 12:40:04 Uhr
Goto Top
Ist dir findstr bekannt? Das Konsolentool ist Bestandteil von z. B. Windows XP.
Es gibt immer komplizierte Lösungen. Warum einfach, wenn es auch umständlich geht
Mitglied: TsukiSan
TsukiSan 05.07.2009 um 12:44:41 Uhr
Goto Top
Hi dumdideldum,

mir ist es bekannt. Aber wenn du ein paar viele Anfragen zurückschaust, wirst du feststellen, daß viele alles mit entweder batch oder vbs selber kreieren möchten. Und für diese Mitmenschen habe ich mich am Sonntag hingesetzt, um ihnen etwas Anregungen zu geben, wie man selber batchen/scripten kann. Dann weiß man nachher wenigstens, wem man die Schuld bei PC-Versagen geben kann face-wink

Dir auch einen schönen Sonntag
Tsuki
Mitglied: 80220
80220 05.07.2009 um 12:49:42 Uhr
Goto Top
Hi,

Wenn ich ein paar viele Anfragen zurückschaue, stelle ich nur fest, dass bei den meisten Fragestellern entweder die Suchfunktion defekt ist oder sie nicht in der Lage sind, passende Suchbegriffe einzugeben bzw. sie sich keine Mühe geben. Lösungen zu dem von dir im Tipp geposteten "Problemchen" gibt es satt, auch hier im Forum.
Zu möglichen Problemen mit vbs-Scripten sage ich diesmal nichts.

Gruß
dumdideldum
Mitglied: 76109
76109 05.07.2009 um 14:42:01 Uhr
Goto Top
Hallo TsukiSan!

Sei mir bitte nicht böse, aber Dein Geschnipsel ist Blödsinnface-smile

Die Funktion InStr beinhaltet bereits einen Textvergleich, in dem zwischen Groß/Kleinschreibung NICHT unterschieden wird:
Pos = InStr(Startposition, String1, String2, vbTextCompare)

Gruß Dieter

[edit] hatte die Startposition vergessen und diese auf Anregung von TsukiSan noch hinzugefügt [/edit]
Mitglied: TsukiSan
TsukiSan 05.07.2009 um 14:55:56 Uhr
Goto Top
Hallo Dieter,

danke dir für die konstruktive Kritik!
Aber nimm bitte auch meine hin, daß dein Schnipsel auch Blödsinn ist und nicht funktioniert, außer mit Fehlermeldung face-wink
du müßtest dann schon die Stelle angeben, ab wo eingelesen werden soll.
Beispiel:
Pos = InStr(1,String1, String2, vbTextCompare)
Dann würde es auch was werden face-smile

Trotzdem Danke!
Ich möchte denen, die es interessiert einfach nur eine Anregung geben, sich mit scripting auseinander zusetzen.

Gruß
Tsuki
Mitglied: 76109
76109 05.07.2009 um 15:03:43 Uhr
Goto Top
Hallo TsukiSan!

Du hast recht, ich war etwas verwirrt und habe leider vergessen, dass die Startposition mit angegeben werden mussface-smile

Gruß Dieter
Mitglied: TsukiSan
TsukiSan 05.07.2009 um 15:07:00 Uhr
Goto Top
Hallo Dieter,

ist doch kein Problem.
So macht lernen doch wieder Spaß face-smile

Viele Grüße
Tsuki
Mitglied: 80220
80220 05.07.2009 um 15:18:51 Uhr
Goto Top
Zitat von @TsukiSan:
Ich möchte denen, die es interessiert einfach nur eine Anregung geben, sich mit scripting auseinander zusetzen.

Ich auch:
http://www.tecchannel.de/sicherheit/spam/401881/sicher_im_web_unterwegs ...

Besonders den letzten Satz im verlinkten Artikel sollte man sich gut merken!

Und da es mit (vsb- und wsh-)Scripten möglich ist, Schweinereien auszuführen und das auch noch unsichtbar, rate ich von der unnötigen Verwendung von Scripten ab, wenn es andere Lösungen gibt.
Mitglied: TsukiSan
TsukiSan 05.07.2009 um 15:28:23 Uhr
Goto Top
@80220

ich weiß nicht, aber irgendwie kommentierst du am Thema vorbei oder mein IE geht auf die falsche Seite beim Anklicken deines Links.
Was hat mein "Schnipsel" mit Zertifizierung zu tun?
Sehen wir in meinem Beispiel irgendein Risiko für Mensch und Maschine?
Sorry, aber kann da nicht folgen.

Bitte konstruktive Kritik!

Gruß
Tsuki
Mitglied: 80220
80220 05.07.2009 um 15:33:27 Uhr
Goto Top
Zitat von @TsukiSan:
Sorry, aber kann da nicht folgen.

Das ist an deinen Kommentaren deutlich zu merken. Aber das ist dein Problem.
Vielleicht solltest du etwas weniger posten und dafür etwas öfter nachdenken. face-smile
Mitglied: TsukiSan
TsukiSan 05.07.2009 um 15:36:21 Uhr
Goto Top
Zitat von @80220:

Das ist an deinen Kommentaren deutlich zu merken. Aber das ist dein
Problem.
Vielleicht solltest du etwas weniger posten und dafür etwas
öfter nachdenken. face-smile



Ok, ich denke nach, bewerbe mich als Versicherungsmakler und verkaufe dir "Sicherheit" Dann werde ich reich face-wink
Mitglied: TsukiSan
TsukiSan 05.07.2009 um 17:18:25 Uhr
Goto Top
@dumdideldumm
bevor ich dir Versicherungspolicen verkaufe - was ein leichtes scheint! - möchte ich dich lieber dazu anregen, etwas zum Thema beizutragen.
Du weißt sicherlich, was "Klassen" und "Objekte" sind.
Wie würdest du mein script-Schnipsel in solches verfassen?
Wir reden hier über VBS-scripting. Eine Ahnung, wie man sich Klassen oder Objekte in VBS erstellt? Gib mal ein Beispiel!
Nein? Hier ist nur eines davon.
Und keine Frage! Ich verstehe es!
Schon jemals was eigenes programmiert?
Nein?
Was zum lesen, verstehen, umsetzen!

Gruß
Tsuki
Mitglied: 80220
80220 05.07.2009 um 18:16:32 Uhr
Goto Top
Du verstehst nichts.
Das Thema ist für mich beendet.