insertion de lignes dans un fichier texte, matlab
Répondre à la discussion
Affichage des résultats 1 à 4 sur 4

insertion de lignes dans un fichier texte, matlab



  1. #1
    inviteeebb54cf

    insertion de lignes dans un fichier texte, matlab


    ------

    Bonjour à tous,

    J'ai quelques soucis avec la manipulation de texte sous matlab, j'espère que vous pourrez m'aider.

    Je dispose d'un fichier dans lequel j'ai écrit le résultat d'un traitement de données. Ces résultats sont écrits sous la forme suivante:

    t1 a1 b1 c1...
    t2 a2 b2 c2...
    ...
    tn an bn cn


    A un moment, un problème sur les données traitées m'oblige a sauter un certain nombre de lignes jusqu'à pouvoir retrouver des données utilisables. Une fois que j'ai ces données, je voudrais faire une sorte de "reverse engineering" afin de remonter dans mon fichier texte et de réécrire les données que j'avais sauté.

    Une petit dessin étant mieux qu'un long discours, voici l'état de mon fichier à l'heure actuelle ('\n' signifiant que j'ai juste un retour à la ligne sur la ligne en question):

    t1 a1 b1 c1...
    t2 a2 b2 c2...
    ...
    tn an bn cn...
    \n
    \n
    \n
    tm am bm cm...

    Et je voudrais donc réecrire les lignes au dessus afin d'avoir ça:
    t1 a1 b1 c1...
    t2 a2 b2 c2...
    ...
    tn an bn cn...
    tn+1 an+1 bn+1 cn+1
    tn+2 an+2 bn+2 cn+2
    tn+3 an+3 bn+3 cn+3
    tm am bm cm...


    j'ai donc essayé le code suivant:

    Code:
    fid=fopen('text.txt','wt');
    
    ...    %inscription des données jusqu'à la ligne m (il y a donc eu les sauts de ligne)
    
    pos=ftell(fid)-L;  %récupération de la position actuelle du curseur,
    % qui est à la fin de la ligne m. Il y a L caractères sur cette ligne, je les
    % enlève donc afin de me retrouver au début de la ligne.
    
    for p=0:4
    fseek(fid,pos-p*2,'bof');   %placement du curseur au début de la ligne d'au dessus
    fprintf(fid,'%f\t',data_to_be_printed);
    end

    Résultat:
    si j'ai choisit le mode d'ouverture du fichier 'wt', l'inscription d'une ligne écrit par dessus les lignes qui suivent.
    Si je choisis le mode d'ouverture 'at', il ne m'est simplement pas possible de remonter dans le fichier, les lignes sont ajoutées à la fin de celui-ci.

    Y-a-t'il un troisième mode d'ouverture que j'aurai raté, ou auriez vous une méthode miracle à me proposer ?

    Merci d'avance!

    -----

  2. #2
    invite2d7144a7

    Re : insertion de lignes dans un fichier texte, matlab

    Bonjour,

    Pour ajouter des lignes dans un fichier texte, sauf si c'est à la fin du fichier, la seule solution est :
    - ouvrir ton fichier en lecture
    - en créer un autre en écriture
    - lire les lignes ok et les écrire dans le nouveau fichier
    - au moment désiré, écrire les nouvelles lignes dans le nouveau fichier
    - continuer lecture/écrire jusqu'à la fin du fichier d'origine
    - fermer les 2 fichiers
    - effacer l'ancien
    - renommer le nouveau

    Désolé, mais on ne peut pas échapper à cette manipulation.

  3. #3
    inviteeebb54cf

    Re : insertion de lignes dans un fichier texte, matlab

    ok :/
    Merci pour cette réponse rapide, je vais voir comment je peux contourner le problème. En pratique je manipule des fichiers de 250.000 lignes, ça m'embête un peu de devoir tout ré-écrire...

  4. #4
    invite2d7144a7

    Re : insertion de lignes dans un fichier texte, matlab

    Bonjour,

    Inutile de chercher, il n'y a pas de solution miracle, on fait tous comme ça, ce n'est pas par hasard, ni parce qu'on manque d'idées.

  5. A voir en vidéo sur Futura

Discussions similaires

  1. lecture Fichier texte sous Matlab
    Par invite9cb0a5df dans le forum Électronique
    Réponses: 2
    Dernier message: 17/05/2010, 17h27
  2. Traiter un fichier texte sour MATLAB
    Par inviteb2e92e68 dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 15/03/2010, 14h49
  3. Modifier un fichier texte avec MATLAB
    Par invite70e57eb7 dans le forum Logiciel - Software - Open Source
    Réponses: 7
    Dernier message: 14/12/2009, 15h15
  4. (Matlab) Extraire des données depuis un fichier texte et les placer dans une matrice
    Par invite02e128cc dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 14/12/2009, 12h09
  5. matlab, supression dans un fichier texte
    Par invite309868c4 dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 24/06/2009, 17h37
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...