Extraction de clé de registre.

ARothstein1 Messages postés 8 Date d'inscription mercredi 21 novembre 2007 Statut Membre Dernière intervention 10 janvier 2008 - 21 nov. 2007 à 18:48
ARothstein1 Messages postés 8 Date d'inscription mercredi 21 novembre 2007 Statut Membre Dernière intervention 10 janvier 2008 - 29 nov. 2007 à 17:38
Bonsoir,

Je suis sur un projet, qui extrait certaines clés de registre, pour les déposer dans un .bat, ou .txt.

Par exemple :

Registre.RootKey:=HKEY_CURRENT_USER;
     Registre.OpenKey('\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders',False);


     Cle := AnsiLowerCase(ExpandFileName(Registre.ReadString ('desktop')));
           Writeln(T, 'desktop='  + Cle);


Alors, dans cet exemple, je vais obtenir dans  mon .txt (T) ce qui suit:

desktop=c:\documents and settings\****\bureau"


Ok, cela me sert, pas de problèmes.

Seulement, a partir de la clé ouverte ci-dessus, il me faudrait obtenir, juste en dessous:

desktop2=Bureau


Toujours,  à partir de la clé ouverte (compatibilté d'O.S).

Voilà, ce que je souhaiterais faire, et je bloque par rapport a ça...

Comment, afficher ce qui se trouve après  / , sans noter le chemin?

Merci pour l'aide éventuelle apportée.

6 réponses

ARothstein1 Messages postés 8 Date d'inscription mercredi 21 novembre 2007 Statut Membre Dernière intervention 10 janvier 2008
21 nov. 2007 à 18:49
Re,

Désolé, pour les balises code, qui ne s'affichent pas..
0
Nero` Messages postés 30 Date d'inscription samedi 1 novembre 2003 Statut Membre Dernière intervention 16 juillet 2013
21 nov. 2007 à 21:16
Bonsoir

j'ai peut etre une fonction qui peut t'interesser.

function droiteDroite(substr: string; s: string): string;
{============================================================================}
{ fonction qui renvoie la sous chaine de caractère situè à droite de la sous }
{ chaine substr située la plus à droite                                      }
{ ex: si substr = '\' et S= 'truc\tr\essai.exe droiteDroite renvoie essai.exe}
{============================================================================}
begin
  Repeat
    S:=droite(substr,s);
  until pos(substr,s)=0;
  result:=S;
end;

dans ton cas sa te reverais 'bureau'

voila.

bonne prog ...
0
Nero` Messages postés 30 Date d'inscription samedi 1 novembre 2003 Statut Membre Dernière intervention 16 juillet 2013
21 nov. 2007 à 21:20
oops j'avais oublier !

il te faut aussi cette fonction avec :

function droite(substr: string; s: string): string;
begin
  if pos(substr,s)=0 then result:='' else
    result:=copy(s, pos(substr, s)+length(substr), length(s)-pos(substr, s)+length(substr));
end;

bonne prog ...
0
japee Messages postés 1727 Date d'inscription vendredi 27 décembre 2002 Statut Modérateur Dernière intervention 6 novembre 2021 8
22 nov. 2007 à 00:09
Salut.

Tout simplement :

Desktop := ExtractFileName(Cle);

Bonne prog'
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ARothstein1 Messages postés 8 Date d'inscription mercredi 21 novembre 2007 Statut Membre Dernière intervention 10 janvier 2008
22 nov. 2007 à 07:07
Bonjour à tous,

Merci pour vos réponses, je vois cela dès ce soir.

Desktop := ExtractFileName(Cle);

Effectivement, cela est jouable, mais est-ce que ce serais compatible avec la méthode de [auteur/NERO/187816.aspx Nero`]
si je souhaite garder un, ou plusieurs delimitateur?

Exemple (qui sera dans le .txt):

Desktop=NomUser\Bureau

Là, je en pense pas, à moins qu'il y ai une chose a rajouter...

Bon, je regarde àa ce soir, et vous tiens au courant.

@ ce soir.
0
ARothstein1 Messages postés 8 Date d'inscription mercredi 21 novembre 2007 Statut Membre Dernière intervention 10 janvier 2008
29 nov. 2007 à 17:38
Bonjour à tous,


Désolé pour ce delai d'attente, mais je n'ai pu avoir le temps de tester, cause pb de Disque dur.

Je teste tout ceci dès que possible.

Merci.
0
Rejoignez-nous