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

Langage Pascal Discussion :

[LG]Extraire des nombres d'une chaine


Sujet :

Langage Pascal

  1. #1
    Candidat au Club
    Inscrit en
    Janvier 2004
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 5
    Points : 2
    Points
    2
    Par défaut [LG]Extraire des nombres d'une chaine
    [Titre édité par Nono40]
    [Ancien titre = Question bete... ]


    Bonjour,

    Je débute en Turbo Pascal, et je bloque sur un point bête.
    Je vous explique :
    J'ai une chaine du type : 1300c1340dr1430e , ce qui veut dire pour moi que l'événement "c" a duré de 13mn00s à 13mn40s, que l'événement "dr" a duré de 13mn40 à 14mn30, etc.
    Comment faire pour que le programme repère les nombres (1300, 1340..), et ne les considere pas comme des chaines de caractères ??

    Car lorsque je fais...

    debut,i:integer;
    ligne:string;
    debut:=ligne[i]*1000+ligne[i+1]*100+ligne[i+2]*10+ligne[i+3]*100

    ...le compilateur me dit que j'attribue une chaine à une variable de type entier, donc il n'est pas content :-(
    Or je ne connais pas la solution pour faire autrement.
    (je sais, je débute !!)

    Merci d'avance pour votre aide
    Audrey

  2. #2
    Rédacteur/Modérateur
    Avatar de M.Dlb
    Inscrit en
    Avril 2002
    Messages
    2 464
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 464
    Points : 4 311
    Points
    4 311
    Par défaut
    Il faut que tu utilises les procédures de conversion de char en entier, c'est-à-dire ord(). Tu convertis alors les caractères dans ta chaîne en integer et ensuite tu peux faire les calculs que tu veux !

    a+
    M.Dlb - Modérateur z/OS - Rédacteur et Modérateur Pascal

  3. #3
    Candidat au Club
    Inscrit en
    Janvier 2004
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Merci !
    Je m'en suis sortie avec une formule pas tres économique (avec des "(ord(ligne[i])-48)"...), je pense qu'il y a plus compact, mais ça marche :-)

    encore merci,
    Audrey

  4. #4
    Membre expert
    Avatar de Eric Sigoillot
    Inscrit en
    Mars 2002
    Messages
    1 212
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 212
    Points : 3 369
    Points
    3 369
    Par défaut
    Euh... Avec Ord, ça va pas vraiment donner ce qu'il te faut.

    Il vaudrait mieux utiliser la fonction Val, qui convertit réellement une chaîne en entier ou réel.

    Ensuite, tu dois pouvoir faire la lecture dans une boucle, sachant que tu connais par avance la longueur des données à lire pour tes heures.

    Ton programme doit pouvoir se faire avec les fonctions : Val, Delete et Length je pense, le tout dans une boucle repeat.

    A+
    Règles du forum
    F.A.Q Pascal

    Pour me joindre (aucune question technique, merci)

  5. #5
    Candidat au Club
    Inscrit en
    Janvier 2004
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Ouille, je ne sais pas encore utiliser "val" et "delete" mais je vais tâcher de chercher quelque chose avec ça, merci :-)

    Sinon ça marche quand meme avec ord, mais c'est long.. par ex. avec ord(0) on obtient 48, et du coup il faut soustraire 48 pour revenir à 0...
    Et ord(1) donne 49, donc quand je soustrais 48 ça donne 1... etc..!!

    a+

Discussions similaires

  1. Extraire des nombres dans une chaine de caractère
    Par fxfxfx dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 27/05/2013, 10h41
  2. Extraire un nombre dans une chaine
    Par SIGOliv dans le forum Access
    Réponses: 16
    Dernier message: 13/03/2006, 15h44
  3. [MySQL] extraire des nombre d'une chaine de caractères et addition
    Par Yotho dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 04/03/2006, 16h54
  4. Comment extraire des caractères d'une chaine ?
    Par Powa87 dans le forum Langage
    Réponses: 16
    Dernier message: 01/01/2005, 19h00
  5. Réponses: 9
    Dernier message: 17/01/2003, 11h45

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