2012-05-03 14 views

risposta

2

È possibile utilizzare la funzione InStr() per questo:

Dim positionOfMatchedString 
positionOfMatchedString= InStr(rs("mainVideoName"),"http://www.youtube.com") 

If positionOfMatchedString > 0 Then 
    // Do your stuff here 
End If 

Come Anthony sottolinea, questo ti dice che stringa2 è contenute in stringa1. Si potrebbe scrivere come:

If positionOfMatchedString = 1 Then 

per verificare che a cominciare da.

+0

stringhe sono indicizzate da 1 in VB? :( –

+0

Se stringa2 non viene trovata, InStr restituisce 0. http://msdn.microsoft.com/en-us/library/wybb344c%28v=vs.85%29.aspx –

+0

@JamieDixon: a)> 0 test che stringa2 è _contained_ in stringa1 ma non quella stringa1 _startisti con_ stringa2 (anche se considerando il contesto URL _contains_ sarebbe probabilmente sufficiente) b) In VBScript non è possibile Dimmension e assegnare una variabile in una singola istruzione. – AnthonyWJones

10

Prova questo:

Function UrlStartsWith(string1, string2) 
    UrlStartsWith = InStr(1, string1, string2, 1) = 1 
End Function 

If UrlStartsWith(rs("mainVideoName"), "http://www.youtube.com") Then 


End If 

Inizia con è testato utilizzando IntStr e garantire che restituisce 1 come posizione di partenza che la stringa di ricerca viene trovato. Poiché stai testando un URL, il codice sopra riportato usa TextCompare per renderlo insensibile al caso.

1

ne dite ...

Dim s: s = "http://www.youtube.com" 
Dim l: l = Len(s) 

If Left(rs("mainVideoName"), l) = s Then 
    ' String begins with URL part '   
End If 
+2

Direi che una "L" minuscola è un nome pessimo per una variabile, specialmente quando viene usata al posto di un numero. Ho dovuto cercare due volte prima di rendermi conto che non stavi semplicemente confrontando la prima lettera di 'rs (" mainVideoName ")'. –

Problemi correlati