2012-04-30 4 views
0

J'ai un problème dans mon code:VB, comment résoudre cette erreur

For i = 0 To Split(awal, vbCrLf).Length - 1 
    For j = 0 To Split(hasil(i), " ").Length - 1 
     hasil1(j) = hasil(i).Split(" ") 
    Next j 
Next i 

il est livré avec erreur:

« Valeur de type « tableau 1 dimensions de chaîne » ne peut pas être converti en 'String' "dans la section" hasil1 (j) = hasil (i) .Split ("") ".

Quelqu'un peut-il m'expliquer comment résoudre ce problème, s'il vous plaît?

+0

Le premier paramètre de la fonction ** Split ** doit être une chaîne. – adatapost

+0

est hasil1 un tableau de chaînes? – rcdmk

+0

oui, hasil() et hasil1() est un tableau de chaînes par exemple le texte est "ABCD 123 EFGH 11 ijkl" maintenant hasil() nous avons obtenu ("ABCD 123", "EFGH 11", » ijkl ") et je veux séparer l'élément dans hasil() de sorte que hasil1() = (" abcd "," 123 "," efgh "," 11 "," ijkl ") –

Répondre

0

Votre problème est que vous essayez d'ajouter un tableau à un tableau de chaînes. La fonction Split() renvoie Array et l'erreur est générée.

Si votre intention est d'obtenir un tableau de tableaux, faites ces variables de cette façon, sinon, dans quel but utiliser Split(" ") sur cette ligne?

Edit:

Sur la base des commentaires que vous:

Vous devez boucle une fois de plus pour que ce soit complet:

Dim it As Integer 
Dim tmp() As String 
it = 0 

For i = 0 To Split(awal, vbCrLf).Length - 1 
    For j = 0 To Split(hasil(i), " ").Length - 1 
     tmp = hasil(i).Split(" ") 

     For k = 0 To tmp.Length - 1 
      hasil1(it) = tmp(k) 
      it += 1 
     Next 
    Next j 
Next i 

Mes compétences en VB.Net sont rouillés et Je ne suis pas dans ma machine de dev, alors essayez ceci et faites-moi savoir si quelque chose ne fonctionne pas.

+0

J'ai mis à jour la réponse assez maintenant. – rcdmk

+0

merci de m'avoir aidé rcdmk, mais quel est le type de données variable tmp? –

+0

C'est un tableau de chaînes. – rcdmk

0

Il ne sait pas comment vous initialisez votre tableau de hasil,
cependant, vous pouvez simplifier votre code à l'aide d'une liste (de chaîne) de cette manière

Dim hasil() as String = New String() {"abcd 123","efgh 11","ijkl"} 
Dim hasil1 as List(Of String) = New List(Of String)() 
For i = 0 To hasil.Length - 1 
    hasil1.AddRange(hasil(i).Split(" ")) 
Next i 

Vous pouvez AllWays le convertir en une chaîne tableau avec:

Dim s() as String = hasil1.ToArray()