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

VB 6 et antérieur Discussion :

[VB]Travailler sur un string


Sujet :

VB 6 et antérieur

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juin 2004
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 45
    Points : 25
    Points
    25
    Par défaut [VB]Travailler sur un string
    salut à tous !!

    bon voila j'ai besoin de savoir une petite methode ou fonction qui voudrai me retourner le chiffre que je cherche.

    j'ai une variable string qui contient un montant, par ex: 10,55 ou 5,55 ou 8 ou 11,5



    on peut voir ici que la virgule n'est pas tjs à la troisième place dans la variable string.
    je voudrais retrouver l'emplacement de cette virgule avecune fonction, mais je ne trouve pas laquelle... j'aurai besoin de savoir ou se situe la virgule dans le fichier, afin de faire des tests suivant la position de la virgules..je ne sais pas si vous me suivez..

    merci par avance pour toute aide.

  2. #2
    Membre actif Avatar de malhivertman1
    Inscrit en
    Avril 2005
    Messages
    337
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 337
    Points : 221
    Points
    221
    Par défaut
    Regarde le fonction instr(Départdanstachaine(ex:1 pour 1er caractere) --> non obligatoire, tachaine, tarecherche)
    elle te retourne la place du caractere que tu cherches

  3. #3
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PositionDeLaVirgule = Instr(Lavariable,",")
    Tu dis

  4. #4
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Je ne sais par pourquoi, mais je "devine" quelque chose...
    Tes tests, quels vont-ils être ?
    Car si ce sont ceux auxquels je pense, le chemin pris (position de la virgule) n'est pas le meilleur

  5. #5
    Membre éprouvé
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Points : 1 220
    Points
    1 220
    Par défaut
    si tu en as beaucoup, un split serais à mon avis préférable.
    Méphistophélès
    Si la solution ne résout pas votre problème, changez le problème...
    Cours et tutoriels C++ - FAQ C++ - Forum C++.

  6. #6
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Citation Envoyé par jmfmarques
    Je ne sais par pourquoi, mais je "devine" quelque chose...
    Tes tests, quels vont-ils être ?
    Car si ce sont ceux auxquels je pense, le chemin pris (position de la virgule) n'est pas le meilleur
    +1

    Je "sens" pareil.
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  7. #7
    Nouveau membre du Club
    Inscrit en
    Juin 2004
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 45
    Points : 25
    Points
    25
    Par défaut
    mes tests sont simples, j'ai un montant que je récupère d'un fichier excel, il se trouve sous les formes que je vous ai donné, et je convertis mon xls en txt suivant une trame de données bien précises.

    sauf que suivant les virgules j'ai des "0" à introduire avant ou après le montant afin de faire correspondre avec ma trame.

    ex: 40.5 -> 4050 sur mon txt
    6.5 -> 0650 sur mon txt


    je dois savoir ou se trouve ma virgule sinon ca me fou mes tests pr la suite de mon programme en l'air...voila pourquoi...est ce bien le genre de tests à quoi vs pensiez...?

  8. #8
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private Sub Command1_Click()
      tt = "40,5"
      tt1 = Format(Int(tt) & Mid(tt - Int(tt), 3) & "0", "0000")
      MsgBox tt1
    End Sub

  9. #9
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Comme je soupçonnais un formatage de données pour avoir eu à le faire, ça colle. J'adore faire ça parce que c'est illisible...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    'Ex de formatage désiré "0000,0000"
    LeNombre = 12.125
    LeNombreFormaté = Right("0000" + Left(CStr(LeNombre) _
    , InStr(CStr(LeNombre), ",") - 1), 4) + Left(Right(CStr(LeNombre) _
    , Len(CStr(LeNombre)) - InStr(CStr(LeNombre), ",") + 1) + "0000", 5)
    MsgBox LeNombreFormaté '= "0012,1250"
    Amuse-toi bien

    A+

  10. #10
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Bonjour ousk !
    On s'amuse ?

  11. #11
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Le matin au réveil, j'aime bien Salut jemefe !

  12. #12
    Nouveau membre du Club
    Inscrit en
    Juin 2004
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 45
    Points : 25
    Points
    25
    Par défaut
    ah j'ai fait une bonne usine a gaz, vs allez voir...l'important c'est que ca fonctionne bien mon affaire...que des tests if ^^

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
       ValMontant = Replace(ValMontant, "-", "")
     
                  If ((Len(ValMontant)) = 0) Then
                    ValMontant = "000000000"
     
                    ElseIf ((Len(ValMontant)) = 1) Then
                        ValMontant = Replace(ValMontant, ".", "")
                        ValMontant = "000000" & ValMontant & "00"
     
                    ElseIf ((Len(ValMontant)) = 2) Then
                        ValMontant = Replace(ValMontant, ".", "")
                        ValMontant = "00000" & ValMontant & "00"
     
                    ElseIf ((Len(ValMontant)) = 3) Then
                        PositionSeparateur = InStr(ValMontant, ".")
                        ValMontant = Replace(ValMontant, ".", "")
     
                        If PositionSeparateur = 0 Then
                            ValMontant = "0000" & ValMontant & "00"
                            ElseIf PositionSeparateur = 2 Then
                                ValMontant = "000000" & ValMontant & "0"
                        End If
     
                    ElseIf ((Len(ValMontant)) = 4) Then
                        PositionSeparateur = InStr(ValMontant, ".")
                        ValMontant = Replace(ValMontant, ".", "")
     
                        If PositionSeparateur = 2 Then
                            ValMontant = "000000" & ValMontant
                            ElseIf PositionSeparateur = 3 Then
                                ValMontant = "00000" & ValMontant & "0"
                        End If
     
                    ElseIf ((Len(ValMontant)) = 5) Then
                        PositionSeparateur = InStr(ValMontant, ".")
                        ValMontant = Replace(ValMontant, ".", "")
     
                        If PositionSeparateur = 3 Then
                            ValMontant = "00000" & ValMontant
                        End If
     
                End If

  13. #13
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Ben oui ! C'EST une usine à gaz !

  14. #14
    Membre expérimenté Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Points : 1 405
    Points
    1 405
    Par défaut
    2 choses totalement inutiles:
    - à Little-Freud: beurk, ce code...
    - à jmf: Tiens? Tu es devenu fakir, ça y est?

  15. #15
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Pfffff

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LeTexte = Int(ContenuDeLaCellule * 100)
    Autrement dit, inutile de chercher la position de la virgule...

    Edit --> Si on veut supprimer le signe négatif:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LeTexte = Abs(Int(ContenuDeLaCellule * 100))
    Edit2 --> Et s'il faut des zéros devant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    LeTexte = Format(Int(ContenuDeLaCellule * 100), "000000000")
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  16. #16
    Membre actif Avatar de riesseg
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    415
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 415
    Points : 251
    Points
    251
    Par défaut
    et la je crois que Alain vous torche tous avec sa technique ^^

    Je voulasi lui demander comment il faisait pour mettre les 0 devant, mais un temps d'hesitation a fait qu'il a pus editer...
    n'oubliez pas la balise

  17. #17
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Bravo Alain (je n'ai pas osé proposer celà, me demandant s'il n'y avait toujours que 2 chiffres après la virgule )

  18. #18
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Citation Envoyé par riesseg
    et la je crois que Alain vous torche tous avec sa technique ^^
    Ici on ne torche personne, Monsieur, on essuie ou on change les couches Et puis c'est tout !

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

Discussions similaires

  1. Travail sur des Strings
    Par Pingvince dans le forum Général Python
    Réponses: 16
    Dernier message: 25/12/2007, 04h22
  2. Travailler sur positions d'une string
    Par luckan dans le forum Windows Forms
    Réponses: 3
    Dernier message: 07/06/2007, 14h15
  3. [VB 6.0]Travailler sur un String (découpage)
    Par t'djinn dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 13/06/2006, 16h39
  4. [débutant]travailler sur contenu string
    Par Serge76 dans le forum SL & STL
    Réponses: 13
    Dernier message: 06/11/2004, 16h43

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