Différence entre 2 chaînes de caractères

Différence entre 2 chaînes de caractères - Perl - Programmation

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.

Reply

Marsh Posté le 07-06-2006 à 11:41:07   

Reply

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 _ ??


Message édité par Lanfeust42 le 07-06-2006 à 12:12:38
Reply

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)
...

Reply

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.

Reply

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...

Reply

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 :whistle:  
(dsl c'est pas très constructif) :D


Message édité par Lanfeust42 le 07-06-2006 à 13:40:48
Reply

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
 
...


Message édité par gen2 le 07-06-2006 à 13:56:26
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed