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

  FORUM HardWare.fr
  Programmation

  Récupérer une valeur en la tronquant ds la base de registre [Edit]

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Récupérer une valeur en la tronquant ds la base de registre [Edit]

n°85999
sylvanio
Posté le 04-01-2002 à 11:33:16  profilanswer
 

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]

mood
Publicité
Posté le 04-01-2002 à 11:33:16  profilanswer
 

n°86015
JWhy
je peux plier (héhé)
Posté le 04-01-2002 à 12:15:13  profilanswer
 

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]


---------------
www.alliancefrancophone.org ... Home is where the heart is
n°86017
antp
Super Administrateur
Champion des excuses bidons
Posté le 04-01-2002 à 12:31:11  profilanswer
 

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]


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°86019
sylvanio
Posté le 04-01-2002 à 12:42:23  profilanswer
 

:bounce:  
Merci beaucoup pour vos réponses
:jap:

n°86038
sylvanio
Posté le 04-01-2002 à 13:41:33  profilanswer
 

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]

n°86073
antp
Super Administrateur
Champion des excuses bidons
Posté le 04-01-2002 à 14:43:06  profilanswer
 

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]


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°86092
sylvanio
Posté le 04-01-2002 à 15:06:40  profilanswer
 

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]

n°86096
antp
Super Administrateur
Champion des excuses bidons
Posté le 04-01-2002 à 15:10:51  profilanswer
 

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.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  Récupérer une valeur en la tronquant ds la base de registre [Edit]

 

Sujets relatifs
Pbm de pilotes ODBC pour une base access avec ASP sous XP[PHP] Comment recuperer la date et l heure.
récupérer une adresse IP client[ visual Basic ] problème de base de BDD.
[vb] intérroger une base sql[C] Récupérer un caractère lu au clavier ?
[ASP et SQL] Probléme pour récupérer la valeur de la fonction sql MAX[tcl] Connection avec un eggdrop a une base SqL
Plus de sujets relatifs à : Récupérer une valeur en la tronquant ds la base de registre [Edit]


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