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 :

Recherche d'urls de dossier


Sujet :

MATLAB

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2010
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2010
    Messages : 86
    Points : 73
    Points
    73
    Par défaut Recherche d'urls de dossier
    Bonjour,

    Dans le cas d'une automatisation d'un programme...

    Tous les urls de sauvegarde des données se situe dans un script matlab, appelé au début de mon programme :

    %% ALGO1
    algo1='c\...\...
    %% ALGO2
    algo2='c\...\...

    %% ALGOX
    %algoX='d\..\...

    %% ALGO3
    algo3='c\...\...
    %% ALGON
    algoN='c\...\...


    Ce que je voudrais c'est créer de manière automatique les dossiers de ces URLS. Donc il me faudrait une fonction capable de rechercher toutes les variabes actives se trouvant dans le script 'algo1', 'algo2'...

    Après il suffira juste d'appliquer la fonction mkdir.

    Avez vous une idée ?

  2. #2
    Membre averti
    Femme Profil pro
    Ingénieur informatique scientifique
    Inscrit en
    Mai 2010
    Messages
    313
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur informatique scientifique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2010
    Messages : 313
    Points : 301
    Points
    301
    Par défaut
    Bonjour,

    Pour être sûre d'avoir bien compris ton problème, dis moi si je me trompe:
    - Tu as des scripts matlab 'algo1', 'algo2', etc. qui contiennent chacun des URLs de dossiers à créer.
    -Ces URLs sont des variables Matlab déclarées dans tes scripts, qui sont soit actives soit inactives, c'est à dire inactives si elles sont mises en commentaire?

    Si c'est bien cela, la solution que je vois pour le moment (il y en a surement des plus simples) est de récupérer le contenu de chacun de tes fichiers 'algo1', 'algo2', et d'utiliser les expressions régulières pour récupérer uniquement les noms de dossier des variables actives.

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2010
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2010
    Messages : 86
    Points : 73
    Points
    73
    Par défaut
    @ mokochan : Ha oui désolé je t'ai embrouillé

    Non j'ai un seul script de matlab contenant tous mes urls de dossier :

    Main :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    clear all
    close all
     
    % Création / Chargement des paths des dossiers
    loadURLDossier
     
    ....
    ALGO Du PROGRAMME 
    ....
    Mon script 'loadURLDossier' contient les paths des dossiers de sauvegarde, ou seront sauver les données de mon programmes pour les différents algorithmes les contenants;

    Par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    %% ALGO SEUIL
    urlSeuil='C:\...\MONPROGRAMME\saveSeuil\
    %% ALGO DEBRUITAGE
    urlDebruitage='C:\...\MONPROGRAMME\saveDebruitage\
    Ces URLs sont des variables Matlab déclarées dans tes scripts, qui sont soit actives soit inactives, c'est à dire inactives si elles sont mises en commentaire?
    Oui c'est bien ça.

    Qu'entends tu par 'expression régulière' ?

  4. #4
    Membre averti
    Femme Profil pro
    Ingénieur informatique scientifique
    Inscrit en
    Mai 2010
    Messages
    313
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 34
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur informatique scientifique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2010
    Messages : 313
    Points : 301
    Points
    301
    Par défaut
    Ah d'accord j'avais mal compris ^^
    Les expressions régulières sont un outil puissant mais un peu long à assimiler, utilisable non seulement en Matlab mais aussi avec d'autres langages comme le Perl, le python, ...
    Il s'agit d'un outil permettant de travailler sur les chaines de caractères (remplacer un bout de chaine par une autre, récupérer uniquement une partie d'une chaine, etc).
    Si cela t'intéresse, il existe beaucoup de tutoriels expliquant comment s'en servir.
    En matlab, on va pouvoir utiliser les expressions régulières avec les fonctions regexp (recherche dans une chaîne de caractère) ou regexprep (remplacement dans une chaîne de caractère).

    Un exemple de solution à ton problème serait:

    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
    %recupere le contenu de ton script 'loadURLDossier'
    A = importdata('loadURLDossier.m');     
     
    %Traitement de chaque ligne de ton script
    for i = 1:length(A)
     
        %Expression reguliere pour recuperer uniquement le nom de dossier
        dossier = regexp(A{i},'^\s*\w+=''(.+)''','tokens');
     
        %Si le dossier a bien ete trouve (variable active), creation de ce dossier
        if(~isempty(dossier))
            mkdir(char(dossier{1}));
            sprintf('dossier %s cree!',char(dossier{1}))
        end
    end
    Je t'explique la ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dossier = regexp(A{i},'^\s*\w+=''(.+)''','tokens');
    On veut rechercher, dans une ligne A{i} de ton script, une chaîne de la forme "nomVariable='quelquechose'", sans que cette variable soit commentée, plus précisément ne récupérer que le "quelquechose".
    Pour cela j'ai écrit '^\s*\w+=''(.+)''':
    - '^' indique qu'on regarde depuis le tout début de la ligne (la ligne doit commencer par...)

    -'\s*' signifie "autant d'espaces ou tabulations que tu veux" ('\s' représente un caractère espace ou tabulation, et l'étoile * signifie qu'il peut y en avoir entre 0 et "l'infini"). En gros tu peux mettre des blancs entre le début de ta ligne et la déclaration de ta variable.

    -'\w+' représente le nom de ta variable: \w est un caractère alphanumérique queconque, le '+' signifie qu'il faut au moins un caractère.

    -'=' marque la séparation entre le nom de variable et sa valeur. Tu pourrais ajouter des '\s*' avant et après si tu veux pouvoir mettre des espaces autour de ton signe '='.

    -''(.+)'' est le contenu de ta variable, entre quotes. il faut "échapper" les quotes par d'autres quotes, c'est pour cela qu'elles sont doublées. Le ".+" signifie "n'importe quel caractère, au moins 1". On met cette partie entre parenthèses pour indiquer que c'est cela qu'on veut récupérer.

    Le paramètre 'tokens' indique que notre fonction "regexp" ne doit renvoyer que la partie de la chaîne qui est entre parenthèses.
    Si regexp ne renvoie rien, c'est que la chaîne ne correspondait pas à ce que l'on attendait (ici, par exemple, si la ligne contient un '%' avant la déclaration de la variable).

    Attention ici, si tu as d'autres variables dans ton script "loadURLDossier" que tu ne veux pas prendre en compte, il faudra affiner encore l'expression régulière pour différencier les variables "noms de dossier" et les variables "autres".

  5. #5
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2010
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2010
    Messages : 86
    Points : 73
    Points
    73
    Par défaut
    Merci pour tout ces renseignements.

    La seule expression régulière que je connaissait était pour spliter des chaines de caractères du style ( mon-chat => 'mon' 'chat' ), je pensais pas qu'on pouvais aller si loin.


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

Discussions similaires

  1. Recherche de FTP avec dossier virtuel
    Par Soronite dans le forum Applications et environnements graphiques
    Réponses: 2
    Dernier message: 01/12/2007, 14h51
  2. COmment faire une recherche dans tous les dossiers
    Par Djohn dans le forum Outlook
    Réponses: 2
    Dernier message: 28/06/2007, 19h27
  3. Champ de recherche et URL
    Par Didibzh dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 20/06/2007, 11h39
  4. Referencement Google sous-domaine ou URL type dossier
    Par 01paf dans le forum Référencement
    Réponses: 1
    Dernier message: 09/11/2006, 02h23
  5. Programme effectuant recherches par URL ??
    Par pouic06 dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 12/04/2006, 13h51

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