2013-07-04 7 views

Répondre

1

Depuis, sous Windows, les lignes se terminent par la séquence de deux caractères <CR><LF>, vous avez besoin du String.Split overload qui se divise sur les chaînes plutôt que des caractères:

Dim valuesArray = Field.ListOfValues.Split({vbCrLf}, StringSplitOptions.None) 
+0

Wow !!!. . Tranchant. – iamCR

0

Essayez ceci:

touche Entrée = CChar(vbCrLf)

// code

Dim valuesArray as String()= Field.ListOfValues.Split(CChar(vbCrLf)) 
+2

s'il vous plaît un coup d'oeil sur les données avant vous l'utilisez - en fonction de l'origine des données, seul vbCr vbLf sera utilisé comme saut de ligne. Cela dépend du système d'exploitation, etc. –

+0

Vous pouvez toujours utiliser Environment.NewLine au lieu de vbCrLF – RobS

+1

Notez que 'CChar (vbCrLf)' donne le même résultat que 'CChar (vbCr)', c'est-à-dire un seul caractère CR. Ce n'est probablement pas ce que vous vouliez. ([Source] (http://msdn.microsoft.com/en-us/library/s2dy91zy (v = vs.110) .aspx): 'seul le premier caractère d'une chaîne est converti'') – Heinzi

3

La touche "Entrée" vous faites référence à pourrait être un retour chariot ou saut de ligne ou les deux . Les utilisations suivantes ReadLine ce qui devrait faire ce que vous voulez et devrait tenir compte des écarts en caractères de fin de ligne

StreamReader.ReadLine Méthode

Lit une ligne de caractères à partir du flux actuel et retourne le les données sous forme de chaîne. Une ligne est définie comme une séquence de caractères suivie d'un saut de ligne ("\ n"), d'un retour chariot ("\ r") ou d'un retour chariot immédiatement suivi d'un saut de ligne ("\ r \ n "). La chaîne renvoyée ne contient pas le retour chariot final ou le saut de ligne.

Dim valuesList As New List(Of String) 

    Using sr As New StreamReader(New System.IO.MemoryStream(System.Text.Encoding.ASCII.GetBytes(Field.ListOfValues))) 
     Do Until sr.EndOfStream 
      valuesList.Add(sr.ReadLine) 
     Loop 
    End Using 

    'If you really want an array convert it to one here: 
    Dim valuesArray As String() = valuesList.ToArray 
Questions connexes