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

MATLAB Discussion :

Insertion de lignes dans un fichier txt


Sujet :

MATLAB

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Mars 2008
    Messages : 12
    Points : 11
    Points
    11
    Par défaut Insertion de lignes dans un fichier txt
    Bonjour,
    Je voudrais savoir si il est possible d'insérer des lignes dans un fichier txt existant.
    J'ai essayé j'arrive à insérer les lignes en questions dans mon fichiers mais le problème c'est que ça écrit par à la place d'autres lignes. Ce que je souhaiterai c'est insérer des lignes et non en remplacer.
    Je vous met le code de ce que j'ai fais pour le moment.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    boucle_commut = {'X4 {';'nom : "COMMUT"';'nature : COMMUTATION_VOIES';'echelle : SANS';'unite : SANS';'nb_seg : 1';'serie : INCR_LIN {';'xmin : 1.000000E+00';'xmax : 3.000000E+00';'deltax : 1.000000E+00';'}';'}'}
     
    str=textread(liste_fichier{1},'%s','delimiter','\n');
     
    for(j=1:length(str))
        if findstr(str{j,1},strcat('X',nbre_boucle,' {'))>0
            c=j
        end
    end
     
    for(k=1:length(boucle_commut))
        str{c+13+k-1}=boucle_commut{k};
    end
    Si vous avez une solution je suis preneuse.
    Merci d'avance

  2. #2
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 308
    Points : 52 891
    Points
    52 891
    Par défaut
    Ce n'est pas possible de le faire directement.

    Il faut :
    • lire l'ensemble du fichier
    • stocker le contenu dans une variable
    • modifier la variables en insérant les nouvelles lignes
    • écraser le contenu de l'ancien fichier avec la variable modifiée

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Mars 2008
    Messages : 12
    Points : 11
    Points
    11
    Par défaut
    Merci pour la réponse rapide
    En ce qui concerne "lire l'ensemble du fichier" c'est fait (textread)
    En ce qui concerne "stocker le contenu dans une variable" : le contenu est stocker dans la variable 'str'
    Par contre l'étape "modifier la variable en insérant les nouvelles lignes" c'est la que je vois pas comment faire.
    J'ai essayer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    for(k=1:length(boucle_commut))
        str{c+13+k-1}=boucle_commut{k};
    end
    mais à priori ce n'est pas la bonne méthode étant donné que je remplace ce qu'il y a dans str{c+13+k-1}.
    La question est comment doit inserer des nouvelles lignes ?

  4. #4
    Expert confirmé
    Avatar de duf42
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2007
    Messages
    3 111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 111
    Points : 4 661
    Points
    4 661
    Par défaut
    Bonjour,

    Une solution:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    for(k=length(boucle_commut):-1:1)
        str = [str(1:c+13+k-1), boucle_commut(k), str(c+13+k:end)];
    end
    J'espère que ca correspond à ce que tu attends...

    Bon courage,
    Duf

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Mars 2008
    Messages : 12
    Points : 11
    Points
    11
    Par défaut
    C'est bien quelque chose de ce genre la que je cherche mais dans mon cas ca ne peut pas fonctionner etant donné que 'str(1:c+13+k-1)', 'boucle_commut(k)' et 'str(c+13+k:end)' n'ont pas la même taille.
    Si quelqu'un a une idée je suis preneuse !

  6. #6
    Expert confirmé
    Avatar de duf42
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2007
    Messages
    3 111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 111
    Points : 4 661
    Points
    4 661
    Par défaut
    Ca ne devrait pas poser de problème normalement... Mais il faut peut-être remplacer les ',' par des ';'

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    12
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Mars 2008
    Messages : 12
    Points : 11
    Points
    11
    Par défaut
    Ca marche nickel !
    Merci beaucoup !!

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

Discussions similaires

  1. Modifier une ligne dans un fichier txt en java
    Par nihad510 dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 09/10/2007, 22h08
  2. Suppression d'une ligne dans un fichier txt
    Par EvaristeGaloisBis dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 21/07/2007, 17h58
  3. suprimmer une ligne dans un fichier .txt
    Par Totuch dans le forum Windows Forms
    Réponses: 1
    Dernier message: 06/06/2007, 11h28
  4. insertion de lignes dans un fichier
    Par thepinguin dans le forum C
    Réponses: 7
    Dernier message: 24/11/2006, 21h06
  5. nbr de lignes dans un fichier txt
    Par ibtisss dans le forum Langage
    Réponses: 3
    Dernier message: 04/11/2005, 15h09

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