-
1 pièce(s) jointe(s)
Parsing d'un .txt
Bonjour a tous,
je viens ici aujourd'hui pour avoir quelques conseil sur la récupération de données dans un fichier txt (qui est généré par un système AS400).
Mon but est de récupérer les données qui m’intéresse, de les inclure dans ma base MySQL et de pouvoir sortir des rapport un peu plus "fancy" que sur l'IBM.
Je pensais pouvoir m'en tirer a coup d'explode et de trim, nais il s'avère que je galère un peu plus que prévu.
Voici une parti d'un fichier txt:
Pièce jointe 171243
Mes problèmes ci-dessous surviennent dans lors de l'utilisation d'explode avec le caractère espace en paramètre:
Premier problème: Le "NAME" (nom client) peut avoir 1 ou 2 mots (ce cas n'est pas compliqué a gérer).
Deuxième problème: Le "P/N" peut avoir 2, 3 voir 4 mots (encore gérable).
Troisième problème: Il y a parfoit des colonnes vides (et c'est la que je bloque car la taille de mon tableau varie lors de l'explode).
Si quelqu'un a un petite piste, je suis preneur.
Merci d'avance,
Dewey.
-
Bonjour,
Normalement chaque "champs" devrait avoir une taille maximale, disons que le name ne peut être que sur 8 caractère que le P/N sur 22 caractères, etc...
Tu devrais pouvoir avoir ses informations non?
Si oui, tu n'auras plus cas découper par taille de champs et ensuite par exemple enlever les espaces en trop.
-
Effectivement, chaque champs sont de la même taille dans le fichier. Me reste donc a parser en utilisant des substr sur chaque lignes.
Merci.
-
-
Tu sur que ce sont des espaces entres les colonnes ?
Je dirais plutot une tabulation moi.
-
Ce sont bien des espaces malheureusement,
Bref, le parsing a coup de substr fonctionne parfaitement.
Autre problème rencontré, les chiffres négatifs avec le "-" situé derrière, résolu en faisant un rtrim pour enlever le "-" et un substr_replace pour le remettre devant.
Voila, merci bien pour le conseil.
Cordialement,
Dewey.