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 :

[W11]Recupérer une valeur dans une chaine


Sujet :

WinDev

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 9
    Points : 6
    Points
    6
    Par défaut [W11]Recupérer une valeur dans une chaine
    Bonsoir,

    Je débute en Windev et j'ai quelques soucis pour récupérer des valeurs dans une chaine.
    Voici ce que je met dans ma chaine RapportEspionnage
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Ressources sur [1:1:1] le 17/09/07 à 15:50:39
    Acier:	999999999 	Silicium:	999999999
    Deutéride:	999999999 	Prod.ene.:	945525/946003
    Flotte à quai
    petit cargo	200	grand cargo	100
    chasseur	150	chasseur blindé	250
    fregate	300	vaisseau de combat	4500
    colonisateur	10	recycleur	2500
    Pour récupérer les reources pas de soucis car celle ci sont fixe, j'utilise ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    RessourcesAcier = ExtraitChaîne(ExtraitChaîne(RapportEspionnage,2,"Acier:"+TAB),1,TAB)
    RessourcesSilicium = ExtraitChaîne(ExtraitChaîne(RapportEspionnage,2,"Silicium:"+TAB),1,RC)
    RessourcesDeuteride = ExtraitChaîne(ExtraitChaîne(RapportEspionnage,2,"Deutéride:"+TAB),1,TAB)
    Mais dès que j'arrive dans la partie flotte a quai cela bouge tout le temps.
    J'ai commnecé comme cela:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Chasseur = ExtraitChaîne(ExtraitChaîne(RapportEspionnage,2,"chasseur"+TAB),1,TAB)
    ChasseurBlindé = ExtraitChaîne(ExtraitChaîne(RapportEspionnage,2,"chasseur blindé"+TAB),1,TAB)
    Fregate = ExtraitChaîne(ExtraitChaîne(RapportEspionnage,2,"fregate"+TAB),1,TAB)
    VaisseauDeCombat = ExtraitChaîne(ExtraitChaîne(RapportEspionnage,2,"vaisseau de combat"+TAB),1,TAB)
    Mais si je fais cela pour petit cargo j'obtiens la bonne valeur mais des que je passe à grand cargo ca ne marche plus car apres la valeur j'ai un RC et non une TAB.
    Comment pourrais me débarraser de ce problème ?

    J'ai pensé a un truc mais je ne sais pas si cela est possible :
    Je me positionne juste après "petit cargo"+TAB et je compte chaques caractères suivant, tant que j'ai un chiffre je le garde et des que je tombe sur autre chose, j'arrete et reconstitu la série de chiffre. Cela me parait assez lourd. Je me doute qu'il doit y avoir plus simple.

    Merci d'avance.

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    19 647
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 19 647
    Points : 32 889
    Points
    32 889
    Par défaut
    Pourquoi ne fais-tu pas comme pour le silicium ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ChasseurBlindé = ExtraitChaîne(ExtraitChaîne(RapportEspionnage,2,"chasseur blindé"+TAB),1,RC)

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    car par exemple apres la valeur du Chasseur on a un tabulation pour arrivé au Chasseur blindé mais cela ne marcherais pas. Dans chasseur on aurait "150 chasseur blindé 250" et moi je ne veux que 150.
    Et il faut dire que il est possible que chasseur ne soit pas présent. Comme toutes les autres valeurs.

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    19 647
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 19 647
    Points : 32 889
    Points
    32 889
    Par défaut
    Avec l'exemple fourni, ça marche
    Maintenant si l'exemple varie, la solution varie aussi

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    oui je sais c'est pour cela que je peux imaginer tous les cas possible.
    Voila comme cela ca fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Chasseur = ExtraitChaîne(ExtraitChaîne(RapportEspionnage,2,"chasseur"+TAB),1,TAB)
    ChasseurBlindé = ExtraitChaîne(ExtraitChaîne(RapportEspionnage,2,"chasseur blindé"+TAB),1,RC)
    Fregate = ExtraitChaîne(ExtraitChaîne(RapportEspionnage,2,"fregate"+TAB),1,TAB)
    VaisseauDeCombat = ExtraitChaîne(ExtraitChaîne(RapportEspionnage,2,"vaisseau de combat"+TAB),1,RC)
    Mais si dans mon rapport, il n 'y a pas de chasseur blindé alors tout va se décaller dans la mise en forme

    Donc je devrais avec un code qui resemble a cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Chasseur = ExtraitChaîne(ExtraitChaîne(RapportEspionnage,2,"chasseur"+TAB),1,TAB)
    Fregate = ExtraitChaîne(ExtraitChaîne(RapportEspionnage,2,"fregate"+TAB),1,RC)
    VaisseauDeCombat = ExtraitChaîne(ExtraitChaîne(RapportEspionnage,2,"vaisseau de combat"+TAB),1,TAB)
    Cela fait des centaine de combinaisons possible.

  6. #6
    Membre averti Avatar de Le Shadow
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    265
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 265
    Points : 305
    Points
    305
    Par défaut
    Pourquoi n'utilises-tu pas "Position()" ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    pos est une chaine
     
    pos = position("chasseur	150	chasseur blindé	250","chasseur blindé")
    Tu as la position de départ de ton chasseur blindé...
    Ne reste qu'a aller "grabber" ta valeur

    Des fois, té mieux de pas être conscient de c'qui s'passe, pis rester heureux !!!

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    pour tout i = 1 a chaineoccurence()
           indicechaine = position(machaine, "toto",i)
           tantque milieu(Machaine, TailleDeLaChaineEnQuestion+1+indiceChaine,1) <> tab ou RC
                _chaine+=milieu(Machaine, TailleDeLaChaineEnQuestion+1+indiceChaine,1)
           fin
           entier = val(machaine)
    fin
    On m'a donné ce bout de code pour récupérer chaques valeurs.
    Je vais voir ce que je peux faire avec cela.

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    J'ai trouvé solution à mon problème avec ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NewRapportEspionnage est une chaîne = Remplace( RapportEspionnage, RC,TAB )
    J'aurais du y penser plutôt.

    Merci d'avoir pris le temps de m'aider

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 13/04/2015, 11h17
  2. quand je selectionne une valeur dans une liste, retourne une autre valeur
    Par nsqualli dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 29/12/2008, 14h23
  3. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48
  4. Réponses: 1
    Dernier message: 25/09/2006, 17h15
  5. Mettre une valeur d'une table dans une variable
    Par Raphou96 dans le forum Access
    Réponses: 5
    Dernier message: 06/02/2006, 15h19

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