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 :

Supprimer des lignes dans un fichier texte


Sujet :

MATLAB

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2009
    Messages : 36
    Points : 12
    Points
    12
    Par défaut Supprimer des lignes dans un fichier texte
    salut
    j'essaye de faire un programme dans matlab pour modifier un texte :
    mon texte et le suivant
    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    $$ -----------------------------------------------------------------
    $$     Generated on November-07-09 1:41:06 PM
    $$     CATIA APT VERSION 1.0
    $$ -----------------------------------------------------------------
    $$ Manufacturing Program.1
    $$  Part Operation.1
    $$*CATIA0
    $$ MSYS/
    $$     0.00000     1.00000     0.00000   -95.00000
    $$    -1.00000     0.00000     0.00000    63.50000
    $$     0.00000     0.00000     1.00000    40.00000
    $$ ICAM - MM PPTABLE / ICAM_MM.pptable- V16.0541
    $$ Part Operation        : Part Operation.1
    $$ Manufacturing Program : Manufacturing Program.1
    PARTNO Manufacturing Program.1
    UNITS/MM
    $$ Do not diagnose CYCLE/OFF when cycles are not active
    PPFUN/15,1318046,OFF
    $$ Do not diagnose FEDRAT when threading
    PPFUN/15,1319003,OFF
    $$ Ignore TLAXIS commands, use vector on GOTO instead
    SYN/'TLAXIS','$$*TLAXIS'
    $$ OPERATION NAME : Tool Change.1
    $$  Start generation of : Tool Change.1
    MULTAX/ON
    $$ TOOLCHANGEBEGINNING
    CUTTER/  4.763000,  2.381500,  0.000000,  2.381500,  0.000000,$
             0.000000,  5.000000
    $$ Select sequence 2 to include tool compensation (OSETNO)
    PPRINT TOOL: T1 End Mill D 10
    LOADTL/1
    COOLNT/
    $$ TOOLCHANGEEND
    $$  End of generation of : Tool Change.1
    PPRINT OPERATION: Multi-Axis Flank Contouring.1
    $$ OPERATION NAME : Multi-Axis Flank Contouring.1
    $$  Start generation of : Multi-Axis Flank Contouring.1
    SPINDL/   60.0000,RPM,CLW
    FEDRAT/ 2000.0000,MMPM
    GOTO  /   -4.00000,   81.50000,    7.13150,-1.000000, 0.000000, 0.000000
    FEDRAT/ 2000.0000,MMPM
    GOTO  /    1.00000,   81.50000,    7.13150,-1.000000, 0.000000, 0.000000
    FEDRAT/ 2000.0000,MMPM
    GOTO  /    1.00000,   81.50000,    2.13150,-1.000000, 0.000000, 0.000000
    SPINDL/   30.0000,RPM,CLW
    FEDRAT/  180.0000,MMPM
    GOTO  /    1.00000,   76.50000,    2.13150,-1.000000, 0.000000, 0.000000
     
    GOTO  /    1.00000,   63.00000,    2.13150,-1.000000, 0.000000, 0.000000
    SPINDL/   35.0000,RPM,CLW
    GOTO  /    1.00000,   52.50000,    2.13150,-1.000000, 0.000000, 0.000000
    SPINDL/   40.0000,RPM,CLW
    GOTO  /    1.00000,   42.00000,    2.13150,-1.000000, 0.000000, 0.000000
    SPINDL/   45.0000,RPM,CLW
    GOTO  /    1.00000,   31.50000,    2.13150,-1.000000, 0.000000, 0.000000
    SPINDL/   50.0000,RPM,CLW
    GOTO  /    1.00000,   21.00000,    2.13150,-1.000000, 0.000000, 0.000000
    SPINDL/   55.0000,RPM,CLW
    GOTO  /    1.00000,   10.50000,    2.13150,-1.000000, 0.000000, 0.000000
    SPINDL/   60.0000,RPM,CLW
    GOTO  /    1.00000,    0.00000,    2.13150,-1.000000, 0.000000, 0.000000
     
    GOTO  /    1.00000,   -5.00000,    2.13150,-1.000000, 0.000000, 0.000000
    GOTO  /    1.00000,   -5.00000,    7.13150,-1.000000, 0.000000, 0.000000
    FEDRAT/ 2000.0000,MMPM
    GOTO  /   -4.00000,   -5.00000,    7.13150,-1.000000, 0.000000, 0.000000
    FEDRAT/ 2000.0000,MMPM
    GOTO  /   -3.00000,   81.50000,    7.13150,-1.000000, 0.000000, 0.000000
    FEDRAT/ 2000.0000,MMPM
    GOTO  /    2.00000,   81.50000,    7.13150,-1.000000, 0.000000, 0.000000
    FEDRAT/ 2000.0000,MMPM
    GOTO  /    2.00000,   81.50000,    2.13150,-1.000000, 0.000000, 0.000000
    SPINDL/   30.0000,RPM,CLW
    FEDRAT/  180.0000,MMPM
    GOTO  /    2.00000,   76.50000,    2.13150,-1.000000, 0.000000, 0.000000
     
    FEDRAT/  180.0000,MMPM
    GOTO  /    2.00000,   63.00000,    2.13150,-1.000000, 0.000000, 0.000000
    SPINDL/   35.0000,RPM,CLW
    GOTO  /    2.00000,   52.50000,    2.13150,-1.000000, 0.000000, 0.000000
    SPINDL/   40.0000,RPM,CLW
    GOTO  /    2.00000,   42.00000,    2.13150,-1.000000, 0.000000, 0.000000
    SPINDL/   45.0000,RPM,CLW
    GOTO  /    2.00000,   31.50000,    2.13150,-1.000000, 0.000000, 0.000000
    SPINDL/   50.0000,RPM,CLW
    GOTO  /    2.00000,   21.00000,    2.13150,-1.000000, 0.000000, 0.000000
    SPINDL/   55.0000,RPM,CLW
    GOTO  /    2.00000,   10.50000,    2.13150,-1.000000, 0.000000, 0.000000
    SPINDL/   60.0000,RPM,CLW
    GOTO  /    2.00000,    0.00000,    2.13150,-1.000000, 0.000000, 0.000000
     
     
    GOTO  /    2.00000,   -5.00000,    2.13150,-1.000000, 0.000000, 0.000000
    GOTO  /    2.00000,   -5.00000,    7.13150,-1.000000, 0.000000, 0.000000
    FEDRAT/ 2000.0000,MMPM
    GOTO  /   -3.00000,   -5.00000,    7.13150,-1.000000, 0.000000, 0.000000
    FEDRAT/ 2000.0000,MMPM
    GOTO  /   -2.00000,   81.50000,    7.13150,-1.000000, 0.000000, 0.000000
    FEDRAT/ 2000.0000,MMPM
    GOTO  /    3.00000,   81.50000,    7.13150,-1.000000, 0.000000, 0.000000
    FEDRAT/ 2000.0000,MMPM
    GOTO  /    3.00000,   81.50000,    2.13150,-1.000000, 0.000000, 0.000000
    SPINDL/   30.0000,RPM,CLW
    FEDRAT/  180.0000,MMPM
    GOTO  /    3.00000,   76.50000,    2.13150,-1.000000, 0.000000, 0.000000
    FEDRAT/  180.0000,MMPM
     
    GOTO  /    3.00000,   63.00000,    2.13150,-1.000000, 0.000000, 0.000000
    SPINDL/   35.0000,RPM,CLW
    GOTO  /    3.00000,   52.50000,    2.13150,-1.000000, 0.000000, 0.000000
    SPINDL/   40.0000,RPM,CLW
    GOTO  /    3.00000,   42.00000,    2.13150,-1.000000, 0.000000, 0.000000
    SPINDL/   45.0000,RPM,CLW
    GOTO  /    3.00000,   31.50000,    2.13150,-1.000000, 0.000000, 0.000000
    SPINDL/   50.0000,RPM,CLW
    GOTO  /    3.00000,   21.00000,    2.13150,-1.000000, 0.000000, 0.000000
    SPINDL/   55.0000,RPM,CLW
    GOTO  /    3.00000,   10.50000,    2.13150,-1.000000, 0.000000, 0.000000
    SPINDL/   60.0000,RPM,CLW
    GOTO  /    3.00000,    0.00000,    2.13150,-1.000000, 0.000000, 0.000000
    ce que je chercher à faire c'est de supprimer toutes les lines sauf les lines ou il ya "GOTO" et "FEDRAT"
    ça veut dire à la fin j'aurai un text ou il ya juste les valeurs de GOTO et FEDRAT
    merci
    zak

  2. #2
    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,

    Pourrais-tu nous mettre ton code MATLAB ainsi que les erreurs (ou les problèmes au niveau du résultat)?

    Bonne journée,
    Duf
    Simulink & Embedded Coder

    Au boulot : Windows 7 , MATLAB r2016b
    A la maison : ArchLinux mais pas MATLAB

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2009
    Messages : 36
    Points : 12
    Points
    12
    Par défaut
    salut DUF
    j'ai essayé ce code là
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    tasks = test17;
    count = length(tasks);
     
    doNow = regexp(tasks, '((FEDRAT|GOTO).*)\d+', 'match');
     
    for k=1:count
       s = char(doNow{k});
       if ~isempty(s),   fprintf('   %s\n', s),   end
    end
    sachant que "test17" c'est le fichier initiale
    mon problème c'est que les résultats de ce code ne sont pas stocker dans un variable par contre ils sont affichés juste dans command window de MATLAB
    merci

  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
    En fait le résultat que tu cherches est bien stocké dans une variable: doNow. Ensuite si tu veux l'écrire dans un fichier texte, je pense que le plus simple c'est d'utiliser FOPEN, FPRINTF, FCLOSE:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    fid = fopen(<mon_fichier>, 'wt');
    if (fid == -1); return; end
     
    fprintf(fid, '%s\n', doNow{:});
     
    fclose(fid);
    J'ai pas testé mais ca devrait ressembler à ca...
    Simulink & Embedded Coder

    Au boulot : Windows 7 , MATLAB r2016b
    A la maison : ArchLinux mais pas MATLAB

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2009
    Messages : 36
    Points : 12
    Points
    12
    Par défaut
    salut
    oui c'est vrai le text est stocke dans le variable ''doNow" mais le problème c'est que le code que j'ai mis ne supprime pas les lines vide çàd doNow contient aussi des lines vide
    donc ce que je cherche c'est de supprimer c'est lines vide, j'ai essayé avec ce code là
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    r=regexprep(doNow,'^[" "]*\n[" "]*\n','')
    mais ça fonctionne pas à cause

    '??? Error using ==> regexprep
    All cells for regexprep must be strings.'
    zak

  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
    Pour supprimer les lignes vides, il faut faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    doNow(cellfun(@isempty,doNow))=[];
    Simulink & Embedded Coder

    Au boulot : Windows 7 , MATLAB r2016b
    A la maison : ArchLinux mais pas MATLAB

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    36
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2009
    Messages : 36
    Points : 12
    Points
    12
    Par défaut
    salut DUF
    je cherche un programme sous matlab qui peut supprimer 20 premières lines dans un texte .
    merci

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

Discussions similaires

  1. supprimer des lignes dans un fichier texte
    Par inessahal dans le forum C++
    Réponses: 1
    Dernier message: 29/04/2012, 02h50
  2. supprimer une ligne dans un fichier texte
    Par linouline dans le forum Langage
    Réponses: 5
    Dernier message: 05/06/2006, 23h02
  3. Supprimer une ligne dans un fichier texte
    Par @yoyo dans le forum Entrée/Sortie
    Réponses: 11
    Dernier message: 28/03/2006, 14h19
  4. Supprime une ligne dans un fichier texte
    Par dev7 dans le forum Linux
    Réponses: 4
    Dernier message: 28/03/2006, 01h33
  5. Supprimer une ligne dans un fichier text
    Par philippe13 dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 14/03/2006, 16h43

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