Comportement surprenant avec Continue et Repeat Until #True

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Marc56
Messages : 2147
Inscription : sam. 08/févr./2014 15:19

Re: Comportement surprenant avec Continue et Repeat Until #T

Message par Marc56 »

je crois qu'avec les REGEx on doit pouvoir faire nettement plus court
Pas forcement, mais bon, puisque c'est demandé 8)
(Je colle le .clean devant la simple ou double extension)
Pas besoin de PCRE2
Ce n'est pas la RegEx la plus courte, mais la plus simple à comprendre.
(Les espaces, accents et extensions après gz fonctionnent aussi)

Code : Tout sélectionner

NewList Txt_Test$()

AddElement(Txt_Test$()) : Txt_Test$() = "C:\Test.tgz"
AddElement(Txt_Test$()) : Txt_Test$() = "C:\Test.txt"
AddElement(Txt_Test$()) : Txt_Test$() = "C:\Test.gz"
AddElement(Txt_Test$()) : Txt_Test$() = "C:\Test.tar.gz"
AddElement(Txt_Test$()) : Txt_Test$() = "C:\Test.tar.Z"
AddElement(Txt_Test$()) : Txt_Test$() = "C:\Test.trop.long.ce.fichier.gz"
AddElement(Txt_Test$()) : Txt_Test$() = "C:\Test.été.tar.gz"
AddElement(Txt_Test$()) : Txt_Test$() = "C:\Test.été.tar.gz.txt"
AddElement(Txt_Test$()) : Txt_Test$() = "C:\Test.esp pace.gz"
AddElement(Txt_Test$()) : Txt_Test$() = "C:\J'aime les pâtes.aux.oeufs.tar.gz"

If Not CreateRegularExpression(0, "(.+?)(\.\w+$|\.tar\.\w+$)")
    Debug "Regex KO" : End
EndIf

ForEach Txt_Test$()
    If ExamineRegularExpression(0, Txt_Test$())
        While NextRegularExpressionMatch(0)
            Debug "Origine : " + Txt_Test$()
            Debug "Trouvé  : " + RegularExpressionGroup(0, 2)
            Debug "Nouveau : " + RegularExpressionGroup(0, 1) + ".clean" + RegularExpressionGroup(0, 2)
            Debug ""
        Wend
    Else
        Debug RegularExpressionError()
    EndIf
Next
PS. Côté fichier à double extension (unix), à ma connaissance il n'y a que tar.Z (.Z étant un format de compression plus ancien et moins performant que gz (Gzip)

:wink:
Avatar de l’utilisateur
Naheulf
Messages : 191
Inscription : dim. 10/mars/2013 22:22
Localisation : France

Re: Comportement surprenant avec Continue et Repeat Until #T

Message par Naheulf »

Pour les extensions multiples, le tar.gz est la plus connue mais on peut en trouver d'autres.
- fichier.log.gz, fichier.txt.gz, ... lorsque il n'y a qu'un fichier dans l'archive, pas besoin du "tar" qui sert à regrouper les fichiers.
- fichier.log.000, fichier.log.001, fichier.log.002, ... Lorsque un fichier est coupé en plusieurs morceaux ou lorsqu'il s'agit des versions précédentes du fichier en cours. (Ne pas confondre avec image.0001.png, image.0002.png qui correspondent aux images successives d'une animation)
- fichier.ext.sum, fichier.ext.md5, fichier.ext.sha1,... fichier annexe donnant la/les somme(s) de contrôle du fichier principal

J'ai même vu une fois du fichier.txt.tar.gz pour une archive ne contenant que des fichiers textes.

Et dans l'absolu rien n'empêche d'avoir un fichier.logs.2.tar.gz.3.md5 (pour la somme de contrôle de la troisième partie de l'archive qui contient les fichiers logs de l'avant dernier lacement d'une application...)
Répondre