visual basic, longue chaine de caracteres
Répondre à la discussion
Affichage des résultats 1 à 6 sur 6

visual basic, longue chaine de caracteres



  1. #1
    Svenn

    visual basic, longue chaine de caracteres


    ------

    Bonjour, je suis en train de decouvrir la programmation de macro pour excel et j'aurais besoin de definir des variables contenant des chaines de 100 000 à 250 000 caracteres. Malheureusement, le type String semble limité à 65000. Il semble qu'il existe un moyen de definir des chaines de caracteres beaucoup plus longues mais je ne sais pas comment faire. Quelqu'un aurait-il une idée ?

    -----

  2. #2
    Dormeur74

    Re : visual basic, longue chaine de caracteres

    C'est pour faire quoi exactement ? Si c'est pour pouvoir faire des opérations classiques sur les chaînes, je n'ai jamais entendu parler. Si c'est pour stocker des données pas forcément numériques, tu as le tableau et la sauvegarde en accès direct. Mais attention : bonjour la lenteur.

  3. #3
    Svenn

    Re : visual basic, longue chaine de caracteres

    Je veux effectuer des opérations classiques dessus. Mes chaines correspondent à des gènes qui peuvent faire plusieurs centaines de milliers de nucléotides en comptant les introns et les opérations classiques en biologie (restriction,ligation, complementaire inverse, recombinaison, ....) correspondent à des opérations assez simples sur les chaines. Le seul probleme, c'est qu'il faut que je fasse tenir ces gènes dans une seule variable sinon mon code risque de ressembler rapidement à une usine à gaz.

  4. #4
    Xoxopixo

    Re : visual basic, longue chaine de caracteres

    Bonjour,

    Citation Envoyé par Svenn
    Mes chaines correspondent à des gènes qui peuvent faire plusieurs centaines de milliers de nucléotides
    C'est du gros gâchi si n'a que 4 nucleotides possibles, alors qu'un caractere=1 octet permet 256 symboles differents.
    Tu pourrais regrouper les bits par 2, par exemple A=00, C=01, G=10, T=11
    Ca permetrait de diviser la taille de la chaine par 4.
    65000*4=260000 nucleotides.

    Sinon, le plus simple en gachant un peu mais sans trop de programmation serait d'utiliser un tableau dynamique de byte (byte=octet=8bit)
    Dim ADN() as Byte
    La limite d'occupation en mémoire d'un array est d'environ 2Go il me semble, donc il y a de la marge.

    Pour une "chaine" de 500000 nucleotide ça fait une occupation de 500Ko, ce qui reste raisonable.

    Si il y a plusieurs "chaines" de nucleotides, il est bien entendu possible de les gérer avec un tableau non dynamique à 2 dimensions.
    Par exemple pour un tableau de 10 chaines de 500000 nucleotides ça donne :
    Dim ADNComplet(10, 500000) as Byte

    On pourrait penser utiliser un tableau de bit à la place d'un tableau de byte, mais je craint de mémoire que VBA ne stoque pas un bit, mais utilise un byte complet pour un seul bit.
    Donc niveau optimisation mémoire, ce ne serait pas meilleur.

    Quelques exemples ici:
    http://didier-gonard.developpez.com/...s-tableau-vba/
    En bon vivant, rien ne vaut un bonne logique ternaire.

  5. A voir en vidéo sur Futura
  6. #5
    Svenn

    Re : visual basic, longue chaine de caracteres

    En passant par un tableau de Byte, ça devrait effectivement résoudre le problème. Ca occupe certes plus de mémoire que de compresser le génome mais ça offre beaucoup plus de souplesse et dans mon cas, c'est le meilleur choix !

  7. #6
    Dormeur74

    Re : visual basic, longue chaine de caracteres

    Je viens de découvrir qu'on pouvait stocker des chaînes de caractères dans des variables de type Variant. J'ai effectué sous VB 6.0 la recherche d'une sous-chaîne de 15 caractères dans une chaîne de 500.000 caractères à l'aide de la fonction Instr(), aucun problème. Donc c'est une alternative qui peut être intéressante.

Discussions similaires

  1. visual basic
    Par invite096ed528 dans le forum Logiciel - Software - Open Source
    Réponses: 3
    Dernier message: 02/10/2009, 08h01
  2. visual basic ??!!
    Par omar.STE dans le forum Logiciel - Software - Open Source
    Réponses: 6
    Dernier message: 13/07/2008, 20h02
  3. Visual Basic
    Par invited280a227 dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 17/09/2007, 12h45
  4. Visual basic
    Par invite232ca604 dans le forum Logiciel - Software - Open Source
    Réponses: 4
    Dernier message: 20/02/2007, 19h55
  5. Visual Basic
    Par invite16ba2b9a dans le forum Logiciel - Software - Open Source
    Réponses: 4
    Dernier message: 09/01/2007, 10h09