traitement d'un fichier de points : comment faire?

traitement d'un fichier de points : comment faire? - Logiciels - Windows & Software

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?

Reply

Marsh Posté le 30-04-2004 à 11:47:02   

Reply

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
128.390594 132.266800 918.098083
131.308594 132.266800 918.099670
125.472702 155.610596 918.099915
124.819298 152.692596 918.099976
125.444702 155.610596 918.099976
125.472702 151.959305 918.099976
125.472702 155.621704 918.099976
125.488800 155.610596 918.099976
126.299004 152.692596 918.099976
127.869202 132.266800 918.099976
128.390594 131.606903 918.099976
128.390594 132.926804 918.099976
131.308594 132.177307 918.099976
131.308594 132.341293 918.099976
131.360306 132.266800 918.099976
128.390594 129.348907 918.765930
131.308594 129.348907 918.799805
125.472702 132.266800 919.136719
122.554703 152.692596 919.282471
122.530899 152.692596 919.299988
122.554703 152.572800 919.299988
122.554703 153.147797 919.299988
122.864098 155.610596 919.299988
125.268501 132.266800 919.299988
125.472702 131.798401 919.299988
125.472702 132.938599 919.299988
125.472702 151.320694 919.299988
125.472702 156.678696 919.299988
126.666000 155.610596 919.299988
126.729698 152.692596 919.299988
127.164001 129.348907 919.299988
128.390594 128.526794 919.299988
128.390594 134.920807 919.299988
131.308594 128.311295 919.299988
131.308594 134.836304 919.299988
132.701004 129.348907 919.299988
133.368698 132.266800 919.299988
122.554703 155.610596 919.399292
128.390594 135.184799 919.673523
125.472702 132.266800 919.718994
122.554703 149.774704 919.979004
134.226593 132.266800 920.072571
119.636703 152.692596 920.119080
119.636703 155.610596 920.134583
116.718803 155.610596 920.286072
116.718803 152.692596 920.304016
134.226593 129.348907 920.400513
113.800797 158.528595 920.471619


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
128,390594 132,2668
131,308594 132,2668
125,472702 155,610596
124,819298 152,692596
125,444702 155,610596
125,472702 151,959305
125,472702 155,621704
125,4888 155,610596
126,299004 152,692596
127,869202 132,2668
128,390594 131,606903
128,390594 132,926804
131,308594 132,177307
131,308594 132,341293
131,360306 132,2668


Citation :

128,390594 129,348907
131,308594 129,348907
125,472702 132,2668
122,554703 152,692596
122,530899 152,692596
122,554703 152,5728
122,554703 153,147797
122,864098 155,610596
125,268501 132,2668
125,472702 131,798401
125,472702 132,938599
125,472702 151,320694
125,472702 156,678696
126,666 155,610596
126,729698 152,692596
127,164001 129,348907
128,390594 128,526794
128,390594 134,920807
131,308594 128,311295
131,308594 134,836304
132,701004 129,348907
133,368698 132,2668
122,554703 155,610596

Citation :

128,390594 135,184799
125,472702 132,2668
122,554703 149,774704
134,226593 132,2668
119,636703 152,692596
119,636703 155,610596
116,718803 155,610596
116,718803 152,692596
134,226593 129,348907
113,800797 158,528595


voila, j'espere que c'est plus clair


Message édité par itoine le 30-04-2004 à 11:51:25
Reply

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


Message édité par karoli le 30-04-2004 à 11:53:43
Reply

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 ?
 
edit : oui c'est plus clair ;)
 
A priori excel n'aurait aucun probleme pour traiter ca

oui, il est presente en colonnes
et comment s'y prendre avec excel pour automatiser ca stp? :wahoo:
parce que le fichier complet fait dans les 27 000 lignes...

Reply

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 ;)
 

Reply

Marsh Posté le 30-04-2004 à 12:08:24    

c'est un fichier texte de 906ko

Reply

Marsh Posté le 30-04-2004 à 12:26:15    

itoine a écrit :

c'est un fichier texte de 906ko


 
je t'ai envoyé un mp

Reply

Marsh Posté le 30-04-2004 à 21:21:19    

itoine a écrit :


 
Donc comment faire? exel sait le faire? il faut faire un programme dedie?


 
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.


Message édité par firstorangutan le 30-04-2004 à 23:05:13
Reply

Marsh Posté le 30-04-2004 à 22:00:53    

c'est justement le copier/coller repete 200 fois de suite que je veux eviter :)

Reply

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. :non:  
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. :sol:

Reply

Marsh Posté le 30-04-2004 à 23:10:49   

Reply

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.

Reply

Marsh Posté le 01-05-2004 à 20:53:30    

itoine a écrit :

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.


 :pt1cable:  
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. :lol: Je suis plutot batch unix normalement ;)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed