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

Scripts/Batch Discussion :

String pour récupération de valeurs [PowerShell]


Sujet :

Scripts/Batch

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2012
    Messages : 26
    Par défaut String pour récupération de valeurs
    Bonjour a tous, je dois extraire des données depuis un fichier txt (un extrait + bas)

    Jarrive a avoir les 3 premiers car. mais après ça se corse un peu, j'aimerai récupérer les valeurs décimales mais comme elles ne sont pas alignées, c'est compliqué !

    Comment fait-on en powerhsell pour lui dire de lire une ligne jusqu'a qu'il rencontre des chiffres ? Parce qu'ajouter des exceptions sur chaque ligne qui dépasse n'est pas très optimisé...

    Le contenu du fichier est ainsi :

    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
    44
    45
    46
    47
    48
    49
    50
    51
           ALL Albanian Leke       0.0074340297    134.51654614
    
            DZD Algerian Dinars     0.0082469583    121.25682706
    
            ARS Argentine Pesos     0.0578813786    17.276713586
    
            AUD Australian Dollars  0.6694986965    1.4936548873
    
            BSD Bahamian Dollars    0.9014716651    1.1092972067
    
            BHD Bahraini Dinars     2.3906948761    0.4182884274
    
            BDT Bangladeshi Taka    0.0111542552    89.651884687
    
            BBD Barbadian or Bajan Dollars  0.4507358326    2.2185944134
    
            BMD Bermudian Dollars   0.9014716651    1.1092972067
    
            BOB Bolivian Bolivianos 0.1304120671    7.6680020638
    
            BAM Bosnian Convertible Marka   0.5112918812    1.9558300001
    
            BWP Botswana Pula       0.0871054582    11.480336836
    
            BRL Brazilian Real      0.2911200286    3.4350092801
    
            GBP British Pounds      1.1648179859    0.8585032272
    
            BGN Bulgarian Leva      0.5109977354    1.9569558349
    
            XOF CFA Francs  0.0015244902    655.95700000
    
            XPF CFP Francs  0.0083800000    119.33174224
    
            CAD Canadian Dollars    0.6637425911    1.5066081542
    
            XAF Central African Francs      0.0015244902    655.95700000
    
            CLP Chilean Pesos       0.0013523874    739.43307181
    
            CNY Chinese Yuan Renminbi       0.1308417146    7.6428224956
    
            COP Colombian Pesos     0.0003130221    3194.6630468
    
            CRC Costa Rican Colones 0.0015796446    633.05379958
    
            HRK Croatian Kuna       0.1345665246    7.4312686828
    
            CUP Cuban Pesos 0.0340177987    29.396375977
    
            CZK Czech Koruny        0.0379392466    26.357929840
    si qq un pouvait me venir en aide, je lui serais très reconnaissant !

    Voilà le code que j'ai écrit pour le moment :

    Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    $array = (Get-Content -path c:\temp\currency.txt)[24 .. 193] | where { $_ -ne "$null" } 
            foreach ($a in $array)
                {
                 #get currency code
                 $currencyCode = $a.substring(8,3)
                 write-output $currencyCode
                 #get currency name
                 $currencyname = $a.substring(12,15)
                 write-output $currencyname
                 #get currency Euro unit
                 $rateValueEur = $a.substring(25,19).TrimStart()
                 write-output $rateValueEur
                 $rateValueFr = [float]$rateValueEur * 6.55957
                 write-output $rateValueFr
              }

  2. #2
    Membre Expert
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    Janvier 2013
    Messages
    1 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : AMI DU BAT
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1 478
    Par défaut
    Salut,

    apparemment tu veux récuperer les 2 derniers élément de chaque ligne.

    Une méthode consiste à spliter chaque ligne dans un array. et récuperer array.length -1 et -2

    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $fichier = Get-Content .\output.txt
    $fichier | foreach {
          $aItems = $_.split()
          write-host $aItems[$aItems.length-1]
          write-host $aItems[$aItems.length-2] 
        }

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2012
    Messages : 26
    Par défaut pas tout à fait
    Merci pour ton aide !

    Mais en fait je veux récupérer la 1ère valeur (le code sur 3 car) et la 3ème valeur, donc le premier nombre décimal (0.0074340297 pour ALL par exemple), de chaque ligne.

    Je ne sais pas comment faire pour spliter celà car les caractères dans le tableau ne sont pas alignés :-(

  4. #4
    Membre Expert
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    Janvier 2013
    Messages
    1 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : AMI DU BAT
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1 478
    Par défaut
    Je sais pas si j'ai pas capté qqe chose, mais :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $fichier = Get-Content .\output.txt
    $fichier | foreach {
          $aItems = $_.split()
          write-host $aItems[0]
          write-host $aItems[$aItems.length-2] 
        }

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2012
    Messages : 26
    Par défaut suite
    Voilà mon script complet :

    Je récupère les valeurs dans un fichier texte, je passe par ce fichier pour les valeurs que je mets dans ma base SQL. Le soucis c'est pour avoir les valeurs numériques (de la 3eme colonne)

  6. #6
    Membre Expert
    Avatar de sachadee
    Homme Profil pro
    AMI DU BAT
    Inscrit en
    Janvier 2013
    Messages
    1 478
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Brésil

    Informations professionnelles :
    Activité : AMI DU BAT
    Secteur : Distribution

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1 478
    Par défaut
    ça te retourne le premier element et l'avant dernier il te suffit de les mettre dans une variable et
    de les traiter comme tu veux.

    Je vois pas le problème


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

Discussions similaires

  1. Réponses: 9
    Dernier message: 23/02/2012, 18h33
  2. [XL-2007] Récupération des valeurs d'un fichier pour les copier dans un autre
    Par stelme dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 05/11/2011, 06h00
  3. [XL-2003] récupération des 2 derniers chiffres d'une cellule pour comparer à une valeur
    Par jf29840 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 27/04/2011, 10h57
  4. #VALEURMULTI pour récupération valeur
    Par Charly_An dans le forum Deski
    Réponses: 2
    Dernier message: 09/07/2008, 15h24
  5. [Upload] récupération de valeur pour un type "file"
    Par carusier dans le forum Langage
    Réponses: 4
    Dernier message: 28/03/2007, 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