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.
j'ai besoin d'extraire la chaîne de caractére sans les délémiteurs puis de teste son existence.
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
[xxxxx] := Chaîne de caractére type commande.
exemple extraction d'une chaîne avec délimiteur : ["] : "C:\X---\X---\X---\X-.Extension" + xxxxx
// Extension inconnue sans délimiteur // Probléme N°1
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;
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.
Partager