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

C# Discussion :

(Expression régulière) Traitement d'un fichier txt


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de 4rocky4
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    528
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 528
    Par défaut Gestion d'un fichier texte par tableau
    Bonjour tout le monde,

    Je travaille actuellement sur SharpDevelop pour créer un petit programme me permettant d'intervenir sur un fichier texte.
    Ce fichier texte contient uniquement des créations de tables et actuellement je bloque sur la création des séquences et triggers.

    Je m'explique :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    CREATE TABLE T1_E (
      ID_E INTEGER  NOT NULL   IDENTITY ,
      NOM_E VARCHAR(32)  NOT NULL  ,
      T1_E_LIB INTEGER      ,
    PRIMARY KEY(ID_E));

    Dans mon fichier, je veux créer une séquence et un trigger pour chaque CREATE TABLE qui contient un IDENTITY.

    Pour cela, je dois récupérer le nom de la table ainsi que le nom du champ
    Dans l'exemple, je dois récupérer T1_E et ID_E.


    Il serait peut être mieux de répartir chaque CREATE dans un fichier texte pour traiter cela ... Je ne sais pas.

    Je commence à regarder les expressions régulières car je pense que c'est le moyen pour réaliser ce que je désire faire mais je voudrais bien qu'on m'éclaircisse un peu ...

  2. #2
    Membre éclairé Avatar de 4rocky4
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    528
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 528
    Par défaut
    L'expression régulière serait bien la solution je pense mais je n'arrive pas à récupérer le nom de la table et du champ.

    Pour le nom de la table, je pense qu'il faut se servir de la chaîne " CREATE TABLE" ainsi que des espaces (éventuellement la parenthèse qui suit).

    Et pour le champ je ne vois pas

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    201
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 201
    Par défaut
    Salut,

    Les regex me semble être une solution viable, je pense que pour le nom de la table quelque chose comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Regex finder = new Regex("CREATE TABLE (?<tableName>[A-Za-z0-9-_]+ \()");
    Et pour ta PK:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Regex finder = new Regex("PRIMARY KEY\((?<pkName>[A-Za-z0-9-_]+\))");

  4. #4
    Membre éclairé Avatar de 4rocky4
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    528
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 528
    Par défaut
    Impeccable
    Cela m'est bien utile.

    J'te remercie

  5. #5
    Membre éclairé Avatar de 4rocky4
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    528
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 528
    Par défaut
    Je ne connaissais pas ce système de groupe.

    Deux petites questions encore

    à quoi correspond l'underscore ici ?
    Étant donné que mon fichier comporte plusieurs CREATE TABLE, est-il possible de récupérer seulement les noms pour les CREATE qui contiennent IDENTITY ?

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    201
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 201
    Par défaut
    Citation Envoyé par 4rocky4 Voir le message
    à quoi correspond l'underscore ici ?
    En fait, c'est assez compliqué. Ca correspond à... un underscore . En fait ce n'est pas un caractère spécial. Et le tiret juste avant indique de la même manière, un tiret tout bête. En fait il n'y a pas de plage qui commence avant le tiret (vu que juste avant le 9, termine la plage '0-9').

    Citation Envoyé par 4rocky4 Voir le message
    Étant donné que mon fichier comporte plusieurs CREATE TABLE, est-il possible de récupérer seulement les noms pour les CREATE qui contiennent IDENTITY ?
    Là c'est plus dur je pense :/

    L'idéal à mon avis serai de faire une REGEX qui récupère toutes tes tables. Et ensuite pour chacune, de prendre le nom et l'identity si il y a.

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

Discussions similaires

  1. Traitement d'un fichier txt
    Par anass_59 dans le forum Général Python
    Réponses: 15
    Dernier message: 23/06/2009, 12h13
  2. Expressions régulières : traitement de HtmlPage + API HtmlUnit
    Par lahmar.abdel1 dans le forum Général Java
    Réponses: 2
    Dernier message: 30/04/2009, 15h16
  3. traitement d'un fichier txt
    Par arezki76 dans le forum Shell et commandes GNU
    Réponses: 7
    Dernier message: 22/06/2007, 15h36
  4. Réponses: 9
    Dernier message: 03/01/2007, 18h06

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