MotCnt = SPLIT(zone," ") For i = 0 to MoCnt mot(i) = .... next
car je récupère un fichier .txt avec des lignes et non un réel tableau
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionDim Data1 As String Dim Data2 As String Dim aMots() As String Dim aMots2() As String Dim bInWord As Boolean Dim sTemp As String Dim lIndex As Long Dim r As Long Dim t As Long Data1 = "01 PARIS FRANCE EUROPE" Data2 = "03 ""BUENOS AIRES"" ARGENTINE ""AMERIQUE DU SUD""" aMots = Split(Data1, " ") ' Ici, change Data1 / Data2 ' Visu avant For r = 0 To UBound(aMots) Debug.Print r, aMots(r) Next r Debug.Print "--------------------------------------------------------" ReDim aMots2(0 To UBound(aMots)) lIndex = -1 sTemp = "" If UBound(aMots) > 4 Then bInWord = False For r = 0 To UBound(aMots) If Left$(aMots(r), 1) = """" Then ' Si la chaine commence par " sTemp = Mid$(aMots(r), 2) bInWord = True ElseIf Right$(aMots(r), 1) = """" Then ' Si la chaine se termine par " sTemp = sTemp & " " & Left$(aMots(r), Len(aMots(r)) - 1) bInWord = False Else If bInWord Then ' Si on est dans un "mot" sTemp = sTemp & " " & aMots(r) Else sTemp = aMots(r) End If End If ' Mémo or not mémo If bInWord Then ' Si on est dans un "mot" ' On ne fait rien, on attend la fin du "mot" Else ' " non trouvé ou fin de zone ou mot normal lIndex = lIndex + 1 aMots2(lIndex) = sTemp sTemp = "" End If Next r ' Redimensionne le tableau 2 qui doit être plus petit, maintenant ReDim Preserve aMots2(0 To lIndex) Else ' Ligne normale sans " aMots2 = aMots End If ' Visu après For r = 0 To UBound(aMots2) Debug.Print r, aMots2(r) Next r Debug.Print "--------------------------------------------------------"
Dim MonTableau() As String = MaChaine.Split(New String() {Convert.ToChar(34)}, StringSplitOptions.RemoveEmptyEntries)
Dim Data1 As String Dim Data2 As String Dim aMots() As String Dim r As Long Data1 = "01" & vbTab & "PARIS" & vbTab & "FRANCE" & vbTab & "EUROPE" Data2 = "03" & vbTab & """BUENOS AIRES""" & vbTab & "ARGENTINE" & vbTab & """AMERIQUE DU SUD""" aMots = Split(Data1, vbTab) ' Ici, change Data1 / Data2 ' Epuration des " For r = 0 To UBound(aMots) aMots(r) = Replace(aMots(r), Chr$(34), vbNullString) Next r