salut,
j'ai un problème et j'epère trouver de l'aide :( :( :( :( :(
en fait j'ai un fichier CSV que je doit faire un traitement
1) Supprimer les 3 premier lignes et les 2 derniers
2) Exporter ce fichier dans une base de donné (Access).
:!: :!: :!: :!:
exportation d'un fichier csv dans une base de donnée access
jeu, 01/03/2007 - 17:03
#1
exportation d'un fichier csv dans une base de donnée access
Bonjour,
Alors pour ça c'est tout simple. Tu supprimes les 3 premières lignes et les deux dernières et le tour est joué :)
Non non, je ne me moque pas de toi :) Dans la pratique tu vas instancier un objet java.io.BufferedReader en donnant un FileReader à son constructeur.
Après tu appelles la méthode readline du BufferedReader pour lire les lignes une à une en les méttant dans un vector par exemple. Et enfin tu supprimes les 3 premières et les 2 dernières lignes du vector :)
Là par contre, impossible de t'aider même en le voulant très fort.
Tu dois mettre les données dans une base de données Access soit, mais en fait c'est dans des tables de la base que tu dois mettre les données pour être précis. Tu ne dis rien quant à la structure (les colonnes) de la table
Tu ne dis rien quant au contenu du fichier.
Tu ne dis rien du tout.
Donc impossible de t'aider parce qu'impossible de deviner quel est ton problème exactement. Ni même à quel niveau il se situe. Te connecter à la base :?: Créer une table :?: Remplir une table :?: Faire chauffer une pizza pendant que ça compile :?:
après la suppréssion des 3 premières ligne la nouvelle 1ère ligne contient la liste des champs séparé par une virgule.
et le reste se sont les différentes valeur du champs séparer de meme par des virgules.
:wink: :wink: :wink: :wink: :wink: :wink: :wink: :wink:
Tu veux faire ce traitement automatiquement ou manuellement ?
automatiquemant si possible si non manuellement :cry:
mais je me suis cassé la tete pour faire la 1ère étape (suppréssion de ligne) mais sans résultat, est ce que vous pouvez m'aider ? :?
Merci
Hey man :!:
Tu n'as pas l'air content de ce que je t'ai dit. (Je dis ça parce que je n'ai pas vu de merci, ni rien quoi)
Mais.... avec la question telle que tu l'as posée, comme je savais que tu avais un problème de virgule moi :?:
Ca c'est le genre de trucs qui me tuent. Un type pose une question totalement imprécise, on essaie quand même de l'aider, on y passe du temps et il revient dire que ça lui convient pas en se marrant avec des :wink: :wink:
Et puis de toutes façons qu'est-ce que c'est que que ce discours ?
Dans ta question tu as parlé de retirer des lignes. J'y ai répondu. Qu'est-ce que cette histoire de virgule à a voir dans le fait de retirer des lignes
Oui les valeurs dans un fichier CSV sont séparées par des virgules. Mais ça ne gêne pas pour retirer des lignes :wink: :wink: :wink:
Mais alors c'est un problème de ligne ou de virgules ton affaire ?
Quand tu auras posé une question qui détaille tes problèmes et tes difficultés on verra si on peut t'aider :wink: :wink: :wink: :wink: :wink:
Non sans blague. C'est avec plaisir que je t'aiderai si tu fais une demande d'aide qui soit claire. Et aussi si tu postes un peu du code que tu as écrit, qu'on voit mieux tes problèmes.
voici un extrait du mon fichier
Date,Time,Object,INSTAT:CA Nr,MSC_HO:CA_HO Nr
2007/02/25,19:15,MSC01,119452.0,20282.0,88899.0
la première ligne contient la liste des champ de ma base et la deuxième les valeurs
le séparateur est la virgule ',' :oops: [/]
Qu'est-ce que c'est que ces
et compagnie :?: :wink: :wink:Quote:
Soit et alors ? On sait bien comment est structuré un fichier CSV.
Déjà moi ne je comprends pas pourquoi retirer les trois premières lignes. La première je peux comprendre :idea: Les trois premières, mystère :?: :?:
Ad-Hoc Report - Historical SPBH 1 day
Start Date: Sun 25 Feb 2007
End Date: Sun 25 Feb 2007
ces trois ligne je veux les supprimer
mais
Date,Time,Object,INSTAT:CA Nr,MSC_HO:CA_HO Nr
et
2007/02/25,19:15,MSC01,119452.0,20282.0,88899.0
2007/02/25,19:15,MSC09,193339.0,24886.0,4350.0
2007/02/25,21:00,MSC02,288652.0,16632.0,50999.0
je veux les mettre dans une base Access :shock:
Bon ok pour les trois premières lignes, tu veux les supprimer
En admenttant qu'il n'y ait pas une ligne vide juste derrière, mais c'est plus un détail qu'autre.
Bon tu veux mettre des données dans une table Access. Ca on le comprends aussi.
MAIS tu nous dis que tu veux mettre la ligne
dans la table aussi. C'est bien ce que tu as écrit.
Tu te rends compte de l'énormité j'espère ?
cette ligne contient les champs de ma table
T'es vraiment un marrant toi :lol:
Oui on a bien compris que cette ligne contient *les noms de colonnes de la table*
Mais en tant que tel ça ne se "rentre pas dans la table" comme on le fait pour les données. Or c'est bien ce que tu as dit vouloir faire dans ton message précédent.
Tu vas me dire que j'aurais pu mettre de la bonne volonté à comprendre mais je t'assure que j'ai essayé. Il se trouve que dans un autre fil de discussion tu as dit que la table existait déjà. S'il elle existe, les colonnes ont déjà un nom. Alors qaund tu dis que dois rentrer les noms de colonnes ça ne veut rien dire. Voilà.
Tu sais, ce n'est pas en balançant des petites phrases comme ça, comme si on ne comprenait rien, que tu vas avancer beaucoup. Allez remets toi en cause un petit peu.
Sinon, t'aider c'est pas possible, et pourtant je ne manque pas de bonne volonté je t'assure.
voici le code complet (tout mache comme sur des roulette)
Bravo :!: :D
Maintenant quelques remarques si tu me le permets.
Bon ça marche mais...
1) c'est vraiment pas beau de créer une table et de faire une boucle pour ajouter des colonnes. Normalement tu crées toutes les colonnes d'un coup avec une seule requête. Pour moult raisons un ajout de colonnes dans une table est quelque chose qui devrait n'être fait qu'exceptionnellement.
2) toutes tes colonnes ont un type varchar(50) même pour les dates, valeurs numériques et autres. C'est pas bien beau non plus.
Et puis tu perds une place folle dans la base
Ton code marche c'est entendu, mais ce que je veux te dire c'est que si tu le montres à un entretien d'embauche, tu vas être recalé à coup sûr.
Je ne te dis pas ça pour te faire de la peine. Comprends moi bien
Je vois que tu as bossé dur pour faire ce que tu as fait. Je te dis ça simplement pour te signaler des améliorations que tu devrais apporter, maintenant que tu as déjà une base de code qui fonctionne.
merci pour ton conseil
je vais esseyer d'améliorer mon code mais je devrais dire que c'est pas mal sur tout que c'est première fois que je développe en java.
:arrow: à propos des colonne je n'est plus le choix car les différents champs sont créer à partir d'un fichier donc je ne sais pas au préalable tout les champs de ma base.
Et merci encore une fois. :D
Oui j'avais bien compris,
Mais non :)
De quoi parles tu au fait ? De créer toutes les colonnes d'un coup, ou de connaître VARCHAR dans toutes les colonnes ?
Mais dans tous les cas tu peux procéder autrement.
Pour la question des types tu peux très bien analyser un peu les données pour voir ce que c'est. C'est facile d'identifier les types Double par exemple. Ou encore les dates ou l'heure.
Autre chose pendant que j'y suis.
Tu déclares varchar(50), mais je ne crois pas avoir vu dans ton code que tu vérifies que ce que tu y mets tient dedans ;)
vous avez raison à propos des type de variable :idea:
mais pour les colonnes je disais que j'ai ne plus le choix il faut les insérées une par une :!:
:arrow: juste une proposition: pour quoi ne pas distingué entre les discussions résoluts et celle qui ne sont pas, c'est juste ajouter [résolut] à coté du nom de la discussion :?:
Ah non, ah que non :!: :!:
Il te suffit d'analyser (toute petite analyse hein ) la première ligne de ton fichier pour connaître
1) le nombres de colonnes
2) leurs noms
Après quoi rien ne t'empêche de constituer ta chaîne CREATE TABLE,etc
Vraiment très très très, mais alors très facile
m'enfin.....
Pour commencer je préférerais de loin [Résolu]
Ensuite qui a posé la question :?:
C'est à toi de le faire....
1) le nombres de colonnes
2) leurs noms
Après quoi rien ne t'empêche de constituer ta chaîne CREATE TABLE,etc
Vraiment très très très, mais alors très facile
m'enfin.....
et pour je pouvez avoir une liste de 78 champs
je dois faire koi
create table test (champ1, chaps2,.........,champs78)
:?:
Crévindiou qu'est qu'y a ti dans ton champs ?
Comprends point kek tu dis là mon gars.
Je suppose que c'est une plaisanterie que je n'ai pas le privilège de pouvoir comprendre.
Dis, sans rire, as tu déjà pensé que quand une personne essaie d'en aider une autre sur un forum, si la seconde ne veut jamais rien entendre, la première finit par se lasser.
Toi qui postes dans tous les forums de l'univers connu et inconnu (ah si, je t'ai vu :!:) tu devrais le savoir non ?
je m'excuse je voulais juste dire que dois je faire
:oops: :oops: :oops: :oops: :oops: :oops: