Programme de tri de fichier - Divers - Programmation
Marsh Posté le 15-01-2013 à 16:39:01
bonjour,
soit sur du windows seven ou xp voir meme sur un serveur 2008 mais sur du windows en tout cas
Marsh Posté le 15-01-2013 à 18:09:17
Bien sur, l'id user et séparé du nom du fichier par un caractère ne pouvant exister ailleurs dans la chaîne du nom effectif des fichier ?
Marsh Posté le 15-01-2013 à 19:34:16
C'est quelques lignes de Perl, ça.
Avec une regexp bien faite sur le nom de fichier, et un move dans le répertoire ad-hoc, créé s'il n'existe pas.
A+,
Marsh Posté le 16-01-2013 à 09:18:06
Bonjour,
je viens vous rajouter quelques précision, car je n'avais pas tout les éléments en main hier.
Déjà, le nom des fichiers et du type: avis_210536_012010. Le numéro entre crochet correspond au numéro qui servira à faire le tri ( ce numéro peut changer ne fonction du propriétaire ).
Ensuite, le tri sera principalement effectué pour un site sous joomla.
Dans ce site, lorsqu'un utilisateur va se connecter, il va être identifier par un numéro qui correspond au numéro entre les _.
Une fois connecté l'utilisateur aura une arborescence dans laquelle les fichier comportant son numéro seront affichés.
Pour le moment, il faut que je trouve un moyen qui va me permettre de trier les fichier par nom dans des dossier comportant leur propre nom.
Je peut directement coder sur le site ou créer un programme qui triera les fichiers.
Marsh Posté le 16-01-2013 à 12:16:41
Tous tes fichiers sont dans le même répertoire au départ?
Les dossiers ou tu dois les ranger ont quel nom? le numéro identifiant le propriétaire ou le nom du propriétaire? Et dans ce dernier cas, d'ou sort la correspondance identifiant - nom?
En tout cas le principe est pas compliqué:
En supposant tes fichiers dans le même répertoire au départ.
1) tu récupère la liste des noms de fichier
2) pour chaque fichier de la liste, tu extrait l'identifiant du milieu avec une expression régulière ad-hoc, et tu fais un move (ou une copie, selon tes besoins) de ce fichier vers le répertoire associé à ton identifiant (ou au nom qui lui est associé), répertoire que tu crées auparavant s'il n'existe pas.
A+,
Marsh Posté le 16-01-2013 à 13:52:34
Tous les fichiers sont dans le même dossier.
Les dossier dans lesquels je doit ranger les fichier possède comme nom le numéro propriétaire qui est sur les fichiers et qui diffère selon le fichiers.
Pour le développement, si je pouvais avoir plus de précisions, car je suis assez novices dans le domaine surtout en perl que je n'ai jamais fait, cela va faire plus de 1 ans que je n'ai pas fait de développement et ou je n'avais que de petite bases.
Et ensuite, les dossier de réception seront créer sur un serveur distant et les fichiers qui seront à déplacer devront être envoyé via ftp.
Marsh Posté le 16-01-2013 à 15:47:49
La vous avez toutes les billes. Vous pouvez écrire cela en perl, python, ruby, ou tout autre langage un peu moderne qui sait maniper les systèmes de fichier,les expression régulières et utiliser une liaison ftp.
En perl ce serait qque chose comme:
Code :
|
c'est a adapter selon vos besoins, ici, il est supposé que les répertoires cibles sont tous situés dans un répertoire commun, $remote_dir, mais ça peut très bien être autrement enchangeant un peu le code.
A+,
Marsh Posté le 16-01-2013 à 16:03:22
Merci bien pour tous, je vais étudier votre code, le modifier pour mes besoin et voir si j'arrive à l'utiliser.
Marsh Posté le 16-01-2013 à 16:15:09
Pour comprendre la structure de donnée intermédiaire, transfer, si j'applique le code (sans la partie qui commence par use Net::FTP;) a un répertoire contenant 3 fichiers de noms avis_225_336 avis_225_337 et avis_226_338
j'obtiens pour transfer:
un hash (ou liste associative) avec deux clés, 225 et 226, la valeur associée à la première clé (225) est une liste a deux éléments, avis_225_336 et avis_225_337, et et la valeur associée à la seconde clé (226) est une liste a un élément, avis_226_338.
La première partie du code construit la structure de données %transfer à partir des données locales, et la seconde partie du code l'exploite pour procéder au transfert à distance et savoir quoi transférer et ou.
A+,
Marsh Posté le 17-01-2013 à 09:05:25
Ok, encore 1-2 question. Lorsque je doit mettre le nom du répertoire, je doit mettre le chemin complet genre c:\windows\systeme\... ?
Et avec quoi puis je faire un exécutable de ce script ?
Marsh Posté le 17-01-2013 à 13:44:00
lodou a écrit : Ok, encore 1-2 question. Lorsque je doit mettre le nom du répertoire, je doit mettre le chemin complet genre c:\windows\systeme\... ? |
Le chemin complet si on n'exécute pas le script depuis ce répertoire.
Et c'est un script, donc on n'en fait pas un exécutable. Normalement, si l'installation de perl a été bien faite, le système reconnaîtra l'extension.pl pour le script (sous windows) ou la ligne #!/usr/bin/perl (sous linux) et fera exécuter ce script par l'interpréteur perl. On peut aussi faire enligne de commande: perl script.pl
A+,
Marsh Posté le 15-01-2013 à 15:37:04
Bonjour, je dispose de plus de 5000 fichier pdf et chacun d'entre-eux porte un nom spécifique avec à chaque fois un numéro commun à plus fichiers ( numéro propriétaire ).
Je souhaites que les fichiers avec le même numéro propriétaire soit envoyé vers un dossier avec ce même numéro.
si quelqu'un connait une application déjà existante qui fait ce travail la, ou si quelqu'un sais avec quoi et/ou comment programmer une application de ce type, je suis ouvert à toutes informations.