|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : mars 2011 Messages : 21 ![]() |
Bonjour,
Je travaille actuellement sur un fichier texte que je dois exporter sous sas. Dans ce fichier, certains élément de la ligne renvoie aux nombres de colonne de celle-ci, ainsi les lignes ne vont pas toutes avoir le même nombre de colonne. Est-ce que quelqu'un saurait comment on fait pour lire l'indice du nombre de colonnes??? |
|
|
00
|
|
|
#2 |
![]() ![]() Samir SELMANEConsultant en Business Intelligence Inscription : février 2011 Messages : 1 006 ![]() |
Rien compris. Un peu plus de précision STP.
|
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() Inscription : mars 2011 Messages : 21 ![]() |
Je vais essayer d'être plus clair :
Voici quelques lignes de mon fichier texte 0002252000150 5 3 16591 256 0055526421243 2 6 11 258894 0586587901459 7 4 2569875 1453 Les nombres en gras renvoie le nombre de caractère qui vont suivre et appartenir à la même colonne Pour la première ligne, on va donc d'abord avoir une colonne contenant les 5 nombres (16591) puis une autre avec les 3 suivants (123). |
|
|
00
|
|
|
#4 | ||
|
Expert Confirmé
![]() ![]() Olivier DecourtFormateur en informatique Inscription : avril 2008 Messages : 1 467 ![]() |
Bonjour.
C'est à cela que sert l'informat $varying. après lequel on indique la variable contenant la longueur. Code :
Olivier |
||
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Inscription : mars 2011 Messages : 21 ![]() |
Ok merci,
par contre le second nombre en gras exprime lui le nombre de colonnes, par exemple le nombre 3 en gras sur la première ligne exprime qu'il y'aura 3 colonnes constituées de la valeur 2 pour la première colonne, 5 pour la seconde et 6 pour la troisième. 0002252000150 5 3 16591 256 0055526421243 2 6 11 258894 0586587901459 7 4 2569875 1453 |
|
|
00
|
|
|
#6 | |
|
Membre Expert
![]() ![]() Brice BeareParis Inscription : janvier 2011 Messages : 956 ![]() |
Citation:
|
|
|
|
00
|
|
|
#7 |
|
Invité de passage
![]() Inscription : mars 2011 Messages : 21 ![]() |
oui j'étais allé un peu en vite en précipitation, le deuxième nombre indique le nombre de colonnes qui vont suivre en réalité
|
|
|
00
|
|
|
#8 | ||
|
Membre Expert
![]() ![]() Brice BeareParis Inscription : janvier 2011 Messages : 956 ![]() |
On a la première ligne de ton fichier:
Code :
|
||
|
|
00
|
|
|
#9 | |||
|
Invité de passage
![]() Inscription : mars 2011 Messages : 21 ![]() |
Citation:
A partir de cette ligne de texte 0002252000150 5 3 16591 256 Voici les colonnes que je veux obtenir : 2252000150 5 3 16591 2 5 6 colonne 1 -> 2252000150 col 2 -> 5 col 3 -> 3 col 4 -> 16591 col 5 -> 2 col 6 -> 5 col 7 -> 6 Je t'avoue que je trouve ce fichier assez complexe dans son organisation |
|||
|
|
00
|
|
|
#10 |
|
Membre Expert
![]() ![]() Brice BeareParis Inscription : janvier 2011 Messages : 956 ![]() |
à mon avis tu as mal lu le fichier à l'origine (perso, je ne sais pas comment tdécouper le contenu d'une colonnes en plusieurs). Est ce que c'est un fichier texte à l'origine? Si oui, tu peux le mettre en pièce jointe
|
|
|
00
|
|
|
#11 |
|
Invité de passage
![]() Inscription : mars 2011 Messages : 21 ![]() |
le fichier texte est assez volumineux, voici un échantillon,
malheureusement je ne sais pas si ça pourra t'aider. |
|
|
00
|
|
|
#12 |
|
Invité de passage
![]() Inscription : mars 2011 Messages : 21 ![]() |
Les colonnes nb1, nb2 et nb3 sont les équivalents du second caractère que je marquai en gras à chaque fois et indique le nombre de colonnes qui doivent suivre et contenant les valeurs de la variable "texte".
Bref tout ça n'est pas facile!!! lol |
|
|
00
|
|
|
#13 | ||
|
Membre Expert
![]() ![]() Brice BeareParis Inscription : janvier 2011 Messages : 956 ![]() |
La colonne texte doit être lue sur une seule colonne? ou faut le découper en 2 voire 3 colonnes.
désolé de te le redemander encore, tu voudrais obtenir quoi à partir des 2 lignes du fichiers (combien de colonnes et les valeurs correspondantes)?: Code :
|
||
|
|
00
|
|
|
#14 |
|
Invité de passage
![]() Inscription : mars 2011 Messages : 21 ![]() |
A partir de ces deux lignes voila ce que j'aimerai obtenir :
47615 1 1 1 2 1000222Z491 N180 Z |
|
|
00
|
|
|
#15 |
|
Membre Expert
![]() ![]() Brice BeareParis Inscription : janvier 2011 Messages : 956 ![]() |
|
|
|
00
|
|
|
#16 | ||
|
Expert Confirmé
![]() ![]() Olivier DecourtFormateur en informatique Inscription : avril 2008 Messages : 1 467 ![]() |
Pas facile, non, mais on a tous les outils dans l'instruction INPUT...
Par exemple, avec un @, tu suspends la lecture de la ligne à un endroit précis. Ensuite tu peux reprendre avec un autre INPUT, à l'intérieur d'une boucle. Il faudra juste un INPUT sans @ quelque part pour "libérer" la ligne lue et passer à la suivante. Code :
Bon courage. Olivier |
||
|
|
00
|
|
|
#17 | |||
|
Invité de passage
![]() Inscription : mars 2011 Messages : 21 ![]() |
Citation:
Je m'aperçois que c'est bien plus compliqué qu'il n'y parait, je reviens te voir quand j'aurais mieux compris la structure de la base, en tout cas merci pour ton aide, ça m'as déjà un peu avancé |
|||
|
|
00
|
|
|
#18 |
|
Membre Expert
![]() ![]() Brice BeareParis Inscription : janvier 2011 Messages : 956 ![]() |
Je constate qu'à chaque ligne, le nombre de colonnes est variable si j'ai bien compris.
Bon courage |
|
|
00
|
|
|
#19 |
|
Invité de passage
![]() Inscription : mars 2011 Messages : 21 ![]() |
Oui c'est tout à fait ça!!
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com