Extraire chaine depuis un memo access

Résolu
DeelightCPP Messages postés 2 Date d'inscription mardi 25 août 2009 Statut Membre Dernière intervention 27 août 2009 - 25 août 2009 à 10:05
DeelightCPP Messages postés 2 Date d'inscription mardi 25 août 2009 Statut Membre Dernière intervention 27 août 2009 - 27 août 2009 à 10:32
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

PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
27 août 2009 à 09:42
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]
3
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
27 août 2009 à 10:13
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


++
3
DeelightCPP Messages postés 2 Date d'inscription mardi 25 août 2009 Statut Membre Dernière intervention 27 août 2009
27 août 2009 à 10:32
Merci, je vais tester cela
0
Rejoignez-nous