Extraire chaine depuis un memo access [Résolu]

Signaler
Messages postés
2
Date d'inscription
mardi 25 août 2009
Statut
Membre
Dernière intervention
27 août 2009
-
Messages postés
2
Date d'inscription
mardi 25 août 2009
Statut
Membre
Dernière intervention
27 août 2009
-
Bonjour.
Je galère depuis un bout de temps avec cette fonction

Pour une application d'achat en ligne, je dois récupérer des information de la commande envoyée par le site, pour créer un compte client. les données sont stockée dans un mémo et sont formatées. Exemple :


[FACTURATION]

Prénom = Paul
Nom = Bedout
Société Adresse 120 rue de l'Orient

Adresse2 Ville Paris

Code postal = 55555

Etat Pays FR=France

Téléphone = 088888888

Fax Email trucmusch@cegetel.net

Je voudrais pourvoir récuprer les informations de chaque ligne dans les champs associées de la table, mais je ne trouve pas.
Si vous avez une solution ? Merci

3 réponses

Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
46
salut,

la structure de tes données semble respecter le format INI, voir les codes (2 API essentiellement) traitant de ce format dans les sources dispos

++
[hr]
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
46
aller un petit exemple juste par traitement de chaines (sans API, sans écriture de fichier) :


    Private Structure field
        Dim name As String
        Dim value As String
    End Structure
    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        Dim memo As String = String.Format( _
                            "[FACTURATION]{0}" & _
                            "Prénom = Paul{0}" & _
                            "Nom = Bedout{0}" & _
                            "Société ={0}" & _
                            "{0}" & _
                            "Adresse = 120 rue de l'Orient{0}" & _
                            "{0}" & _
                            "Adresse2 ={0}" & _
                            "{0}" & _
                            "Ville = Paris{0}" & _
                            "{0}" & _
                            "Code postal = 55555{0}" & _
                            "{0}" & _
                            "Etat ={0}" & _
                            "{0}" & _
                            "Pays = FR=France{0}" & _
                            "{0}" & _
                            "Téléphone = 88888888{0}" & _
                            "{0}" & _
                            "Fax ={0}" & _
                            "{0}" & _
                            "Email = trucmusch@cegetel.net", Environment.NewLine)

        Dim lines() As String = memo.Split(Environment.NewLine.ToCharArray)

        Dim fields As New List(Of field)
        Dim f As field


        ''METHODE 1 => on prend TOUS LES CHAMPS !!! (même les vides)

        'For Each s As String In lines
        '    If s.Contains("=") Then
        '        f = New field
        '        f.name = s.Substring(0, s.IndexOf("="c) - 1)
        '        If s.Length > (s.IndexOf("="c) + 1) Then
        '            f.value = s.Substring(s.IndexOf("="c) + 2)
        '        Else
        '            f.value = "NULL"
        '        End If
        '        fields.Add(f)
        '        f = Nothing
        '    End If
        'Next



        'METHODE 2 => on ne prend QUE les champs non NULL

        For Each s As String In lines
            If s.Contains("=") Then
                f = New field
                f.name = s.Substring(0, s.IndexOf("="c) - 1)
                If s.Length > (s.IndexOf("="c) + 1) Then
                    f.value = s.Substring(s.IndexOf("="c) + 2)
                    fields.Add(f)
                End If
                f = Nothing
            End If
        Next


        'VERIFICATION
        Dim mess = String.Empty
        For Each f In fields
            mess &= "[" & f.name & "] " & f.value & Environment.NewLine
        Next
        MessageBox.Show(mess)
    End Sub


++
Messages postés
2
Date d'inscription
mardi 25 août 2009
Statut
Membre
Dernière intervention
27 août 2009

Merci, je vais tester cela