Overblog
Suivre ce blog Administration + Créer mon blog

Présentation

  • : Romagny13 - Du .NET,du pur .NET
  • : Cycle de progression Faire (quelque chose qui marche) -> comprendre ce que l’on fait/comment cela marche -> pousser plus loin les notions
  • Contact

Recherche

Articles RÉCents

16 octobre 2006 1 16 /10 /octobre /2006 09:38

 

 

EXPRESSIONS REGULIERES
 

Site(en anglais) sur les expressions régulières

http://regexlib.com/default.aspx

 

- nombreux liens :blogs,forum

- patterns(Email,nombres,dates,chaines,...)

- tester de regex

Partager cet article
Repost0
15 octobre 2006 7 15 /10 /octobre /2006 20:56
REGISTRE
 
I Les 5 « ruches » (branches principales de clés du registre)
-          HKEY_CLASSES_ROOT : Liste des extensions de fichier (ex : .aspx,.gif,…) avec applications qui leur sont associés, et liste des composants COM installés.
-          HKEY_LOCAL_MACHINE :  paramètres de configuration de la machine (HARDWARE,SAM,SECURITY,SOFTWARE,SYSTEM)
-          HKEY_CURRENT_CONFIG : paramètres concernant la configuration courante du pc (SOFTWARE, SYSTEM). Cette clé est un alias de la clé HKEY_LOCAL_MACHINE 
-          HKEY_USERS : paramètres concernant les utilisateurs, avec leur profil
-          HKEY_CURRENT_USER : paramètres concernant utilisateur en cours . cette branche est un alias de la clé HKEY_USERS . le profil par défaut de Windows est employé  si aucun profil n’a été défini.
-          HKEY_DYN_DATA : paramètres de configuration dynamiques (statistiques système,plug & play,…)
 
II Démarche
 
Avec . NET il est très facile d’accéder au registre.Registre accessible aussi grâce à « regedit ».       Le démarche est toujours la même
-          1 – ouvrir la clé (définir le « chemin » de clé, puis essayer de l’ouvrir
-          2 – opérations sur la clé
-          3 – fermer la clé
 
Opérations sur la clé
-          Créer une clé (d’abord créer la clé, puis affecter une valeur à cette clé)
oRegistryKey = oRegistryKey.CreateSubKey(sCle)
oRegistryKey.SetValue(sNomValeur, TextBox1.Text)
 
-          Lire une clé
oRegistryKey.GetValue(sNomValeur).ToString
 
-          Modifier la valeur d’une clé
oRegistryKey.SetValue(sNomValeur, TextBox1.Text)
 
-          Supprimer une clé (d’abord on supprime la valeur de la clé puis la clé en elle-même)
oRegistryKey.DeleteValue(sNomValeur)
Microsoft.Win32.Registry.LocalMachine.DeleteSubKey(sCle)
 
 
 
III Code
    '// METHODES
    Public Sub creer_cle_registre()
        Dim oRegistryKey As Microsoft.Win32.RegistryKey
        Dim sCle As String
        Dim sNomValeur As String = "Info"
 
        Try
            '1 on essaie ouvrir la cle
            ' a définir la cle
            sCle = "Software" & My.Application.Info.AssemblyName
            ' b essayer ouvrir la cle
            oRegistryKey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(sCle)
 
            '2 si on ne peut pas l'ouvrir c'est quelle nexiste pas donc on la crée
            If oRegistryKey Is Nothing Then
                ' a se placer
                oRegistryKey = Microsoft.Win32.Registry.LocalMachine
                ' b Créer la sous clé
                oRegistryKey = oRegistryKey.CreateSubKey(sCle)
                ' c Créer la valeur >> rk.SetValue(name, value)
                oRegistryKey.SetValue(sNomValeur, TextBox1.Text)
                ' d Refermer la sous-clé
                oRegistryKey.Close()
 
                MessageBox.Show("Clé créée avec succès")
            Else
                ' la cle existe deja
                MessageBox.Show("la clé existe deja")
            End If
        Catch ex As Exception
            MessageBox.Show("Erreur création de la clé : " & ex.Message.ToString)
        End Try
      
    End Sub
 
    Public Sub lire_cle_registre()
        Dim oRegistryKey As Microsoft.Win32.RegistryKey
        Dim sCle As String
        Dim sNomValeur As String = "Info"
 
        Try
            '1 on essaie ouvrir la cle
            ' a définir la cle
            sCle = "Software" & My.Application.Info.AssemblyName
            ' b essayer ouvrir la cle
            oRegistryKey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(sCle)
 
            ' 2 selon que la cle existe ou non
            If oRegistryKey Is Nothing Then
                MessageBox.Show("la clé n'existe pas")
            Else
                MessageBox.Show(oRegistryKey.GetValue(sNomValeur).ToString)
                oRegistryKey.Close()
            End If
        Catch ex As Exception
            MessageBox.Show("Erreur lecture de la clé : " & ex.Message.ToString)
        End Try
    End Sub
 
    Public Sub modifier_valeur_cle()
        Dim oRegistryKey As Microsoft.Win32.RegistryKey
        Dim sCle As String
        Dim sNomValeur As String = "Info"
 
        Try
            '1 on essaie ouvrir la cle
            ' a définir la cle
            sCle = "Software" & My.Application.Info.AssemblyName
            ' b essayer ouvrir la cle
            oRegistryKey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(sCle, True)
 
            ' 2 selon que la cle existe ou non
            If oRegistryKey Is Nothing Then
                MessageBox.Show("la clé n'existe pas")
            Else
                oRegistryKey.SetValue(sNomValeur, TextBox1.Text)
                oRegistryKey.Close()
                MessageBox.Show("la clé a été modifiée avec succès")
            End If
        Catch ex As Exception
            MessageBox.Show("Erreur modification de la clé : " & ex.Message.ToString)
        End Try
    End Sub
  
    Public Sub supprimer_cle()
        Dim oRegistryKey As Microsoft.Win32.RegistryKey
        Dim sCle As String
        Dim sNomValeur As String = "Info"
 
        Try
            '1 on essaie ouvrir la cle
            ' a définir la cle
            sCle = "Software" & My.Application.Info.AssemblyName
            ' b essayer ouvrir la cle
            oRegistryKey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(sCle, True)
 
            If oRegistryKey Is Nothing Then
                MessageBox.Show("la clé n'existe pas")
            Else
                ' Suppression de la valeur
                oRegistryKey.DeleteValue(sNomValeur)
                ' Suppression de la clé
           Microsoft.Win32.Registry.LocalMachine.DeleteSubKey(sCle)
                oRegistryKey.Close()
                MessageBox.Show("Clé supprimée avec succès")
            End If
        Catch ex As Exception
            MessageBox.Show("Erreur suppression de la clé : " & ex.Message.ToString)
        End Try
    End Sub
Partager cet article
Repost0
13 octobre 2006 5 13 /10 /octobre /2006 13:23
EXPRESSIONS REGULIERES
 
 
.  représente n’importe quel caractère sauf saut de line  n
 [] correspond a un des caractères saisi
 \ w caractère alphabétique
  \ Wcaractère non alphabétique
  \ d chiffre (équivaudrait a [0-9])
  \ D caractère autre qu'un chiffre
   \ s caractère espacement
   \ S caractère autre que caractère espacement
 
 QUANTIFIEURS :
 * : 0 ou plusieurs instances
 + : 1 ou plusieurs
 ? : 0 ou 1 correspondance
 {n} : n correspondances
 {n,} n ou plus
 {n,m} : nb de correspondances entre les valeurs n et m
 
 AUTRES CARACTERES
 caractère échappement : sert à annuler ce qui précède;   n (saut de ligne); r (retour chariot)
 $ ^ : correspondance doit se trouver en début de chaine; $ : correspondance doit se trouver en fin de chaine
 groupe (<valeurs>)
 alternative (a|b|c) a ou b ou c
 SUBSTITUTION
 
 
I VERIFIER LA VALIDITE
 PrivateSub btnIsMatch_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnIsMatch.Click
 
      IL SUFFFIT DE PERSONNALISER "[^ \ w \ s]"
        If Regex.IsMatch(TextBox1.Text, "[^  \ w \  s]") Then
            MessageBox.Show("La Chaîne comporte des caractères invalides")
        Else
            MessageBox.Show("Chaine valide")
        EndIf
 
    EndSub
 
II TROUVER NB MOTS CORRESPONDANT
   PublicSub trouver()
        Dim oRegex As Regex
        Dim oMacthCollection As MatchCollection
        Dim smessageResultat AsString
 
        oRegex = New Regex("soi[enr]") seuls les mots saisis dans textbox1 seront acceptées donc >> "soie;soif;soin;soir;soit"
        oMacthCollection = oRegex.Matches(TextBox1.Text)
        smessageResultat = "NB mots trouvés : " & oMacthCollection.Count.ToString & Environment.NewLine
 
        '/ Trouver les mots
        ForEach m As Match In oMacthCollection
            smessageResultat += "Mot '" & m.Value.ToString & "' trouvé position " & m.Index.ToString & Environment.NewLine
        Next
 
 
        '/ Affichage
        TextBox2.Text = smessageResultat
 
    EndSub
III SUBSTITUTION
 PublicSub substitution()
 
        Dim s AsString
 
        s = "NomFichier.txt"
        s=regex.Replace(input,pattern,replacement)
        s = Regex.Replace(s, "(?<nf>.*).  \ txt", "${nf}" & Now.ToShortDateString & ".txt")
 
        groupe <nf> correspond a une suite quelconque de caracteres
        permet de reutiliser avec ${nf} afin de le mettre au debut suivi de la date puis .txt
        ce qui donne >> NomFichier10/10:2006.txt
        MessageBox.Show(s)
    EndSub
Partager cet article
Repost0