Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1640 connectés 

  FORUM HardWare.fr
  Programmation
  Divers

  [Perl, C, C++, JAVA, etc.] besoin de conseil sur prog à faire

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Perl, C, C++, JAVA, etc.] besoin de conseil sur prog à faire

n°236506
Aricoh
gentil mais fo po pousser
Posté le 29-10-2002 à 12:18:36  profilanswer
 

Je n'ai pas rattaché ce topic à un langage en particulier car le langage n'est pas le but du sujet ici présent.
 
Je dois bientôt réaliser un programme chargé d'analyser le contenu d'un simple fichier texte pour en récupérer les données.
 
Ce fichier contient des données séparées par un | (pipe) mais je précise que toutes les lignes ne sont pas formatées de la même manière.
 
Ainsi, certaines contiennent une ligne qui sépare un enregistrement de l'enregistrement suivant, d'autres contiennent des données non séparées par | (non séparées du tout), etc.
 
Le soucis étant que mes users remplissent ce fichier à la mimine, les risques d'erreurs sont bien présents (ligne effacée, données mal remplies).
 
Je ne cherche pas à concevoir un programme qui corrige les erreurs automatiquement, mais juste un programme qui scanne chaque enregistrement et retourne les erreurs dans un simple log.
 
Exemple de fichier (inventé pour l'exemple) :
 
-------------------------
DONNEE No 124
ELEMENT No 10
MATRICULE No 14127-338a
donnée1a|  0|donnée2a|  4|donnée3a| 14|
donnée1b|  toto|donnée2b|  pouet|donnée3b| zobi|donnée4a|lamouch|
-------------------------
DONNEE No 125
ELEMENT No 13
MATRICULE No 14415-337c
donnée1a|  0|donnée2a|  4|donnée3a| |
donnée1b|  toto|donnée2b|  pouet|donnée3b| zobi|donnée4a|lamouch|
-------------------------

 
Ne me demandez pas pourquoi ce fichier est rempli à la main, je ne suis vraiment pas maître de ce sujet, je dois faire le prog récupérant les données. Hum, l'exemple donné ici représente à peu près 10 % des données contenues dans un seul enregistrement.
 
Sachant que je dois :
- vérifier la présence des |
- toper les données contenues entre les | et vérifier qu'elles existent
- + autres joyeusetés
 
Comment feriez-vous ce programme ? Algorithmiquement parlant bien sûr  :wahoo:  
 
Pour ma part, je le concevrai en Perl, donc ça va y aller à donf en pattern matching et autres RegExp mais je sèche un peu sur la manière de programmer tout ça sans que ce ne soit trop lourdingue.


---------------
Samsung Galaxy S1 -> Samsung Galaxy S2 -> Samsung Note 2 -> Huawei Ascend Mate 7 -> ZTE Axon 7 -> OnePlus 6T -> Oppo Find X2 PRO
mood
Publicité
Posté le 29-10-2002 à 12:18:36  profilanswer
 

n°236540
Aricoh
gentil mais fo po pousser
Posté le 29-10-2002 à 13:46:00  profilanswer
 

[:yoyoz]  
 
J'ai dû mal m'exprimer  :heink:  
 
Je ne demande pas un algorithme romancé, ni autre. Juste que vous me disiez de quelle manière vous feriez l'analyse du fichier.


---------------
Samsung Galaxy S1 -> Samsung Galaxy S2 -> Samsung Note 2 -> Huawei Ascend Mate 7 -> ZTE Axon 7 -> OnePlus 6T -> Oppo Find X2 PRO
n°236572
darklord
You're welcome
Posté le 29-10-2002 à 14:19:21  profilanswer
 

je pense que si tu donnais la solution que tu as trouvée et si tu posais des questions précises (genre est ce que telle manière ou telle manière est la plus efficace, etc) tu aurais plus de réponses.  
 
Je peux bien croire que tu ne veuilles pas qu'on fasse ton truc à ta place mais ton post c'est l'énoncé d'un problème et que le foromeur demande une résolution toute fait ou pas, peu de personne réponde à ce genre de demandes (ce qui est normal).
 
Mon conseil: trouver une solution meme si elle ne fonctionne pas et viens poser tes questions.
 
bon courage


---------------
Just because you feel good does not make you right
n°236587
Aricoh
gentil mais fo po pousser
Posté le 29-10-2002 à 14:34:31  profilanswer
 

Oui, je comprend ce que tu veux dire, ok
 
Déjà pour commencer, j'suis pas à l'école mais au taf, et ce job n'est pas un énoncé d'exo mais un prog bien réel à faire.
 
Si ça ne tenait qu'à moi, j'aurais vite fait de faire un petit formulaire de saisie sous Excel pour épargner aux collègues de saisir à la main des données dans un fichier aussi peu lisible, mais c'est un sujet où je me suis fait envoyer bouler lorsque j'ai proposé cette solution -de loin !- la plus efficace.
 
Moralité : je me retrouve donc à devoir faire une saloperie de prog que chaque user devra lancer avant d'envoyer son fichier.
 
Pour en revenir au-dit fichier, je pense faire comme suit :
 
fonctionnaliser un max l'analyse des lignes ! Déjà :
 
- regrouper toutes les lignes de même type (commençant par "donnée" par exemple), les traiter dans une fonction qui vérifie le contenu entre les séparateurs |
- analyser de la même manière toutes les autres lignes
 
Le seul truc, c'est que, comme je disais + haut, l'exemple que j'ai donné n'est nullement représentatif, les données à analyser sont nettement plus volumineuses et au formatage plus complexe que ce que j'ai montré.
 
Un collègue m'a donné sa solution à lui : virer tout caractère inutile (espaces par exemple) pour aplanir un peu le fichier. Ca ne me semble pas une solution super fiable.
 
Enfin bon, que feriez-vous  si vous aviez à traiter ce genre de cas de figure ?


---------------
Samsung Galaxy S1 -> Samsung Galaxy S2 -> Samsung Note 2 -> Huawei Ascend Mate 7 -> ZTE Axon 7 -> OnePlus 6T -> Oppo Find X2 PRO
n°236591
darklord
You're welcome
Posté le 29-10-2002 à 14:37:29  profilanswer
 

Aricoh a écrit a écrit :

 
Enfin bon, que feriez-vous  si vous aviez à traiter ce genre de cas de figure ?




 
toi t'as vraiment rien compris à ce que j'ai voulu dire  :heink:  
bon tant pis c'est pas grave


---------------
Just because you feel good does not make you right
n°236594
Aricoh
gentil mais fo po pousser
Posté le 29-10-2002 à 14:41:20  profilanswer
 

DarkLord a écrit a écrit :

 
 
toi t'as vraiment rien compris à ce que j'ai voulu dire  :heink:  
bon tant pis c'est pas grave



ouaip, j'crois aussi  :D  :cry:  
 
Voici ce que je compte faire avec moults détails :
 
- Charger toutes les lignes du fichier dans un tableau en mémoire
- déterminer où commence et où se termine un enregistrement
- envoyer la portion du tableau == 1 enregistrement à une grosse moulinette
- la moulinette compte le nombre d'éléments de l'enreg. pour déterminer déjà s'il est complet ou non. Si pas conforme, enregistrement suivant !
- pour chaque phrase du tableau (1 phrase = 1 indice du tablo), analyse par RegExp en fonction du type de phrase
 
Mais bon, ça me semble bien lourdingue à faire, non ?


---------------
Samsung Galaxy S1 -> Samsung Galaxy S2 -> Samsung Note 2 -> Huawei Ascend Mate 7 -> ZTE Axon 7 -> OnePlus 6T -> Oppo Find X2 PRO
n°237087
Aricoh
gentil mais fo po pousser
Posté le 30-10-2002 à 09:12:25  profilanswer
 

[:yoyoz]


---------------
Samsung Galaxy S1 -> Samsung Galaxy S2 -> Samsung Note 2 -> Huawei Ascend Mate 7 -> ZTE Axon 7 -> OnePlus 6T -> Oppo Find X2 PRO

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Divers

  [Perl, C, C++, JAVA, etc.] besoin de conseil sur prog à faire

 

Sujets relatifs
[Perl/tk] tracer des pointillés ?Best practice Java : déclaration d'1 variable (locale) dans une boucle
Envoie d'une variable avec SendData --- Besoin d'aide :(Besoin d'aide pour un javascript svp
regex, besoin de confirmation ;-)Vous me conseillez quoi si je veux débuter en prog?
kel java fau ke je telecharge pour jouer les jeux de yahoo???Aide pour une débutante en prog .NET
[DEBUTANT EN PROGRA] besoin d'aide avec borland builder c++ 6.0[JAVA] Peut on faire un lecteur mp3 en java ?
Plus de sujets relatifs à : [Perl, C, C++, JAVA, etc.] besoin de conseil sur prog à faire


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR