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

WinDev Discussion :

Chercher dans un fichier et mettre a jour [WD10]


Sujet :

WinDev

  1. #1
    Membre régulier
    Inscrit en
    Février 2008
    Messages
    302
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 302
    Points : 78
    Points
    78
    Par défaut Chercher dans un fichier et mettre a jour
    Bonjour,
    je suis confronté a un problême ... Enfait voila ...

    J'ai un fichier (csv) ou je dois enregistrer des données.
    Chaque ordinateur lié au fichier aura une et une seul ligne pour inscrire ces informations ...

    Donc je souhaiterais pouvoir mettre a jour une ligne dans un fichier avec les nouvelles données.

    J'arrive a ecrire dans un fichier, j'arrive a determiner si l'info est deja dans le fichier (et donc s'il faut faire un simple ajout ou une mise a jour)

    Mais je n'arrive pas a faire la mise a jour de la ligne ... Je ne sais pas comment me placer au bon endroit.

    Voici la partie de code que j'ai commencé ou il manque la mise a jour des lignes ... auriez vous des idées ou des conseils a me fournir histoire que je puisse finir cette partie ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    PROCEDURE file_Write(idFic)
    sep est un caractère = ";"
    textLu est une chaîne
    indice est un entier
     
    textLu = fChargeTexte(:obtenir_driverLetter()+"config.csv")
    indice = Position(textLu, :getMacAdresse())
    SI indice = 0 ALORS
    	fEcritLigne(idFic, DateVersChaîne(:getDate())+sep+HeureVersChaîne(:getHeure())+sep+:macAdresse+sep+:ipAdresse+sep+:vWindows)
    SINON
    	Info("Indice : "+indice, textLu)
    FIN
    Merci d'avance

  2. #2
    Membre expérimenté Avatar de Tober
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2007
    Messages
    824
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 824
    Points : 1 381
    Points
    1 381
    Par défaut
    Deux solutions !
    La moche : tu récupère tout ton fichier csv dans un tableau de tableau et tu te débrouilles par programmation
    L'idéale : insérer une ligne dans le fichier au bon endroit...

    La solution moche, je te fais pas un dessin...
    La solution idéale : il n'y a pas d'exemple dans l'aide ou en tt cas je l'ai pas trouvé, mais on peut se déplacer et écrire une ligne dans un fichier...
    Donc j'imagine que si tu te déplace à la bonne ligne et que tu écris une ligne juste après, ca devrait marcher.
    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    IdFichier = fOuvre("C:\MesRépertoires\Fichier.txt", foLectureEcriture)
    SI IdFichier <> -1 ALORS
       fPositionne(IdFichier, làoùtuveuxaller, fpCourant)
       // Écriture d'une ligne dans ce fichier
       ResEcriture = fEcritLigne(IdFichier, "Compte-rendu de la réunion")
       SI ResEcriture = Faux ALORS
          ...
       FIN
    FIN
    Aucune idée si ça marche, mais si WinDev n'a pas pensé à ça...

  3. #3
    Membre expérimenté Avatar de klbsjpolp
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    1 065
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 065
    Points : 1 322
    Points
    1 322
    Par défaut
    Tu peux extraire toutes les lignes avant celle à modifier parce que tu as sa position de début avec indice. Tu peux aussi trouver la fin de la ligne avec un Position qui cherche le prochain RC après indice. Tu pourras donc extraire le texte avant et le texte après et les rabouter avec la nouvelle ligne.

    Une solution plus simple serait d'utiliser un fichier qui te permette de faire l'insertion et la modification efficacement (fichier INI par exemple) et ensuite de générer un csv à partir de ton INI si tu en as vraiment besoin. Tu aurais un algorithme de modification simple et un algorithme d'exportation simple.
    «Un problème bien défini est un problème à moitié résolu.»

  4. #4
    Membre régulier
    Inscrit en
    Février 2008
    Messages
    302
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 302
    Points : 78
    Points
    78
    Par défaut
    Merci pour vos réponses ...

    je suis passé sous une structure de fichier INI, ce qui me facilite grandement la tache au niveau du rafraichissement de certaine ligne de donnée !

    En tout cas, je vous remercie pour vos réponses !

    A bientôt

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] Exporter feuille dans nouveau fichier avec date du jour
    Par Mati24 dans le forum Excel
    Réponses: 3
    Dernier message: 06/08/2012, 12h27
  2. Réponses: 1
    Dernier message: 30/03/2011, 17h47
  3. [Batch] lire dans un fichier et mettre le résultat dans une variable
    Par danydan01 dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 09/06/2010, 12h28
  4. chercher dans mon fichier
    Par rhcp88 dans le forum C
    Réponses: 11
    Dernier message: 15/04/2009, 20h09
  5. [VBA-E] Chercher dans un fichier en hexa
    Par dev_php51 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 14/08/2008, 11h30

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