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

LabVIEW Discussion :

Modifier un champ dans un fichier texte


Sujet :

LabVIEW

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Mai 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mai 2015
    Messages : 12
    Points : 8
    Points
    8
    Par défaut Modifier un champ dans un fichier texte
    Bonjour,
    Je travaille actuellement sur un banc de calibration qui peut délivrer plusieurs types de signaux, de valeurs différentes et qui communique en RS232 avec une interface LabVIEW.
    J'ai créé un fichier texte stockant la config actuelle du banc et j'aimerais pouvoir modifier les différents champs de ce fichier mais je ne trouve pas de fonctions adaptées.
    Actuellement, je récupère le contenu du fichier texte dans une chaîne, je recherche le champ que je désire modifier dans la chaîne et remplace son contenu pour ensuite reconcaténer la chaîne, supprimer le premier fichier texte et en créer un nouveau à l'aide de la chaîne récupérée. Cette méthode est très maladroite et peu orthodoxe et ne me convient donc pas. Auriez-vous une idée de comment procéder ?

    Cordialement

  2. #2
    Membre éprouvé Avatar de reg64
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    959
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 959
    Points : 1 255
    Points
    1 255
    Par défaut
    Salut,
    Le mieux dans ton cas est d'utiliser un fichier de configuration (.ini par exemple), c'est un fichier texte qui permet de sauvegarder une config et de la modifier éventuellement. il existe une librarie de Vis pour lire et modifier facilement le contenu du fichier de configuration: Sous palette E/S sur fichiers>>Vis de fichiers de configuration
    Le fichier contient des sections et des clés.
    Exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    //Ceci est un commentaire
    [INITIALISATION]   //Nom de la section
    PORT=COM1      //PORT est le nom de la clé, COM1 est sa valeur
    VITESSE=9600
    
    [MISE_SOUS_TENSION]
    TENSION=230V
    COURANT=10A
    //...
    Plus d'info ici.
    Voir les exemples dans Aide>>Recherche d'exemples
    A+
    Reg
    CLAD

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Mai 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mai 2015
    Messages : 12
    Points : 8
    Points
    8
    Par défaut
    En effet, je te remercie, je ne connaissais pas ce système de clés, et cela semble adapté pour un fichier de configuration.
    Sinon, par curiosité et si le besoin se présente un jour, n'y a-t-il pas de fonction permettant de remplacer une portion d'un fichier texte (avec un offset et un nombre de caractères à remplacer par exemple) ?

  4. #4
    Membre éprouvé Avatar de reg64
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    959
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 959
    Points : 1 255
    Points
    1 255
    Par défaut
    Oui c'est possible. Voir les exemples dans Aide>>Recherche d'exemples
    Reg
    CLAD

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Mai 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mai 2015
    Messages : 12
    Points : 8
    Points
    8
    Par défaut
    Je n'ai malheureusement pas trouvé dans les exemples (uniquement des fonctions écrasant le fichier précédent ou écrivant à la suite de fichier existant) mais j'ai utilisé les blocs Read Text File pour transformer mon fichier en chaîne et pouvoir utiliser les fonctions chaînes qui n'ont apparemment pas d'équivalence pour les fichiers textes, Match Pattern pour trouver l'emplacement d'un champ dans ma chaîne ainsi créée, Set File Position pour déplacer le curseur au début du champ à remplacer et Write Text File pour overwrite la valeur du champ actuel par celle désirée.
    Je n'arrive néanmoins pas à ajouter un champ par exemple, sans supprimer le fichier puis le recréer. Je n'ai trouvé que comment remplacer du texte existant.

    Voici le code pour remplacer un champ :
    Nom : remplacer_texte.PNG
Affichages : 663
Taille : 5,9 Ko
    *précédant et non récédant eheh

  6. #6
    Membre éprouvé Avatar de reg64
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    959
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 959
    Points : 1 255
    Points
    1 255
    Par défaut
    Ceci fonctionne que si la chaîne recherchée a le même nombre d'octets que la chaîne de remplacement:

    Reg
    CLAD

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Mai 2015
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 28
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mai 2015
    Messages : 12
    Points : 8
    Points
    8
    Par défaut
    Merci.

  8. #8
    Membre éprouvé Avatar de reg64
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    959
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 959
    Points : 1 255
    Points
    1 255
    Par défaut
    De rien
    Reg
    CLAD

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

Discussions similaires

  1. modifier une ligne dans un fichier texte
    Par junkie1986 dans le forum Tcl/Tk
    Réponses: 6
    Dernier message: 09/04/2013, 15h17
  2. récuperer champs dans un fichier texte
    Par koukou11 dans le forum Unix
    Réponses: 2
    Dernier message: 18/04/2011, 23h35
  3. Modifier plusieurs champs dans un fichier Csv
    Par francois_a dans le forum Shell et commandes GNU
    Réponses: 36
    Dernier message: 02/09/2009, 17h31
  4. Lire des champs dans une fichier texte
    Par darkman13130 dans le forum C++Builder
    Réponses: 17
    Dernier message: 06/06/2008, 16h31
  5. Modifier un enregistrement dans un fichier texte
    Par Ludo75 dans le forum Langage
    Réponses: 4
    Dernier message: 10/05/2008, 00h05

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