Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1433 connectés 

 


Dernière réponse
Sujet : Récupérer une valeur en la tronquant ds la base de registre [Edit]
antp de tt façon la variable était inutile, y a le with + try/finally pour ça, et c'est plus sûr puisque avec le try/finally si y a une exception il va libérer la mémoire allouée par le create avant de sortir de la fonction, et le with permet d'optimiser le code en n'allant pas chaque fois rechercher la valeur de divx4/logi.

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
antp de tt façon la variable était inutile, y a le with + try/finally pour ça, et c'est plus sûr puisque avec le try/finally si y a une exception il va libérer la mémoire allouée par le create avant de sortir de la fonction, et le with permet d'optimiser le code en n'allant pas chaque fois rechercher la valeur de divx4/logi.
sylvanio c'est moi qui me suis planté :pt1cable: , logi c'est en fait DivX4 (je voulais récupérer le numéro de la version ...).
Le problème provenait de la commande Edit1.text qu'il fallait changer en Form1.Edit1.Text ... C'est vraiment pas facile quand on débute :D .
Bon maintenant faut que je trouve comment on récupère le numéro de la version de DirectX ... et ensuite je passerais à l'étape suivante  :D bref c'est pas gagner.

 

[edtdd]--Message édité par sylvanio--[/edtdd]

antp houlà c'est quoi ce truc embrouillé ? :D
bon on va simplifier ça

Code :
  1. function GetRegistryValue: string;
  2. begin
  3.   with TRegistry.create do
  4.   try
  5.     RootKey := HKEY_CURRENT_USER;
  6.     OpenKey('Software\Microsoft\ActiveMovie\d
  7. evenum\{33D9A760-90C8-11D0-D43-0A0C911CE86}\logi
  8. \friendlyName',False);
  9.     result := ReadString('FriendlyName');
  10.     Edit1.Text := result;
  11.     CloseKey;
  12.   finally
  13.     Free;
  14.   end;
  15. end;


 
c'était quoi ce mélange divx4/logi ?

 

[edtdd]--Message édité par antp--[/edtdd]

sylvanio J'ai encore un petit problème ...  :D
Je souhaite récupèrer la valeur "FriendlyName" dans la base de registre, pour ce faire j'ai écrit ceci :
 
function GetRegistryValue: string;
Var logi: TRegistry;
 
        begin
        DivX4 :=TRegistry.create;
        DivX4.RootKey := HKEY_CURRENT_USER;
        DivX4.OpenKey('Software\Microsoft\ActiveMo
vie\devenum\{33D9A760-90C8-11D0-D43-0A0C911CE86}
\logi\friendlyName',False);
        result:=logi.ReadString('FriendlyName');
        Edit1.Text:=;
        DivX4.CloseKey;
        DivX4.Free;
        ;
        end;
 
Normalement, "result" contient la valeur de la chaîne que je souhaite écrire dans un Tedit nommé "Edit1" mais je n'y arrive pas, comment faire ?

 

[edtdd]--Message édité par sylvanio--[/edtdd]

sylvanio :bounce:  
Merci beaucoup pour vos réponses
:jap:
antp sinon tu fais un :
VersionNr := AnsiReplaceText(VersionNr, 'version ', '');
 
c'est plus court à écrire :D
c'est case-insensitive contrairement à la fonction "pos".
cette fonction est définie dans StrUtils et je suis pas sûr qu'elle existe dans les versions < à 6.
 
sinon y a aussi la fonction "RightStr" plutôt que le copy, pour ne pas devoir spécifier la longueur...

 

[edtdd]--Message édité par antp--[/edtdd]

JWhy tu as ta chaine  

Code :
  1. sReg := 'version 2.xx';


tu fais un:

Code :
  1. iPos := pos('version ', sReg);


 
pour récuperer la position de 'version' dans ta chaine (si ca existe) et tu copies la chaine a partir de la position trouvé + la longueur de version:
 

Code :
  1. if (iPos > 0) then
  2.    sVersion := copy(sReg, iPos + length('version '), Length(sReg))
  3.   else
  4.     sVersion := 'Pas trouvé';


 
tu auras 2.xx dans sVersion...
Voila...

 

[edtdd]--Message édité par JWhy--[/edtdd]

sylvanio Salut à tous,
Je souhaite sous Delphi6 récupérer dans la base de registre une valeur de la forme suivante : version 2.xx.
Sur cette valeur, je ne souhaite conserver que le 2.xx.
 
Quelle est la commande à utiliser pour réaliser cette opération ?
 
Merci d'avance, Sylvanio

 

[edtdd]--Message édité par sylvanio--[/edtdd]


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR