.Net VB Lire fichier

cs_JeffC1977 Messages postés 928 Date d'inscription vendredi 10 novembre 2000 Statut Membre Dernière intervention 23 septembre 2023 - 14 août 2007 à 15:39
cs_JeffC1977 Messages postés 928 Date d'inscription vendredi 10 novembre 2000 Statut Membre Dernière intervention 23 septembre 2023 - 14 août 2007 à 18:57
Salut...
La fonction pour lire un fichier ...
1. C'est ou je lui dit va lire le fichier Coordonnees.txt
2. Sur un PocketPC les prog. sont soit sur C:\ comme un PC ???
3. Si je mets mon fichiers sur ma carte mémoire externe (storage card), comment je fais pour connaitre la lettre de cette carte ???  c'est D:\ ???

Private
Function ReadFile(
ByVal Path
As
String)

   Dim sr
As System.IO.StreamReader   
   Dim al
As ArrayList 

     
   sr = New System.IO.StreamReader(Path) 'C'est ici je remplace la Path ????
   
al =
New ArrayList()
   
While
Not sr.EndOfStream
      al.Add(sr.ReadLine())
   
End
While
Dim sf(al.Count) AsString  
 For i
As
Integer = 0
To (al.Count - 1)
Step i = i + 1
      sf(i) = al(i)
   
Next i

Return sf

End
Function

4 réponses

P0lO Messages postés 65 Date d'inscription mercredi 18 avril 2007 Statut Membre Dernière intervention 12 juin 2008 1
14 août 2007 à 16:49
Déja petite amélioration de ma fonction :

    Private Function ReadFile(ByVal Path As String)

        Dim sr As System.IO.StreamReader
        Dim al As ArrayList

        If System.IO.File.Exists(Path) Then
            sr = New System.IO.StreamReader(Path) 'C'est ici je remplace la Path ????
            al = New ArrayList()
            While Not (sr.EndOfStream)
                al.Add(sr.ReadLine())
            End While
            Dim sf(al.Count) As String
            For i As Integer = 0 To (al.Count - 1)
                sf(i) = al(i)
            Next i
            Return sf
        End If
        Return 0

    End Function

Ensuite pour utiliser tu peut faire par exemple :

    Private Sub InitializeComponent()

        ........      

        Dim MonFic() As String
        MonFic = ReadFile("\My Documents\test.txt")
        MessageBox.Show("Nombre de lignes lues dans le fichier : " + MonFic.Length)
        For i As Integer = 0 To (MonFic.Length - 1)
            MessageBox.Show(MonFic(i))
        Next i
   
        ........      

    End Sub

2. sur un Pocket PC les fichier sont sur "\Program Files"
3. en générale la carte de stockage à pour chemin d'accès "\SD-MMCard"

La notion de disque sur PDA n'est pas visible par l'utilisateur pour reconnaitre par programme une carte de stockage tu doit regarder les répertoires à la racine du PDA ("") et les carte de stockage et autre sont les seuls répertoire à posséder comme attribut de répertoire "temporary",...
Pour résumer si tu veut la logique de disque est masqué à l'utilisateur et plutôt que de montrer une carte de stockage comme un disque on la montre comme un répertoire avec un attribut temporary pour indiquer qu'il s'agit d'un répertoire temporaire...

J'espert avoir répondu à tes questions...

P0lO
0
cs_JeffC1977 Messages postés 928 Date d'inscription vendredi 10 novembre 2000 Statut Membre Dernière intervention 23 septembre 2023 4
14 août 2007 à 17:41
Ta réponse est Ok et merci....
MAIS....

Dans la fonction ReadFile...

C'est pas là que je dit ouvre Monfichier et prend l'information du fichier texte et mets ca dans un Tableau....

Désolé j'ai de la difficulté pour coder Lire un fichier, Écrire dans un fichier et les tableau.... 
Les tableau ca m'a pris un bout à comprendre en VB6

Bon je te disais que je ne voulais pas que tu prog pour moi... mais disons que une fois mon code VB6 modifié pour mon iPAQ sera fait, ca devrait aller beaucoup par la suite....

J'ai le code en VB6  Es-tu en mesure de me le changer pour que ca fonctionne pour mon iPAQ ????  SVP... Je suis mal à laise de te demander ca mais je prend une chance....

Option Explicit
Public TabVerticaleInst() As String
Public TabDistanceInst() As String
Public TabPoint() As Double
Public TabCoordX() As Double
Public TabCoordY() As Double
Public TabZ() As Double
Public TabPCode() As Double
Public Tableau() As Variant



' Fait la Lecture entière du Fichier. Appeler dans frmCalcul



Public Sub ReadAllLines(ByVal sPath As String, ByRef aLines() As String)
    Dim FF As Integer
    Dim sBuffer As String
    FF = FreeFile
    On Error Resume Next
    Open sPath For Input As #FF
    sBuffer = Input(LOF(FF), #FF)
    Close #FF
    aLines = Split(sBuffer, vbNewLine)
End Sub


Public Sub Parcourir_Fichier_text(aMesLignes)


    Dim i As Integer, j As Integer, LineCount As Integer
    Dim SplitLine() As String
    Dim intCompteur As Integer


    LineCount = 0
    For i = 0 To UBound(aMesLignes)


        If LineCount = 0 Then
            ReDim Tableau(4, LineCount)
        Else
            ReDim Preserve Tableau(4, LineCount)
        End If


        SplitLine = Split(aMesLignes(i), " ")


        For j = 0 To UBound(SplitLine)
            If Trim(SplitLine(j)) <> "" Then
                Tableau(j, LineCount) = Trim(SplitLine(j))
            End If
        Next


        LineCount = LineCount + 1


    Next i


End Sub




 
0
P0lO Messages postés 65 Date d'inscription mercredi 18 avril 2007 Statut Membre Dernière intervention 12 juin 2008 1
14 août 2007 à 17:54
Tu veut que je convertisse ton code en VB .NET c'est sa?

P0lO
0
cs_JeffC1977 Messages postés 928 Date d'inscription vendredi 10 novembre 2000 Statut Membre Dernière intervention 23 septembre 2023 4
14 août 2007 à 18:57
oui bien pour que ca fonctionne sur mon pocket PC et j'utilise le compact framwork et Visual Studio . Net en Visual Basic...

Merci d'avance
0
Rejoignez-nous