1Danke
ERLEDIGT
JA
JA
ANTWORTEN
4
4
ZUGRIFFE
1660
1660
EMPFEHLEN
-
02.04.09 18:49 #1
- Registriert seit
- Oct 2007
- Ort
- C:\Windows
- Beiträge
- 14
Habe eine kleine Funktion geschrieben
Bei Google habe ich nichts gescheites gefunden.
Nur gibt er mir auch True aus wenn in dem String nur eins der Zeichen die ich als Suchkreterium angebe enthalten ist.Code :1 2 3 4 5 6 7 8 9
Public Function Privilege(ByVal perm As String, ByVal permneed As String) As Boolean For i As Integer = 1 To Len(perm) If InStr(permneed, Mid(perm, i, 1)) Then Return True Else Return False End If Next i End Function
Bsp. :
Code :1 2
Privilege("abcdefghijklmnopqrstuvwyz","aC") // True obwohl im String kein C enthalten ist. Privilege("abcdefghijklmnopqrstuvwyz","a") // True
Wie muss ich die Funktion umschreiben damit das funktioniert?
-
02.04.09 19:09 #2
- Registriert seit
- Oct 2007
- Beiträge
- 325
Du programmierst ja mit .Net, da du hier gepostet hast. (Code sieht eher nach VB Classic aus! (Bis auf das Return))
Verwende doch einfach die eingebauten Möglichkeiten im .Net Framework.
Die Contains-Methode des String-Datentyps ist glaube ich genau das, was du suchst.
Code vbnet:1 2 3
Public Function Privilege(ByVal perm As String, ByVal permneed As String) As Boolean If perm.Contains(permneed) Then Return True Else Return False End Function
Falls du mit .Net kleiner als 2.0 programmierst, musst du es umgehen, da es die Contains-Methode erst ab Version 2.0 gibt.
Code vbnet:1
If Not perm.IndexOf(permneed) = -1 Then Return True Else Return False
Ansonsten, falls du die VB Classic Funktionen verwenden sollst/willst (was ich allerdings nicht empfehle
), müsste dein Code so aussehen:
Code vbnet:1 2 3 4 5 6
Public Function Privilege(ByVal perm As String, ByVal permneed As String) As Boolean For i As Integer = 1 To Len(perm) If InStr(permneed, Mid(perm, i, Len(permneed))) Then Return True Next i Return False End Function
Geändert von Masterclavat (02.04.09 um 19:22 Uhr)
-
02.04.09 19:24 #3
- Registriert seit
- Oct 2007
- Ort
- C:\Windows
- Beiträge
- 14
Das hatte ich mir auch schon angesehen.
Die funktion gibt aber auch False aus wenn
perm = "abcdefghijklmnopqrstuvwxyzC" ist.
Ist aber leider nicht genau das was ich suche.
Wahrscheinlich habe ich mich ungenau ausgedrückt.
Die Funktion soll nach dem "a" und dem "C" suchen egal ob sie nacheinander im String kommen oder auseinander sind. "abcdefgC" oder "aCdefg".
Ich hoffe es ist jetzt besser verständlich was ich möchte!
Stimmt ist VB Classic man muss sich ja erstmal daran gewöhnen.
Bin von PHP auf VB umgestiegen und denn auf VB.Net
Geändert von Psychomentis (02.04.09 um 19:36 Uhr)
-
02.04.09 19:32 #4
- Registriert seit
- Oct 2007
- Beiträge
- 325
Achso, dann hatte ich dich falsch verstanden.
Du musst einfach alle Zeichen im String "permneed" durchlaufen und auf Contains prüfen.
Etwa so:
Code vbnet:1 2 3 4 5 6 7
For Each C As Char In permneed If Not perm.Contains(C) Then Return False Next 'Wenn die Ausführung der Funktion bis hier hin gekommen ist, 'dann sind alle Zeichen des Strings "permneed" in dem String "perm" enthalten. Return True
-
02.04.09 19:36 #5
- Registriert seit
- Oct 2007
- Ort
- C:\Windows
- Beiträge
- 14
Ja genau so sollte es laufen vielen Dank für deine schnelle und gute Hilfe.
MFG
Psy
Ähnliche Themen
-
String durchsuchen und Zeichen entfernen
Von FingerSkill im Forum PHPAntworten: 4Letzter Beitrag: 21.03.07, 11:18 -
String nach bestimmten Wort durchsuchen
Von piti66 im Forum PHPAntworten: 9Letzter Beitrag: 24.03.06, 10:48 -
String nach bestimmten Wort durchsuchen
Von gwaan im Forum JavaAntworten: 4Letzter Beitrag: 07.11.05, 11:16 -
Datei durchsuchen nach einem bestimmten String
Von Friesi im Forum CGI, Perl, Python, Ruby, Power ShellAntworten: 2Letzter Beitrag: 11.09.04, 12:08 -
String zwischen bestimmten Zeichen verändern
Von Mr. FISHMAN im Forum PHPAntworten: 6Letzter Beitrag: 10.06.03, 16:44





Zitieren
Login





