traitement d'un fichier de points : comment faire? - Logiciels - Windows & Software
Marsh Posté le 30-04-2004 à 11:50:43
un petit exemple pour etre plus clair
je dispose de
Citation : 125.472702 152.692596 918.097595 |
on remarque donc 3 groupes suivant z: 918, 919, 920
et ce que je voudrais, c'est sortir trois fichiers de section, a savoir
Citation : 125,472702 152,692596 |
Citation : 128,390594 129,348907 |
Citation : 128,390594 135,184799 |
voila, j'espere que c'est plus clair
Marsh Posté le 30-04-2004 à 11:51:54
comment se présente ton fichier ? c'est un fichier plat ? il est mis en page ? avec quoi tu peux l'ouvrir ; bloc note, notepad ?
edit : oui c'est plus clair
A priori excel n'aurait aucun probleme pour traiter ca
Marsh Posté le 30-04-2004 à 11:57:19
karoli a écrit : comment se présente ton fichier ? c'est un fichier plat ? il est mis en page ? avec quoi tu peux l'ouvrir ; bloc note, notepad ? |
oui, il est presente en colonnes
et comment s'y prendre avec excel pour automatiser ca stp?
parce que le fichier complet fait dans les 27 000 lignes...
Marsh Posté le 30-04-2004 à 12:06:07
bah faut developper un p'tit truc en VBA mais ca demande un p'tit peu de temps
En gros tu importes ton fichier plat dans excel, et tu boucles sur toutes lignes pour d'une part separer x,y de z, et d'autre part classer puis isoler tes données en fonction de z...
il fait quelle taille ton fichier ? en Ko ou Mo, pas en lignes
Marsh Posté le 30-04-2004 à 12:26:15
ReplyMarsh Posté le 30-04-2004 à 21:21:19
itoine a écrit : |
Charge ton fichier dans excel pour qu'il se retrouve dans la colonne A.
Dans les colonnes adjacentes copie les formules suivante et sur au temps de lignes que tu veux:
=SI(CHERCHE( " 918";$A1);GAUCHE($A1;CHERCHE( " 918";$A1) - 1);"" )
=SI(CHERCHE( " 919";$A1);GAUCHE($A1;CHERCHE( " 919";$A1) - 1);"" )
=SI(CHERCHE( " 920";$A1);GAUCHE($A1;CHERCHE( " 920";$A1) - 1);"" )
===============
Apres avec un filtre automatique (Données/Filtre /Filtres automatique)
Tu choisis ce que tu veux .
================
Apres avec l'option tri, tu fais ce que tu veux.
J'ai testé avec 40000 entrées sur un 850Mo 600Mo RAM
Ca passe largement et c'est très facile à mettre en oeuvre.
Bien sur apres tu fais les copier/coller ou selection que tu veux pour les mettre ou tu veux.
Bon bien sur C'est un peu bourrin mais bon.
Marsh Posté le 30-04-2004 à 22:00:53
c'est justement le copier/coller repete 200 fois de suite que je veux eviter
Marsh Posté le 30-04-2004 à 23:10:49
itoine a écrit : c'est justement le copier/coller repete 200 fois de suite que je veux eviter |
200 fois.
positionner les filtres automatiques en 3 cliques.
3 tris
3 copies/collés
et c'est bon.
Mais ca ne reste pas totalement automatique.
Bon courage.
Marsh Posté le 01-05-2004 à 08:13:23
a desole j'ai pas du etre assez precis dans mon explication.
car dans le fichier ci dessus, ce n'est qu'un exemple
dans cet exemple j'ai pris les 3 premiers groupes de z
en fait, dans le fichier complet, il y aura environ 200 groupes a faire et donc 200 fichiers a creer.
Marsh Posté le 01-05-2004 à 20:53:30
itoine a écrit : a desole j'ai pas du etre assez precis dans mon explication. |
Alors tu peux toujours commencer par ca en Programmation Batch
for /L %%b in (800,1,999) do for %%a in ( %%b ) do find " %%a" tonfichier.txt > fichierpour%%a
En comptant de 800 a 999 pour exemple, la boucle cherche le nombre pointé (précédé d'un espace) dans "tonfichier.txt" et place les lignes dans un fichier specifique. Ainsi tu sépares tes lignes vers de petit fichier en fonction de la chaine cherchée.
Bon ok ca fait pas tous. Il va falloir que j'apprenne un peu à aller dans la catégorie programmation du forum si je veux faire des progres en Batch windows ou VB. Je suis plutot batch unix normalement
Marsh Posté le 30-04-2004 à 11:47:02
Je ne sais pas du tout où poster ca, mais bon, je vais tenter ca ici.
Si vous pensez qu'il faut mettre ca ailleurs, dites le .
Alors voila mon probleme :
je dispose d'un fichier de points x,y,z representant un objet 3D par sections.
il y a donc plusieurs fois le meme z pour differents couples x,y
ce que je voudrais faire
-> homogeneiser les z : il y a plusieurs fois le meme z mais avec des petites incertitudes -> ca exel peut le faire.
-> ensuite, je voudrais sauvegarder autant de fichiers de points qu'il y a de paquets de z. Ces fichiers seraient en 2 colonnes representant les couples x,y.
Je pense pas avoir ete bien clair, aussi n'hesitez pas a le dire.
Donc comment faire? exel sait le faire? il faut faire un programme dedie?