Différence entre 2 chaînes de caractères - Perl - Programmation
Marsh Posté le 07-06-2006 à 12:10:44
Tu entend qoa par contenir,c'est le titre du fichier dans le suite de File_070606_suite.txt ou le fichier lui meme qui peut contenir??
une question tes dates sont toujours séparer par des points ou par des _ ??
Marsh Posté le 07-06-2006 à 13:17:20
"File" et "suite" sont des termes génériques.
Ils représentent une suite de n caractères quelconques.
La date est toujours au format jjmmyy mais elle peut être placée n'importe où dans le nom de fichier et n'est pas forcément séparée du reste du nom de fichier.
Exemple :
070606MonFichier.txt
UnAutreFichier.070606 (la date est l'extension dans ce cas)
...
Marsh Posté le 07-06-2006 à 13:19:03
En somme, si je comprends bien : tu souhaites connaître un moyen de récupérer une date quelconque, dans une chaîne quelconque, à un emplacement quelconque, la chaîne pouvant éventuellement contenir un nombre quelconque non significatif (mais qui pourrait, peut-être, être pris pour une date ?)
J'ai bien peur qu'avec de telles spécifications, tu n'aboutisses qu'à un algorithme boiteux donnant des résultats approximatifs.
Marsh Posté le 07-06-2006 à 13:21:24
Elmoricq a écrit : J'ai bien peur qu'avec de telles spécifications, tu n'aboutisses qu'à un algorithme boiteux donnant des résultats approximatifs. |
+1
A mon avis tu peux toujours essayer de récuperer toutes les suites de chiffres dans tes noms via une regex:
/\d{6}/ |
puis t'assurer qu'il s'agit d'une date valide, mais il se peut très bien que tu aies des résultats inattendus...
Marsh Posté le 07-06-2006 à 13:36:40
ouai c'est pas bête ca à essayer
sauf que beaucoup de nombre à 6 chiffres sont potentiellements valides
(dsl c'est pas très constructif)
Marsh Posté le 07-06-2006 à 13:46:12
Ouais je sais bien que mon arborescence est boiteuse mais ce n'est pas moi qui la gère et vu sa criticité, je ne vais pas pouvoir la faire modifier.
En fait les fichiers ont tous le même format dans un répertoire donné (et encore il y a 2-3 exceptions mais elles se gèrent assez facilement).
Pour chaque répertoire, j'ai une entrée en base qui me dit qu'elles sont les tests à faire sur les fichiers (compter le nombre de lignes, obtenir la taille du fichier, ...), et je vais aussi ajouter une regexp du coup qui me donnera l'emplacement de la date dans le nom de fichier.
Comme c'est bien spécifique à mon projet, je ne vais pas m'étendre sur le sujet, ça n'apportera pas grand chose.
Sinon Elmoricq, ma question initiale, c'était comment extraire les caractères différents entre 2 chaînes qui peuvent être par exemple :
toto070606.txt
toto.txt
-> On extrait 070606
070606monFichier123456.xml
monFichier123456.xml
-> Pareil on extrait 070606
unAutreFichier_2.070606
unAutreFichier_2
-> Idem : 070606
...
Marsh Posté le 07-06-2006 à 11:41:07
Bonjour,
Je souhaiterais savoir s'il existe une fonction qui permet d'extraire les différences entre 2 chaînes de caractères.
Par exemple, j'ai :
File.070606.xml
File.xml
Et je voudrais récupérer 070606.
Ce sera donc toujours des chiffres (une date en l'occurence) mais le problème est que "File" (terme générique) peut contenir n'importe quoi et donc aussi une suite de 6 chiffres.
Autre problème, la date peut être positionnée n'importe où dans le nom de fichier (070606_File, File.070606, File_070606_suite.txt, ...).
D'avance merci.