Ok c'est très gentil, mais c'est
son projet de fin d'étude. Pas le tien
![:?](https://www.developpez.net/forums/images/smilies/icon_confused.gif)
Tu ne lui rends pas service si tu le fais à sa place. Tu comptes aussi te présenter à la soutenance?
@YTRABELSI: tu es en retard pour rendre ton projet fin juin?
@eti1203656: A la lecture de ce code, rien à redire sur la rédaction c'est bien présenté, cependant je vois deux défauts importants:
- La complexité: beaucoup trop de boucles et de if. C'est juste impossible à maintenir ou faire évoluer (ex si j'ajoute ou déplace une colonne). "delet_string_file1" a un indice de maintenabilité de 28 et une complexité cyclomatique de 41;
- Les performances: tu charges beaucoup trop de données en mémoire. 1800_Scn4_BBH.csv contient plus de 400000 lignes "lst_file1" contient plusieurs millions d'éléments!!
Si je comprend bien le besoin de départ il faut récupérer certaines données dans un fichier et les importer dans une base.
- Lire la ligne des entêtes et demander à l'utilisateur de sélectionner celles qu'il veut (cases à cocher);
- Pour chaque colonne demander le type;
- Récupérer les indices de chacune des colonnes sélectionnées;
- Ouvrir un fichier texte;
- Lire une ligne en avant seulement (pas de sauvegarde dans des listes);
- Prendre les colonnes demandées selon leur indice, tenter de convertir en fonction de ce que l'utilisateur à saisi et générer une ligne d'instruction BULK INSERT dans le fichier texte. Pour info, dans un fichier csv les séparateurs sont des ";" (la virgule est un séparateur de milliers en US et de décimal en FR!) et les chaînes de caractères sont entre des guillemets (en FR du moins). Pour info 2, les opérations de conversion doivent impérativement être accompagnées du format d'entrée (US, FR, ...) sinon attention aux erreurs de conversion;
- Recommencer au point 5 tant que la fin du fichier n'est pas atteinte;
- Fermer le fichier texte;
- Envoyer le fichier généré au serveur de base de données qui va faire la mise à jour.
A+
Partager