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

  1. #1
    Membre à l'essai
    Femme Profil pro
    Développeur Java
    Inscrit en
    avril 2015
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : avril 2015
    Messages : 22
    Points : 16
    Points
    16

    Par défaut Nombre de fichier shema.ini pour générer deux fichiers textes

    Bonjour,

    Dans mon applicatif Access VBA , je dois générer deux fichiers textes de structures différentes(nom de champs,type de champs et nombre de champs aussi) .
    j ai créé le 1er fichier shema.ini, le premier fichier se génère correctement mais pour le deuxième fichier est ce que je dois créer un autre fichier shéma .ini dans le même répertoire ou qu'est ce que je dois faire.
    merci pour votre aide.

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    octobre 2005
    Messages
    12 306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : octobre 2005
    Messages : 12 306
    Points : 18 752
    Points
    18 752

    Par défaut

    Bonjour.

    Personnellement je n'utilise jamais le schema.ini.
    Pour mes fichiers textes, je fais du code VBA pour les écrire.
    VBA vient avec tout ce qui est nécessaire pour transformer des données en texte sans gros efforts.
    C'est un peu plus long et à adapter à chaque cas mais je n'ai aucune surprise pour le résultat.

    Sinon, des lectures rapides que j'ai faites, il semble n'y avoir qu'un seul fichier Schema.ini par application donc si tu as besoin de plusieurs il faut le changer en fonction des besoins.

    Une solution qui parait simple serait d'avoir des modèles de chacun de tes schema.ini et de les recopier avant leur utilisation.
    Cela donnerai quelque chose comme :

    1. Copier schema.ini.1 en schema.ini
    2. Exporter la source 1
    3. Copier schema.ini.2 en schema.ini
    4. exporter la source 2


    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Membre à l'essai
    Femme Profil pro
    Développeur Java
    Inscrit en
    avril 2015
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : avril 2015
    Messages : 22
    Points : 16
    Points
    16

    Par défaut

    Merci Marot pour ta réponse. Peux tu me m'expliquer ta façon de le faire sans le fichier schéma.ini.

    Merci

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    octobre 2005
    Messages
    12 306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : octobre 2005
    Messages : 12 306
    Points : 18 752
    Points
    18 752

    Par défaut

    Bonjour.

    Ici un exemple de code produisant un fichier texte avec entête :

    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
    public sub ExporterDonneesCSV(prmNomSource as string, prmNomFichier as string)
       'Suppose que tous les champs de la source vont être exportés.
       ' Suppose une séparation des champs par des ;
       dim db as dao.database:set db=currentdb
       dim numFic as long:numFic=freefile
       open prmNomFichier for output as numfic
       dim r as dao.recorset: set r=db.openRecordset(prmNomSource, dbOpenSnapShot)
       dim f as dao.field
     
       const SEPARATEUR=";"
       dim est1erChamp as boolean
       '=== Export de l'entête
       est1erChamp=true
     
       for each f in r.fields
          if not est1erChamp then
             print #numfic, SEPARATEUR; 'Le ; force Access a rester sur l'enregistrement courant
          end if
     
          print #numfic, f.name;
          est1erChamp=false
       next f   
     
       print #numfic,"" 'Fin d'enregistrement
       '--- Export de l'entête
     
       do while not r.eof
          '=== Exporte les donnnées
          for each f in r.fields
             if not est1erChamp then
                print #numfic, SEPARATEUR;
             end if
     
             select case f.type
                case dbDate
                   print #numfic, format(f,"yyyy\-mm\-dd hh:nn:ss");
     
                case dbint, dbLong
                   print #numfic, format(f,"0");
     
                case dbSingle, dbDouble
                   print #numfic, format(f,"0.000000");
     
                case dbBoolean
                   print #numfic, iif(f,"VRAI", "FAUX");
     
                case else
                   print #numfic, f;
     
             end select
     
             print #numfic, f.name;
             est1erChamp=false
          next f   
          '---  Exporte les donnnées
     
          r.movenext
       loop
     
       r.close:set r=nothing
       close numfic
       db.close: set db=nothing
    end sub
    J'ai fait un test sur le type de champ mais on pourrait tester aussi facilement les noms de champs pour définir une largeur.

    Ici un extrait de code qui fait cela.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    select case f.name
       case "Nom", "Prenom", "Adresse"
          'Exporte le champ en complétant les données avec des blancs jsuqu'à la taille maximum du champ définie dans la table 
          print #numfic, left(f & space$(f.size), f.size);
    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  5. #5
    Expert éminent sénior
    Avatar de dysorthographie
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    avril 2012
    Messages
    9 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : avril 2012
    Messages : 9 450
    Points : 16 069
    Points
    16 069
    Billets dans le blog
    1

    Par défaut

    Bonjour,
    Shema.ini
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    [Fichier1.Csv]
    Définition 
    [Fichier2.Csv]
    Définition
    Il dit non avec la tête
    mais il dit oui avec le coeur
    il dit oui à ce qu’il aime
    il dit non au professeur {Jacques PRÉVERT}

  6. #6
    Modérateur

    Homme Profil pro
    Inscrit en
    octobre 2005
    Messages
    12 306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : octobre 2005
    Messages : 12 306
    Points : 18 752
    Points
    18 752

    Par défaut

    Merci dysorthographie pour cette information que je n'avais pas croisée.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  7. #7
    Expert éminent sénior
    Avatar de dysorthographie
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    avril 2012
    Messages
    9 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : avril 2012
    Messages : 9 450
    Points : 16 069
    Points
    16 069
    Billets dans le blog
    1

    Par défaut

    Ainsi tu peux faire de l'inner join entre les tables (Csv)
    Il dit non avec la tête
    mais il dit oui avec le coeur
    il dit oui à ce qu’il aime
    il dit non au professeur {Jacques PRÉVERT}

  8. #8
    Membre à l'essai
    Femme Profil pro
    Développeur Java
    Inscrit en
    avril 2015
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : avril 2015
    Messages : 22
    Points : 16
    Points
    16

    Par défaut

    Merci Dysorthographie pour ta réponse. mais la mais 2 noms de fichiers sont dynamiques ils changents selon le mois et l'année donc comment pourrais je identifier les nioms de fichiers dans mon fichier schéma.ini.
    Merci d'avance pour ta réponse.

  9. #9
    Expert éminent sénior
    Avatar de dysorthographie
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    avril 2012
    Messages
    9 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : avril 2012
    Messages : 9 450
    Points : 16 069
    Points
    16 069
    Billets dans le blog
    1

    Par défaut

    j ai créé le 1er fichier shema.ini, le premier fichier se génère correctement mais pour le deuxième fichier est ce que je dois créer un autre fichier shéma .ini dans le même répertoire ou qu'est ce que je dois faire.
    Bonsoir,
    J'avoue ne pas comprendre la question! Dans ton premier poste tu déclare avoir générée le premier shema.ini ici c'est pareil!

    Shema.ini
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    txt="[Fichier1" & Format(date,"yyyy-mm-dd") & ".Csv]" & vbcrlf
    Txt =txt & "Définition" & vbcrlf
    txt=txt & "[Fichier2" & Format(date,"yyyy-mm-dd") & ".Csv]" & vbcrlf
    Txt =txt & "Définition" & vbcrlf
    Et tu enregistre dans le Shema.ini du répertoire de Csv (textes)

    Tu peux déjà faire un essai en créant ton shema.ini avec notpad!
    Il dit non avec la tête
    mais il dit oui avec le coeur
    il dit oui à ce qu’il aime
    il dit non au professeur {Jacques PRÉVERT}

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

Discussions similaires

  1. Besoin d'aide pour générer un fichier word ou excel en php
    Par Taz_8626 dans le forum Bureautique
    Réponses: 10
    Dernier message: 10/05/2011, 09h57
  2. Réponses: 3
    Dernier message: 14/08/2007, 16h07
  3. API magique pour comparer deux fichiers?
    Par miria.vhg dans le forum APIs
    Réponses: 2
    Dernier message: 11/07/2007, 11h06
  4. Script PHP pour générer un fichier xml
    Par totofe49 dans le forum PHP & MySQL
    Réponses: 4
    Dernier message: 11/05/2007, 15h12
  5. Comment faire pour générer un fichier à partir d'une BD MySQL
    Par dessinateurttuyen dans le forum Requêtes
    Réponses: 2
    Dernier message: 06/07/2006, 20h39

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