IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WinDev Discussion :

Sérialisation et désérialisation [WD15]


Sujet :

WinDev

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    498
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 498
    Points : 461
    Points
    461
    Par défaut Sérialisation et désérialisation
    Oui, vous allez me trouver lourd avec mes sérialisations mais là : soit je ne suis pas logique (sympa pour un développeur ) soit Windev est buggé (ça serait étonnant...)
    Voici un code, je l'explique ensuite :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    test est une chaîne = "1"+TAB+"2"+TAB+"3"+TAB+"4"+RC+"5"+TAB+"6"+TAB+"7"+TAB+"8"+RC+"9"+TAB+"10"+TAB+"11"+TAB+"12"+RC+"13"+TAB+"14"+TAB+"15"+TAB+"16"+RC+"17"+TAB+"18"+TAB+"19"+TAB+"20"
    test2 est une chaîne = "1"+TAB+"2"+TAB+"3"+TAB+"4"
    tab_test,tab_test2 est un tableau dynamique
    tab_test = allouer un tableau de 0 par 4 chaînes
    tab_test2 = allouer un tableau de 0 par 4 chaînes
    ChaîneVersTableau(test, tab_test)
    ChaîneVersTableau(test2, tab_test2)
    Je sérialise un tableau de 5 ligne de 4 valeurs dans la chaine test. On peut voir que la fonction ChaîneVersTableau fonctionne nickel même si je n'ai pas de RC àla fin de ma chaine.
    Par contre, dans la chaine test2, je n'ai qu'une ligne sans RC. Là, ChaîneVersTableau me retourne un tableau à une dimension d'une seule valeur : ma chaine test2
    Si j'effectue le test :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    test2 est une chaîne = "1"+TAB+"2"+TAB+"3"+TAB+"4"+RC
    tab_test2 est un tableau dynamique
    tab_test2 = allouer un tableau de 0 par 4 chaînes
    ChaîneVersTableau(test2, tab_test2)
    Là, les valeurs sont bien positionnées dans le tableau mais ChaineVersTableau me crée une ligne vide... Suis-je fou??

  2. #2
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 327
    Points : 3 840
    Points
    3 840
    Par défaut
    Salut,

    Le problème est bien le deuxième bout de code, c'est ça ? Parce que sur le
    premier bout de code, je ne vois pas d'erreur sur les résultats obtenus.

    Je suis en 12 et en testant ton deuxième bout de code, je me retrouve avec 2 lignes, la deuxième ligne étant vide.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    498
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 498
    Points : 461
    Points
    461
    Par défaut
    non le problème vient de test2 dans le 1er bout de code, celui ci ne se dé sérialise pas du tout!!

  4. #4
    Membre émérite

    Profil pro
    Inscrit en
    Février 2005
    Messages
    1 751
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 1 751
    Points : 2 368
    Points
    2 368
    Par défaut
    Bonjour,

    Oui, c'est un bug que je constate aussi dans WD12.
    Alors tu peux faire de la "programmation défensive":

    Code WLangage : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    test2 est une chaîne = "1"+TAB+"2"+TAB+"3"+TAB+"4"	
    tab_test2 est un tableau de 0 par 4 chaînes
     
    SI PAS test2 ~= "" ALORS
        ChaîneVersTableau(test2 + RC,tab_test2)
        TableauSupprimeLigne(tab_test2, TableauInfo(tab_test2,tiNombreLignes))
    FIN

    Si tu as souvent besoin d'effectuer ces opérations, tu peux en faire une procédure.
    _

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    498
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 498
    Points : 461
    Points
    461
    Par défaut
    Merci de confirmer =JBO=!!
    (Je ne suis donc pas fou)
    J'avais déjà utilisé sensiblement ta solution mais le code n'était pas clean à mon goût. Je lance un appel chez PcSoft et je met une annotation dans la doc en ligne de ChaineVersTableau()

  6. #6
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 327
    Points : 3 840
    Points
    3 840
    Par défaut
    Je ne vois pas où se trouve le bug, pouvez-vous m'éclairer ?

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    498
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 498
    Points : 461
    Points
    461
    Par défaut
    Dans mon exemple (sans le RC), j'aurais voulu que tab_test2 soit un tableau de 1,4 chaine or Windev me renvoie un tableau de 1,1 chaine. Avec le RC, ça me renvoie un tableau de 2,4 chaine. C'est pas facile à expliquer par du texte

  8. #8
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 327
    Points : 3 840
    Points
    3 840
    Par défaut
    ok, j'avais bien compris, mais je ne vois de bug.
    Tu voudrais simplement qu'il te retourne un autre résultat que celui prévu, c'est ça ?

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    498
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 498
    Points : 461
    Points
    461
    Par défaut
    C'est pas que je voudrais, c'est qu'il devrait me retourner un autre résultat!

  10. #10
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 327
    Points : 3 840
    Points
    3 840
    Par défaut
    oui, ça y est, je n'avais fait la différence au niveau de mes test, il y a bien bug

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XStream] Sérialisation et désérialisation de classes
    Par BiM dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 27/07/2011, 10h26
  2. [PHP 5.3] Sérialiser et Désérialiser un objet dans une variable de session
    Par hervelyon dans le forum Langage
    Réponses: 1
    Dernier message: 11/05/2010, 20h26
  3. Sérialisation et désérialisation
    Par Josh42 dans le forum Langage
    Réponses: 5
    Dernier message: 08/03/2010, 00h04
  4. Sérialisation et désérialisation d'un dataset
    Par jlm57 dans le forum Windows Forms
    Réponses: 4
    Dernier message: 18/10/2009, 21h36
  5. Réponses: 6
    Dernier message: 09/10/2009, 17h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo