IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

lecture-écriture dans un fichier text


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2010
    Messages
    177
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 177
    Par défaut lecture-écriture dans un fichier text
    bonjour à tous

    je veux faire une application dans laquelle je dois enregistrer des données (correspondant à des champs records) dans un fichier text (une alternative aux BD avec lesquelles j'avais des problèmes).

    pour commencer j'ai consulté le FAQ et j'ai trouvé ce programme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
      Const ForWriting = 2
       Dim fso, f   
     
       Set fso = CreateObject("Scripting.FileSystemObject")
       Set f = fso.OpenTextFile("c:\temp\ecr.txt", ForWriting,true)
       f.write("Salut")
    le problème est que ce code efface le contenu de fichier et y met la nouvelle chaine de caractères. J'ai donc quelques questions;

    1/ Comment faire pour ajouter des lignes (ligne par ligne ) sans effacer l'ancien contenu

    2/ est possible d'accéder (en lecture et écriture) à une ligne donnée par indice

    3/ Si vous connaissez un lien qui peut m'être utile, je serais reconnaissant.

    Merci d'avance

  2. #2
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 137
    Par défaut
    1/ Comment faire pour ajouter des lignes (ligne par ligne ) sans effacer l'ancien contenu
    Tu écris Open dans ton code, tu mes le curseur dessus, puis F1 pour avoir des informations via MSDN.
    Si tu n'as pas MSDN installé (la bible que devrait avoir tout programmateur), tu peux le charger ici MSDN en Français

    2/ est possible d'accéder (en lecture et écriture) à une ligne donnée par indice
    Non, tu peux lire mais pas écrire en même temps, par contre tu peux faire 2 ouvertures, un en lecture, l'autre en écriture (sous entendu sous un N° différent ((FreeFile), filenumber)
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  3. #3
    Membre confirmé
    Inscrit en
    Janvier 2010
    Messages
    177
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 177
    Par défaut
    1/ je vais voir le help

    2/ est possible d'accéder (en lecture et écriture) à une ligne donnée par indice
    peut être je me suis mal exprimé, je veux savoir comment accéder à une ligne (en lecture ou en écriture), une chose comme T(i) dans un tableau ou (avec excel)


  4. #4
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 137
    Par défaut
    2 solutions au moins.
    1° lire ligne par ligne jusqu'à la ligne voulue (légèrement long suivant le nombre de ligne)
    2° ouvrir le fichier en récupérant la totalité dans une variable String (plus rapide), puis faire un Split dans une variable tableau, de cette dernière variable tableau appeler le n élément.
    Je peu développer si tu es intéressé par l'une ou l'autre des solutions

    MOTIF DE L'EDIT:
    Parlant d'Excel, dans la Faq VB6, Rechercher "Excel", plusieurs reponses, dont une qui pourrait correspondre à ton besoin Comment modifier un classeur ?
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  5. #5
    Membre confirmé
    Inscrit en
    Janvier 2010
    Messages
    177
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 177
    Par défaut
    Je peu développer si tu es intéressé par l'une ou l'autre des solutions
    je te remercie vivement. Je peux m'en charger, mais ne posera t-il pas de problèmes de charger la RAM par un tableau de quelques dizaines de milliers de valeurs

  6. #6
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 137
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 137
    Par défaut
    ....
    mais ne posera t-il pas de problèmes de charger la RAM par un tableau de quelques dizaines de milliers de valeurs
    Maintenant les systèmes on souvent suffisamment de mémoires, voire Windows utilisera le disque dur pour compléter.
    Le principe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    Dim Msg As String
    Dim NumFich As Integer
    Dim CheminNomFichier As String
    Dim DecoupeContenuLg() As String
    Dim T As Integer
    Msg = ""
    CheminNomFichier = "" '<== adapter
    '************** en lecture ********************************************
    NumFich = FreeFile
    Open CheminNomFichier For Input As #NumFich
    Msg = Input(FileLen(CheminNomFichier), NumFich)
    Close #NumFich
    If Msg$ = "" Then
     MsgBox "le fichier est vide", vbCritical
     Exit Sub 'Unload Me
    End If
    'création du tableau "DecoupeContenuLg", chaque index du tableau correspond à une ligne du fichier
    DecoupeContenuLg = Split(Msg$, vbCrLf)
    'DecoupeContenuLg(9) = ligne 10 du fichier
    '**************fini en lecture ********************************************
    'DecoupeContenuLg(9) peut être modifier, voir "supprimer" (DecoupeContenuLg(9)="")
     
    '************** réouverture en ecriture pour modification/actualisation ********************************************
    NumFich = FreeFile
    Open CheminNomFichier For Output As #NumFich
    'boucle sur le tableau
    For T = 0 To UBound(DecoupeContenuLg)
        If DecoupeContenuLg(T) <> "" And T = 9 Then
            Print #NumFich, DecoupeContenuLg(T)
            Else
            Print #NumFich, DecoupeContenuLg(T)
        End If
    Next T
    Close #NumFich
    '************** fini modification/actualisation ********************************************
    Mais si tu fais à partir d'un fichier excel, regarde dans mon précédent message (j'ai réédité)
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

Discussions similaires

  1. lecture / écriture dans des fichiers text
    Par nadir CoCo dans le forum C++
    Réponses: 6
    Dernier message: 28/06/2012, 10h10
  2. lecture/écriture dans un fichier texte
    Par the watcher dans le forum Delphi
    Réponses: 23
    Dernier message: 15/05/2007, 11h57
  3. Réponses: 4
    Dernier message: 02/05/2007, 11h41
  4. lecture écriture dans un fichier
    Par poukill dans le forum C++
    Réponses: 9
    Dernier message: 23/05/2006, 12h02
  5. [PERL] Problème lecture/écriture dans un fichier
    Par LE NEINDRE dans le forum Langage
    Réponses: 4
    Dernier message: 17/08/2005, 14h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo