vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Schützen Sie Ihre Software vor Software-Piraterie - mit sevLock 1.0 DLL!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Visual-Basic Einsteiger
Zeichenfolge auf mehrere Zeichen hin untersuchen 
Autor: CarloStein
Datum: 06.11.19 11:53

Hallo,

Win10, VB6.0

Ist es möglich in einer Zeile Code eine Zeichenfolge zb. "abcdef" auf mehrere Zeichen "f,e" hin zu untersuchen.
Mit der InStr-Funktion kann man meines Wissens eine Zeichenfolge nur auf ein Zeichen hin untersuchen.

Bitte um Hilfe, Dank im Voraus!

Ps.: Ja es muss aus bestimmten Gründen in einer Zeile Code erfolgen, auch wenn Sie das jetzt nicht nachvollziehen können.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Zeichenfolge auf mehrere Zeichen hin untersuchen 
Autor: Zardoz
Datum: 06.11.19 15:10

Hallo CarloStein,
meinst du so:
  Dim T$
 
  T = "abcdefghij"
  If T Like "*[ae]*" Then
    MsgBox "Enthalten"
  Else
    MsgBox "Nicht enthalten"
  End If

Gruss,

Zardoz

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Zeichenfolge auf mehrere Zeichen hin untersuchen 
Autor: CarloStein
Datum: 06.11.19 15:59

Danke für die rasche Antwort und danke für den Tipp - funktioniert ausgezeichnet!
Gruß Karl
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Zeichenfolge auf mehrere Zeichen hin untersuchen 
Autor: guenni255
Datum: 11.11.19 09:50

Hallo Zardoz

Da mich dieses Thema auch interessiert habe ich es mal ausprobiert.
Ich habe carlostein so verstanden das er Text auf eine Buchstabenkombination "f,e" prüfen will.
in deinem Vorschlag bekomme ich aber die Meldung "Enthalten" schon wenn nur einer der beiden Buchstaben enthalten ist. Erst wenn keiner der gesuchten Buchstaben mehr enthalten ist kommt" Nicht enthalten".

Wie müsste es aussehen wenn "Enthalten" nur kommen soll wenn wirklich alle gesuchten Buchstaben vorhanden sind.

Danke im Voraus
Gruß Günni
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Zeichenfolge auf mehrere Zeichen hin untersuchen 
Autor: Housedog
Datum: 11.11.19 11:19

Private Sub Form_Load()
 
  If zeichenketteEnthalten("fe", "abcdef") = False Then
    MsgBox "nicht enhalten"
  Else
    MsgBox "enthalten"
  End If
 
End Sub
 
Private Function zeichenketteEnthalten(ByVal pSuchenNach As String, ByVal _
  pSuchenIn As String) As Boolean
 
Dim i As Integer
Dim j As Integer
Dim sZeichen As String
Dim bVorhanden() As Boolean
Dim bRetValue As Boolean
 
  ReDim bVorhanden(Len(pSuchenNach))
 
  For i = 1 To Len(pSuchenNach)
    sZeichen = Mid(pSuchenNach, i, 1)
 
    For j = 1 To Len(pSuchenIn)
      If Mid(pSuchenIn, j, 1) = sZeichen Then
        bVorhanden(i) = True
        Exit For
      End If
    Next
  Next
 
  bRetValue = True
  For i = 1 To UBound(bVorhanden)
    If bVorhanden(i) = False Then
      bRetValue = False
      Exit For
    End If
  Next
 
  zeichenketteEnthalten = bRetValue
 
End Function
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Zeichenfolge auf mehrere Zeichen hin untersuchen 
Autor: guenni255
Datum: 11.11.19 11:38

hallo housedog

Vielen Dank für die schnelle Lösung

Gruß Günni
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Zeichenfolge auf mehrere Zeichen hin untersuchen 
Autor: effeff
Datum: 11.11.19 11:44

Oder mit Instr...

Sub juhu()
 
Dim GesuchteZeichen As String
GesuchteZeichen = "f, e, u"
 
Dim ZuDurchsuchen As String
ZuDurchsuchen = "abcdefghijklmnopqrstuvwxyz"
 
Dim Ergebnis As Boolean
Ergebnis = ZeichenVorhanden(GesuchteZeichen, ZuDurchsuchen)
 
If Ergebnis = True Then
MsgBox ("Die Zeichen sind alle enthalten!")
Else
MsgBox ("Die Zeichen sind nicht alle enthalten!")
End If
 
End Sub
 
Private Function ZeichenVorhanden(ByVal GesuchteZeichen As String, ByVal _
  ZudurchsuchendeZeichen As String) As Boolean
Dim arrGesuchtesZeichen() As String
arrGesuchtesZeichen() = Split(GesuchteZeichen, ", ")
 
Dim i As Integer
 
For i = 0 To UBound(arrGesuchtesZeichen())
 
If InStr(1, ZudurchsuchendeZeichen, arrGesuchtesZeichen(i)) = 0 Then
ZeichenVorhanden = False
Exit Function
End If
Next
 
ZeichenVorhanden = True
 
End Function

EALA FREYA FRESENA

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel