Jubijub Parce que je le VD bien | Je bosse autour d'un soft de CAO électrique.
Dans ce soft on importe le résultat d'export d'un autre soft de CAO sous forme de fichier CSV un poil structuré.
En gros on doit pouvoir modifier des infos dans ce fichier, tout en respectant des contraintes (le fichier suit une spec très précise).
Mes utilisateurs se sont bidouillés une macro qui fait 2-3 trucs, mais on doit pouvoir faire mieux.
J'ai le choix entre : - améliorer la macro, mais très significativement : avoir de la détection d'erreurs si le fichier est pas conforme à la spec ce qui implique des fonctions de parsing assez évoluées et je sais pas si Excel permet de jouer dans tous les sens avec des String
- me faire une moulinette en java
Si VBA : + excel founit l'interface graphique de controle/vérification
+ les utilisateurs pourront mieux suivre vu qu'ils connaissent
- langage merdique
- limites éventuelles ?
Si Java : + bcp de facilité pour jouer avec les String
+ facilité d'implémentation du controle
- j'ai pas envie de me taper la réalisation de la GUI avec tableaux
Ci dessous je donne les détails, si vous voulez pas lire, voici juste les questions (sachant que je maitrise peu VBA, mais suffisament java, et pas bcp du tout VB.NET ou autre, que je sais linkable avec Excel)
- est-ce qu'en VBA on peut facilement jouer avec des chaines ? (regexp, split, etc...)
- je pensais partir sur une solution import dans excel, puis déclenchement de la moulinette, puis réouverture du fichier pour résultat.
- c quoi l'API java <-->Excel la mieux en ce moment ? (je connais POI et jExcel, je sais pas le mieux)
==> j'ai pas de temps "prévu" pour le faire, donc je veux pas d'une solution longue à faire : ce sera un "à coté" que je serai tout seul à faire
Ca ressemble à ca :
Code :
- %Section 5: Wire Specifications
- _w00020:XXX:T3:XX:XXX::XXX::XXXXXX::::XXXXXX:::::::equipotentielle=1,part_no=XXXXXXXX,criticity=:::::
- _w00030:XXX:T3:XX:XXX::XXX::XXXXXX::::XXXXXX:::::::equipotentielle=1,part_no=XXXXXXXX,criticity=:::::
- _w00040:BASE:T3:Y:0.5:T3:002::E51L::1::splice144_6:::::::equipotentielle=1,part_no=5010480993,criticity=:::::
- _w00050:BASE:T3:Y:0.5:T3:002::E51R::1::splice144_6:::::::equipotentielle=1,part_no=5010480993,criticity=:::::
- _w00060:BASE:T3:BL:1:T3:002::E61::2::splice148_19:::::::equipotentielle=1,part_no=5010480995,criticity=:::::
- _w00070:BASE:T3:BL:1:T3:002::E65::2::splice144_19:::::::equipotentielle=1,part_no=5010480995,criticity=:::::
- _w00080:BASE:T3:BL:1:T3:002::E66::2::splice144_19:::::::equipotentielle=1,part_no=5010480995,criticity=:::::
- _w00090:BASE:T3:BL:1:T3:002::E69::2::splice148_19:::::::equipotentielle=1,part_no=5010480995,criticity=:::::
- _w00100:BASE:T3:Y:0.5:T3:002::S173::2::splice148_19:::::::equipotentielle=1,part_no=5010480993,criticity=:::::
- _w00110:BASE:T3:Y:0.5:T3:002::S173::7::splice148_19:::::::equipotentielle=1,part_no=5010480993,criticity=:::::
- _w00120:BASE:T3:Y:0.5:T3:002::S174::2::splice148_19:::::::equipotentielle=1,part_no=5010480993,criticity=:::::
- _w00130:BASE:T3:Y:0.5:T3:002::S175::2::splice144_19:::::::equipotentielle=1,part_no=5010480993,criticity=:::::
- _w00140:BASE:T3:Y:0.5:T3:002::S176::2::splice144_19:::::::equipotentielle=1,part_no=5010480993,criticity=:::::
- _w00150:BASE:T3:Y:0.5:T3:002::S177::2::splice160_33:::::::equipotentielle=1,part_no=5010480993,criticity=:::::
- _w00160:BASE:T3:LBN:1.5:T3:002::S177::7::splice160_33:::::::equipotentielle=1,part_no=5010480996,criticity=:::::
- _w00170:BASE:T3:Y:0.5:T3:002::S178::2::splice160_33:::::::equipotentielle=1,part_no=5010480993,criticity=:::::
- _w00180:BASE:T3:LBN:1.5:T3:002::S178::7::splice160_33:::::::equipotentielle=1,part_no=5010480996,criticity=:::::
|
y'a des sections, déterminées par des %, suivi de lignes, qui correspondent à un item (un fil, un connecteur, etc...)
selon l'item, chaque "rubrique" est séparée par ":" selon une norme que je possède.
---------------
Jubi Photos : Flickr - 500px
|