J'essaie de faire correspondre les noms de domaine dans les chaînes d'adresses e-mail dans VB6 et ce n'est pas mon langage quotidien. Je veux fondamentalement extraire le nom de domaine d'une adresse (par exemple, [email protected]) pour la comparaison. Je voudrais l'extraire en obtenant tout après "@" et je pense que trouver l'index de "@", puis en utilisant Left$()
satisferait mes besoins. Comment puis-je obtenir l'index?VB6 Index de sous-chaîne
Répondre
Vous pouvez utiliser la fonction InStr pour ce faire:
Exemple:
s$ = "[email protected]"
d$ = Mid$(s$, InStr(1, s$, "@") + 1)
La variable d $ finirait par la chaîne "foo.com". (N'oubliez pas de vérifier que le signe @ est présent, sinon vous devriez vous retrouver avec toute la chaîne source.)
J'utiliserais la fonction Spit ici.
Dim strEmail, arr, strDomain
strEmail = "[email protected]"
arr = Split(strEmail, "@")
if arr.Count > 1 then
strDomain = arr(1)
end if
Espérons que cela aide.
Édition
Désolé, nous avons oublié d'ajouter une vérification que le tableau a plus de 1 valeur.
Ces variables doivent être fortement typées au lieu de défaut à Variants. Plus important encore, bien que les tableaux n'aient pas de propriété Count. En dehors de cela, ce serait une solution viable. – Bob77
Quelques autres points: (1) 'Split' renvoie un tableau à base zéro, donc vous devrez utiliser' arr (0) 'pour accéder au premier élément du tableau; (2) un remplacement utilisable (quoique maladroit) pour le non-travail 'arr.Count' est d'utiliser' UBound (arr) -LBound (arr) + 1'. – dmc
- 1. Cordes en C, comment obtenir sousChaîne
- 2. NSString se sousChaîne separed par 2 chaînes définies
- 3. conversion GUI de vb6
- 4. Recherche de fichier - VB6
- 5. vb6 problème de performance
- 6. Débogage de VB6 dans VS2008 avec des objets non-VB6
- 7. System.OutOfMemoryException VB6
- 8. Problème Unicode Net, héritage vb6
- 9. Faits saillants sousChaîne dans le TableCell (s) qui utilise pour JTable filetering
- 10. Suppression des doublons plus rapide VB6
- 11. transcription de VB.NET à VB6
- 12. Intégration de VB6 à TFS
- 13. transfert de données en vb6
- 14. Utilisation de SQLITE avec VB6
- 15. Paramètres de passe VB6 form_load
- 16. équivalent de Directory.CreateDirectory() dans VB6
- 17. . Équivalent Net de VB6 Recordset
- 18. Format de date en VB6
- 19. modèle de document dans vb6?
- 20. Fonction de recherche dans VB6
- 21. méthode d'appel Index() avec index() ou iNdEx()
- 22. Pourquoi `index = index ++` n'est pas incrémenté `index`?
- 23. VB6 à C# que signifie ce code VB6?
- 24. Index de couverture ou index individuels
- 25. Index individuels vs index de champs multiples
- 26. VB6 Empaquetage et organisation
- 27. VB6 - DAO - Procédures stockées
- 28. tableaux dans VB6
- 29. vb6 api/question d'espion
- 30. Enums dynamiques en vb6
Puisque je devrais vérifier le @, j'utiliserai InStr() pour le déterminer, mais quelle valeur renvoie-t-il si "@" n'est pas une sous-chaîne de la chaîne d'adresse? – jlafay
La fonction retournera un 0 si la chaîne n'est pas trouvée. –
http://www.aivosto.com/vbtips/instr.html –