web-dev-qa-db-fra.com

Comment diviser une chaîne en asp classique

J'essaie de scinder une chaîne dans une application ASP classique, j'ai le code ci-dessous dans la page et cela ne semble pas fonctionner. Il y a une autre question qui semble similaire mais qui concerne différents types de problèmes. Je suis déjà allée voir les réponses à cette question et cela n'aide en rien. Toute aide serait appréciée.

<% 
Dim SelectedCountries,CitizenshipCountry, Count 
SelectedCountries = "IN, CH, US"    
CitizenshipCountry = Split(SelectedCountries,", ")
Count = UBound(CitizenshipCountry) + 1 
Response.Write(CitizenshipCountry[0])
Response.End
%>
4
Vipin Dubey

Vous avez commis quelques erreurs, raison pour laquelle vous n'obtenez pas le résultat escompté.

  1. Lors de la vérification des limites d'un tableau, vous devez spécifier la variable de tableau, dans ce cas, la variable générée par Split() qui est CitizenshipCountry.

  2. On accède aux éléments du tableau en spécifiant la position ordinale de l'élément entre parenthèses ((...)) pas entre crochets ([...]) .

Essaye ça:

<% 
Dim SelectedCountries, CitizenshipCountry, Count 
SelectedCountries = "IN, CH, US"    
CitizenshipCountry = Split(SelectedCountries,", ")
'Get the count of the array not the string.
Count = UBound(CitizenshipCountry)
'Use (..) when referencing array elements.
Call Response.Write(CitizenshipCountry(0))
Call Response.End()
%>

Ce que j'aime faire, c'est utiliser IsArray pour vérifier que la variable contient un tableau valide avant d'appeler UBound() pour éviter ces types d'erreur.

<% 
Dim SelectedCountries, CitizenshipCountry, Count 
SelectedCountries = "IN, CH, US"    
CitizenshipCountry = Split(SelectedCountries,", ")
'Get the count of the array not the string.
If IsArray(CitizenshipCountry) Then
  Count = UBound(CitizenshipCountry)
  'Use (..) when referencing array elements.
  Call Response.Write(CitizenshipCountry(0))
Else
  Call Response.Write("Not an Array")
End If
Call Response.End()
%>
5
Lankymart

Bonne réponse et bonne résolution. J'ajoute For Look lors de la conversion de String en tableau:

Dim SelectedCountries, CitizenshipCountry, Count, x

SelectedCountries = "IN, CH, US"
CitizenshipCountry = Split (SelectedCountries, ",") 'Obtenir le nombre du tableau et non la chaîne. Count = UBound (CitizenshipCountry) ' Utiliser ( ..) lors de la référence d'éléments de tableau.

pour x = 0 Pour compter Response.Write (CitizenshipCountry (x) & "Break Tag HTML")
suivant

Pour toute aide supplémentaire, contactez-moi à [email protected]

0