gretata
Messages postés172Date d'inscriptionlundi 22 mai 2006StatutMembreDernière intervention19 janvier 2011
-
1 déc. 2010 à 10:45
Utilisateur anonyme -
2 janv. 2013 à 17:17
Bonjour a tous !!
J'ai un petit soucis bizarre, en VB.net je lis un fichier avec un StreamReader je fais ReadLine et je me retrouve avec ma ligne en trim alors que la ligne de mon fichier et composé d'une tabulation, je m'explique :
mon fichier que je dois lire est composé de ligne comme ça : CN_PLA_FORME 252
CN_PLA_REPERE A3
CN_PLA_INDICE 000
ensuite le code que j'utilise pour lire mon fichier :
Dim sr As StreamReader = New StreamReader(FileName, System.Text.Encoding.Default)
Dim ligne As String
'--- ligne
While Not sr.EndOfStream()
ligne = sr.ReadLine()
et lorsque je debug la valeur de la ligne récupéré est : CN_PLA_FORME252
il enlève la tabulation ?!?
c'est normal ? j'ai oublié quelque chose dans le code pour spécifier qu'il me prenne tous les caractères de la ligne à lire.
Merci,
voici le code en entier au cas où :
Private Function getAttributs(ByVal FileName As String, ByRef ReasonLog As String) As Dictionary(Of String, String)
Dim attribut As String
Dim value As String
Dim attributs As New Dictionary(Of String, String)
Dim attributsSize As Integer
Try
Dim sr As StreamReader = New StreamReader(FileName, System.Text.Encoding.Default)
Dim ligne As String
'--- ligne
While Not sr.EndOfStream()
ligne = sr.ReadLine()
attribut = ligne.Substring(ligne, InStr(ligne, ControlChars.Tab) - 1)
value = ligne.Substring(ligne, Len(ligne) - InStr(ligne, ControlChars.Tab))
If value <> ";" Then
attributsSize = attributsSize + 1
attributs.Add(attribut, value)
End If
End While
sr.Close()
Catch ex As Exception
ReasonLog = ex.Message
End Try
Return attributs
End Function
Fabasia
Messages postés45Date d'inscriptionmercredi 26 mars 2008StatutMembreDernière intervention17 août 2012 2 déc. 2010 à 03:46
J'ai programmé ca pour lire un fichier tabulé avec "#" et remplir une datagridview
Il faut définir FileIO.FieldType.Delimited MyReader.SetDelimiters
Public caractère_séparateur_colonnes_Datagrid As String = "#" 'alt 35
Public Sub ouvrir_fichier_questionnaire_remplir_datagridview(ByVal fichier As String, ByVal datagridview_utilisee As DataGridView)
'Création d'un TextFieldParser, MyReader et ouverture du fichier OpenFileDialog1.FileName
Dim MyReader As New Microsoft.VisualBasic.FileIO.TextFieldParser(fichier)
Dim champ() As String
datagridview_utilisee.RowCount = 0
'Le séparateur de champs
MyReader.TextFieldType =
FileIO.FieldType.Delimited MyReader.SetDelimiters(caractère_séparateur_colonnes_Datagrid)
While Not MyReader.EndOfData
'Try
'lecture ligne par ligne du fichier
champ = MyReader.ReadFields()
datagridview_utilisee.Rows.Add _
(New String()
{champ(0), _
champ(1), _
champ(2), _
champ(3), _
champ(4), _
champ(5), _
champ(6), _
champ(7), _
champ(8), _
champ(9), _
champ(10), _
champ(11), _
champ(12), _
champ(13), _
champ(14), _
champ(15), _
champ(16), _
champ(17), _
champ(18), _
champ(19), _
champ(20), _
champ(21), _
champ(22), _
champ(23), _
champ(24)})
End While
MyReader.Close()
End Sub
Bonne suite
Vous n’avez pas trouvé la réponse que vous recherchez ?
J'ai un petit soucis de la création d'un fichier texte.
Une erreur de compilation: type défini par l'utilisateur non défini.
L'erreur est sur cette ligne:
Dim GestionFichier As New Scripting.FileSystemObject
Voici le code:
Sub CreationFichierTexte()
Dim GestionFichier As New Scripting.FileSystemObject
Dim FichierTexte As Scripting.TextStream
If GestionFichier.FileExists("C:\Documents and Settings\asow\Desktop\Atelier\exemplecanada.txt") = False Then
Set FichierTexte = GestionFichier.CreateTextFile("C:\Atelier\exempleca.txt")
FichierTexte.WriteLine ("Train électrique")
FichierTexte.Close
End If
Set GestionFichier = Nothing
End Sub
J'ai un petit soucis de la création d'un fichier texte.
Une erreur de compilation: type défini par l'utilisateur non défini.
L'erreur est sur cette ligne:
Dim GestionFichier As New Scripting.FileSystemObject
Voici le code:
Sub CreationFichierTexte()
Dim GestionFichier As New Scripting.FileSystemObject Dim FichierTexte As Scripting.TextStream
If GestionFichier.FileExists("C:\Atelier\exempleca.txt") = False Then
Set FichierTexte = GestionFichier.CreateTextFile("C:\Atelier\exempleca.txt")
FichierTexte.WriteLine ("Train électrique")
FichierTexte.Close
End If
Set GestionFichier = Nothing
End Sub
1) Prendre FSO pour lire/écrire un fichier texte en VB.net, c'est une hérésie.
2) Quand on met deux instructions sur la même ligne, il faut mettre un dex-points (:) entre les deux.