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

OpenOffice & LibreOffice Discussion :

Récupérer les données d'un fichier .txt et les insérer dans une base de données [OpenOffice][Base de données]


Sujet :

OpenOffice & LibreOffice

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 81
    Points : 49
    Points
    49
    Par défaut Récupérer les données d'un fichier .txt et les insérer dans une base de données
    Bonjour à tous.

    Je vous expose mon probléme :
    Donc j'ai une table dans une base de données sous Base. J'ai un fichier .txt sur le coté.
    Je dois récupérer certaines données de ce fichier.
    ma premiére données commence a la ligne 3 et se termine ligne 16. Ensuite j'ai tout une suite d'information (dont je n'ai pas besoin) et on va dire que 50 lignes plus tard j'ai ma deuxiéme donnée. et ainsi de suite.
    C'est données je dois les insérer dans ma table.

    Donc je me doute qu'il va falloir faire une boucle, ainsi qu'une lecture de fichier. Mais je ne sais pas du tout comment m'y prendre
    (j'ai un vrai probléme avec open office)

    J'utilise la version 3 d'open office.

    Merci a ceux qui pourront m'aider
    bonne journée à tous

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Comment se présentent tes données dans chaque ligne ?

    C'est l'ensemble que tu récupères ?
    Est-ce que tu dois les éclater dans différents champs d'une table ?

    Un exemple de fichier (ou du moins sa strucuture), et dans quel table (avec sa structure) serait une aide non négligeable

    Philippe

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 81
    Points : 49
    Points
    49
    Par défaut
    Bonsoir

    La je n'ai pas les fichiers sous la main vu que je ne suis plus au boulot
    Donc je vous envoie ca demain !!
    merci
    bonne soirée

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 81
    Points : 49
    Points
    49
    Par défaut
    Bonjour,
    Malheureusement je ne peux pas vous envoyer mon fichier, puisque étant en milieu militaire ... secret défense !

    Mais la structure est la suivante :
    J'ai une premiére ligne (dont je ne me sert pas)
    une ligne vide
    ensuite la partie que je veux récupérer :
    IDENTIFICATION
    identifiant
    nom
    prenom
    sexe
    date de naissance
    adresse
    CP ville
    en dessous de CP ville j'ai les informations d'une personne qui se mettent a la ligne pour chaque info
    ensuite j'ai la ligne CORRECTIONS EVENTUELLES
    et tout un tas de ligne qui ne me servent pas
    et j'enchaine sur la personne suivante

    Je dois donc récupérer les données se trouvant entre IDENTIFICATION et CORRECTIONS EVENTUELLES (enfin surtout entre CP ville et CORRECTIONS EVENTUELLES)

    et les données doivent remplir ma table (un champ par donnée)

    j'ai commencé un code qui me permet de lire mon fichier :

    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
    Sub importationFichierTexte
    Dim vNumFichier As Integer
    Dim vLigne As String
    Dim vMessage as String
    Dim vNomFichier as String
    Dim vFin as Boolean
     
    ' Définit le nom du fichier
     vNomFichier = "chemin du fichier"
    ' Génère un descripteur de fichier libre, Définit un numéro de fichier libre
     vNumFichier = Freefile
    ' Ouvre le fichier (en mode lecture)
     Open vNomFichier For Input As vNumFichier
     vFin = False
    ' Vérifie si la fin du fichier a été atteinte
     While not eof(vNumFichier) And not vFin
    ' Lit une ligne
      Line Input #vNumFichier, vLigne
      If left(vLigne, 14) = "IDENTIFICATION" Then
       vFin = True
      End if
      Line Input #vNumFichier, vLigne
     wend
    ' Initialise la variable
     vMessage = ""
    ' Vérifie si la fin du fichier a été atteinte
     While not eof(vNumFichier)
    ' Lit une ligne
      Line Input #vNumFichier, vLigne
    ' Si la ligne n'est pas vide
      If vLigne <>"" then
       vMessage = vMessage & vLigne & Chr(13)
      end if
     wend
    ' Ferme le fichier
     Close #vNumFichier
     Msgbox vMessage
     
     
    End Sub
    je pense qu'il fonctionne, maintenant il me faut importer les données dans ma table. Si quelqu'un sait comment faire

    merci et bonne journée à tous

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 81
    Points : 49
    Points
    49
    Par défaut
    Ha oui j'ai oublié de préciser :
    dans ma table, ma clé primaire n'est pas "Identifiant" mais "numéro de table", donc je dois "créer" une clé primaire lors de chaque insertion d'une personne dans ma table (la premiére personne aura la table 1, la deuxiéme table 2, ect)
    Et je dois récupérer le code du département (qui est le dernier champ de ma table), c'est a dire que si le code postale est 59300 alors mon code département c'est 59, ou si le code postale est 62150 alors le code département est 62 (je ne peux avoir que 59 ou 62).

    ha oui aussi : la mon fichier s'appelle S1, mais j'aurais également un fichier S2 et S3 (mais pas tout le temps un S3) dont les données doivent s'ajouter en dessous du S1.
    Mais tous les jours des nouvelles données viendront écraser celle de la veille.

    Voila je ne pense pas avoir oublié quelque chose

    bonne journée

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonjour

    En attendant mieux, je t'invite à consulter la FAQ OpenOffice où tu trouveras comment intégrer des données dans ta base : http://ooo.developpez.com/faq/?page=Base

    Philippe

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 81
    Points : 49
    Points
    49
    Par défaut
    oui j'étais entrain de regarder ca
    mais je comprend pas comment le faire par requéte vu que j'ai plusieurs ajout
    c'est ca qui me bloque

    j'en ai marre

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 81
    Points : 49
    Points
    49
    Par défaut
    Bonjour,
    pour mon ajout, je sais que je dois le faire par requête avec une boucle. Mais comment faire sachant que je ne reprend pas toutes mes données et que je dois en mettre d'autres dont la clé primaire ?
    si quelqu'un à une idée ...

    bonne journée

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 81
    Points : 49
    Points
    49
    Par défaut
    Bonjour,

    j'ai trouvé une solution à mon probléme, je vous fait part du code :
    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
    Sub importationFichierTexte
     
    Dim vNumFichier As Integer
    Dim vLigne As String
    Dim vMessage As String
    Dim vNomFichier As String
    Dim vFin As Boolean
     
    Dim vBaseContext As Object
    Dim vBase As Object
    Dim vConnexion As Object
    Dim vTable As Object
    Dim vResultat As Object
    Dim vRequete As String
    Dim I As Integer
    Dim vNum as Integer
     
    'Définit un service pour pouvoir ouvrir la base
     vBaseContext = createUnoService("com.sun.star.sdb.DatabaseContext")
     
    'Détermine la base à ouvrir
     vBase = vBaseContext.getByName(ConvertToUrl("chemin de ma base"))
    'Définit la connexion
     vConnexion = vBase.GetConnection("","")
    'Définit le recordset
     vTable = vConnexion.createStatement()
     
    ' Définit le nom du fichier
     vNomFichier = "chemin de mon fichier .txt"
    ' Génère un descripteur de fichier libre, Définit un numéro de fichier libre
     vNumFichier = Freefile
    ' Ouvre le fichier (en mode lecture)
     Open vNomFichier For Input As vNumFichier
     vNum = 1
     vFin = False
    ' Vérifie si la fin du fichier a été atteinte
     While not eof(vNumFichier)
      vFin = False
      While not eof(vNumFichier) And not vFin
    ' Lit une ligne
       Line Input #vNumFichier, vLigne
       If left(vLigne, 19) = "Date de naissance :" Then
        vFin = True
       End if
       Line Input #vNumFichier, vLigne
      wend
      If not eof(vNumFichier) Then
    ' Initialise la variable
       vRequete = vNum & ", "
       For I = 1 to 6
           vLigne = left(vligne, len(vligne) - 1)
        If I <> 4 Then
         If isNumeric(vLigne) then
          vRequete = vRequete & vLigne & ", "
         Else
          vRequete = vRequete & "'" & vLigne & "', "
         End If
        End If
        Line Input #vNumFichier, vLigne
       Next I
          vLigne = left(vligne, len(vligne) - 1)
       If not isNumeric(left(vLigne, 5)) Then
        vRequete = left(vRequete, len(vRequete) - 3) & " " & vLigne & "', "
        Line Input #vNumFichier, vLigne
           vLigne = left(vligne, len(vligne) - 1)
       End If
       vRequete = vRequete & "'" & left(vligne, 5) & "' ,'" & right(vLigne, len(vLigne) - 6) & "', " & left(vLigne, 2)
       vResultat = vTable.executeQuery("INSERT INTO ""jeune"" VALUES(" & vRequete & ")")
       vNum = vNum + 1
      End If
     Wend
    ' Ferme le fichier
     Close #vNumFichier
     MsgBox "Fini"
     
    End Sub
    Voila
    bonne journée à tous

  10. #10
    Nouveau Candidat au Club
    Inscrit en
    Juillet 2009
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 1
    Points : 1
    Points
    1
    Par défaut urgent
    bonjour,j'ia un fichier texte ou j'ai des donne et je vs prendre ces donne et les mettre dans une liste pour les trier selon la date la plus recente biensur en java est ce que vs purriez m'aidez svp c urgent

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

Discussions similaires

  1. [Excel] Extraire données dans fichier excel et insérer dans une base de données
    Par Bionik6 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 15/04/2013, 16h39
  2. Réponses: 1
    Dernier message: 17/11/2012, 18h16
  3. Réponses: 2
    Dernier message: 23/05/2011, 10h57
  4. Récupérer l'id d'un bouton radio et l'insérer dans une base de donnée
    Par narama87 dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 28/04/2009, 13h18
  5. Réponses: 2
    Dernier message: 20/07/2008, 11h29

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