Bonjour a tous les développeurs,

Je suis confronté à un casse-tête chinois
J'ai une function qui scan le registre a la recherche de clé type string.
J'ai une condition de rechercher.

Root := La valeur type string.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
if Root <> '' then
    if (Pos('C:\', Root) = 1) or (Pos('"C:\', Root) = 1) or (Pos('@C:\', Root) = 1)  then
j'ai besoin d'extraire la chaîne de caractére sans les délémiteurs puis de teste son existence.
[xxxxx] := Chaîne de caractére type commande.
exemple extraction d'une chaîne avec délimiteur : ["] : "C:\X---\X---\X---\X-.Extension" + xxxxx

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Var
        I : Integer;
        root,CopyRoot,ext : String;
       begin
        if pos('"C:\',root) = 1 then
         delete(root,1,1);
         for I := 0 to Length(Root) do
         if pos('"',root[I]) > 0 then
          CopyRoot := Copy(Root,0, I -1);
          Ext := ExtractFileExt(CopyRoot);
          if Ext = '' then // Si ext = '' alor c'est un répertoire
           begin
             if not DirectoryExists(Copyroot) then
             // Si le répertoire n'existe pas on l'affiche
           end
          else // Sauf si ext <> "" c'est un fichier
           if not FileExists (Copyroot) then
           // Si le fichier n'existe pas on l'affiche
       end;
// Extension inconnue sans délimiteur // Probléme N°1
C:\X---\X---.10\X---\X-.Extension + xxxxx sans délimiteur entre l'extension et la Chaîne de caractére type commande.

// Extension inconnue avec délimiteur : [,]
@C:\X---\X---\X---\X-.Extension, + xxxxx

// Extension inconnue avec délimiteur : ["]
"C:\X---\X---\X---\X-.Extension" + xxxxx

// Extension inconnue avec délimiteur : [,]
C:\X---\X---\X---\X-.Extension, + xxxxx

// Extension inconnue avec délimiteur : [;]
C:\X---\X---\X---\X-.Extension; + xxxxx

// Extension inconnue avec délimiteur : [/]
C:\X---\X---\X---\X-.Extension/ + xxxxx

// Extension inconnue avec délimiteur : [-]
C:\X---\X---\X---\X-.Extension + -xxxxx

// Extension inconnue avec délimiteur : [,] mais avec 2 [backslash[\] // Probléme N°2
@C:\X---\X---\X---\\X-.Extension, + xxxxx


Merci de votre réponse.