michmuch51 Posté 19 Mai 2006 Partager Posté 19 Mai 2006 (modifié) Bonjour le hub, j'ai actuellement un fichier texte avec plusieurs définitions du genre: Monmot: monmot est issu du latin momot... Mondeuxiememot: issu du deuxieme mot de momot en latin, mondeuxiememot est....exemple: ninin mondeuxiememot et donc toutes mes definitions sont dans un fichier txt avec apres chaque définition un retour à la ligne et deux petits point apres le mot à définir, le seul pb c'est que de temps en temps dans le descriptif on retrouve ":" également (du genre "exemple:") Vous l'aurez compris, je souhaite transférer ce fichier txt dans une bdd définie lemot + la def donc un tableau tout bete avec 3 cellules: id avec auto_increment puis lemot dans la deuxieme et dans la dernière definition Merci pour votre aide Michmuch edit: j'espere que j'ai été clair car en me relisant je vois que c'est un peu le fouilli (n'hésitez pas à me le faire savoir si vous ne comprenez rien à ma demande ) Modifié 19 Mai 2006 par michmuch51 Lien vers le commentaire Partager sur d’autres sites More sharing options...
psylock Posté 20 Mai 2006 Partager Posté 20 Mai 2006 (modifié) faut lire ton fichier caractère par caractère jusqu'a ce que tu rencontres le premier ":" la tu remplis tes champs "id" et "mot" dans ta base t'as plus qu'a mettre ensuite le reste (ce qui suit les ":") dans ton champ definition j'espere que j'ai bien compris ton probleme. exemple: http://www.nexen.net/index.php?option=com_...ction.fgetc.php Modifié 20 Mai 2006 par psylock Lien vers le commentaire Partager sur d’autres sites More sharing options...
xou Posté 20 Mai 2006 Partager Posté 20 Mai 2006 hello, Regarde plutôt du côté de: LOAD DATA INFILE Lien vers le commentaire Partager sur d’autres sites More sharing options...
psylock Posté 20 Mai 2006 Partager Posté 20 Mai 2006 ok pour l'efficacite mais dans ce cas j vois pas en quoi ca resout son probleme de ":"... Lien vers le commentaire Partager sur d’autres sites More sharing options...
michmuch51 Posté 20 Mai 2006 Auteur Partager Posté 20 Mai 2006 oui en effet moi ce que je cherche c'est plus les fonctions pour pouvoir justement retrouver ces ":" et ensuite insérer le tout en bdd. mais je vais essauyer de me débrouiller, je vous renvois la soluce dès que je la trouve (va falloir être patient) Lien vers le commentaire Partager sur d’autres sites More sharing options...
xou Posté 24 Mai 2006 Partager Posté 24 Mai 2006 la solution est d'échapper tes caractères dans le texte. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Spidetra Posté 24 Mai 2006 Partager Posté 24 Mai 2006 ok pour l'efficacite mais dans ce cas j vois pas en quoi ca resout son probleme de ":"... <{POST_SNAPBACK}> http://dev.mysql.com/doc/refman/5.1/en/load-data.html FIELDS TERMINATED BY ':' ça ne resout pas le pb ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
psylock Posté 24 Mai 2006 Partager Posté 24 Mai 2006 désolé mais je saisi pas ou on peut définir qu'il faut prendre en compte le premier ":" (celui qui separe le mot de se définition) et pas ceux contenu dans la définition. j comprend bien, me semble t il, l'utilité de load data infile. mettons j'ai un fichier test.txt comprenant 3 lignes: mot 1 : premiere definition mot 2 : ma seconde definiton : contient un deux points mot 3 : troisieme definition si on fait ca ? load data infile 'test.txt' into table ma_table fileds terminated ':' ca donne ca la table au final ligne1 mot 1 premiere definition ligne2 mot 2 ma seconde definiton ligne3 mot 3 troisieme definition et il y a donc un morceau de la seconde définition qui disparait... je vois pas ta technique la :-/ Lien vers le commentaire Partager sur d’autres sites More sharing options...
xou Posté 24 Mai 2006 Partager Posté 24 Mai 2006 (modifié) Bonjour, Effectivement, son problème vient des caractères présents dans le fichier texte et pour celà il n'y a pas de solution miracle: - soit les champs sont bien délimittés (' ou "), séparés (par une virgule), et terminés (par ; ) et les caractères spéciaux du contenu de chaque champ échappés correctement - soit on peut rattrapper celà comme tu dis Psylock mais seulement si on peut créer des algorithmes permettant de différencier le contenu, des éléments de délimittation (autant dire que c'est rare que le contenu le permette) - soit on l'as dans le c** LOAD DATA INFILE n'est pas une fonction magique, elle ne pourra traiter que des données formattées correctemment, et un algo PHP ne saura pas en faire d'avantage. Modifié 26 Mai 2006 par xou Lien vers le commentaire Partager sur d’autres sites More sharing options...
Spidetra Posté 24 Mai 2006 Partager Posté 24 Mai 2006 autant pour moi.... je n'avais pas vu que le délimiteur de champ était aussi présent dans le texte. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant