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

Cobol Discussion :

[PC-Percobol] Vérifier une saisie.


Sujet :

Cobol

  1. #41
    Expert éminent sénior
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    6 803
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 6 803
    Points : 32 056
    Points
    32 056
    Par défaut
    Citation Envoyé par Hédhili Jaïdane Voir le message
    Vous savez quoi ?
    - Moi je suis pour reprendre la solution d'el_slapper, d'étendre le test à tous les caractères non numériques. Elle aura l'avantage d'extraire les digits 0 à 9 quelques que soient les autres caractères qui peuvent s'y mêler. On pourra intégrer je pense le 2è PERFORM dans le premier et ajouter à la fin un inspect replacing all space by 0. Je n'ai pas testé ce code mais il devrait marcher en le chiadant un peu.
    - ou alors faire de la saisie formatée.
    Ou, encore plus bourrin, extraire les caractères un par un et ne garder que les numériques......en partant de la fin, et en écrasant une zone cible pré-remplie par des zéros, ça doit être encore plus simple.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    MOVE ZEROES TO SORTIE
    MOVE 6 TO J
    PERFORM VARYING I FROM 6 BY -1 UNTIL I > 1
       MOVE F-NUMVAL ( I : 1 ) TO CARACTERE
       IF CARACTERE NUMERIC
          MOVE CARACTERE TO SORTIE ( J : 1 )
          SUBTRACT 1 FROM J
       END-IF
    END-PERFORM
    ou un truc dans ce gout-là..... Et pour être evolutif, on remplace le 6 par un LENGTH OF F-NUMVAL(enfin, une variable qui le porte)....

    si on a F3,16£ on récupère 000316.....
    Les 4 règles d'airain du développement informatique sont, d'après Michael C. Kasten :
    1)on ne peut pas établir un chiffrage tant qu'on a pas finalisé la conception
    2)on ne peut pas finaliser la conception tant qu'on a pas complètement compris toutes les exigences
    3)le temps de comprendre toutes les exigences, le projet est terminé
    4)le temps de terminer le projet, les exigences ont changé
    Et le serment de non-allégiance :
    Je promets de n’exclure aucune idée sur la base de sa source mais de donner toute la considération nécessaire aux idées de toutes les écoles ou lignes de pensées afin de trouver celle qui est la mieux adaptée à une situation donnée.

  2. #42
    Inactif   Avatar de Deallyra
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    1 997
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 1 997
    Points : 1 769
    Points
    1 769
    Par défaut
    Citation Envoyé par funfox Voir le message
    Mais dans ton cas, pourquoi devrait il y avoir "12 345"? je croyais que tu étais sensé avoir un test "is_numeric" et "12 345" n'est pas sensé etre considéré comme numérique...
    Juste pour la culture générale
    *Si la réponse vous convient, n'oubliez pas le tag
    *Exprimez vous dans un français correct; on prend le temps de vous lire, prenez le temps de bien écrire.
    *Et comment on interprète votre code? N'oubliez pas la balise!

    *Pour une mise en page simple avec des divs.
    *Pour faire des formulaires xHTML CSS.

  3. #43
    Membre expérimenté

    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 298
    Points : 1 578
    Points
    1 578
    Par défaut
    Citation Envoyé par Deallyra
    Et pourtant, dans la documentation :

    Citation:
    Each of these SQL statements begins with EXEC SQL and ends with END-EXEC. The SQL statement itself is between the EXEC and END-EXEC. The SQL statements may not be streamed together; each must have its own EXEC and END-EXEC.
    Some Cobol systems use a pre-compiler to compile the Cobol with SQL code into plain Cobol code, where the Cobol code may have certain calls out to system functions to perform the SQL operations. Rather than using a separate pre-compiler, PERCobol supports embedded SQL directly, compiling it to support JDBC code.
    J'ai déjà vu car j'ai téléchargé la même doc que toi. On ne peut pas dire qu'ils soient trop bavards sur SQL : aucun exemple et je n'en trouve pas non plus en récurant la toile !
    C'est d'autant plus dommage que dans le cas qui te préoccupe, la fonction CAST() ou DECIMAL() aurait parfaitement convenu pour résoudre ton problème...

  4. #44
    Membre habitué
    Profil pro
    Inscrit en
    Février 2009
    Messages
    176
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 176
    Points : 188
    Points
    188
    Par défaut
    Citation Envoyé par Deallyra Voir le message
    Juste pour la culture générale
    donc tu nous regarde nous battre sur les différentes méthodes pour régler ton problème et tu comptes les points?

    tu en as utilisé une au final ou tu es encore bloquée?

  5. #45
    Expert confirmé
    Homme Profil pro
    ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Inscrit en
    Juin 2007
    Messages
    2 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 096
    Points : 4 155
    Points
    4 155
    Par défaut
    Télescopage : mon précédent post a été édité pour y ajouter deux exemples, le temps de les tester et hop.

    Dis donc el_slapper tu lis dans mes pensées ou quoi ?

  6. #46
    Inactif   Avatar de Deallyra
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    1 997
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 1 997
    Points : 1 769
    Points
    1 769
    Par défaut
    Citation Envoyé par funfox Voir le message
    donc tu nous regarde nous battre sur les différentes méthodes pour régler ton problème et tu comptes les points?

    tu en as utilisé une au final ou tu es encore bloquée?
    Vous battre ? Plutôt échanger des idées entre bon développeur non ? ^^

    Pour finir, j'ai choisi ceci :
    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
             INSPECT W-TEMP REPLACING LEADING  ' ' BY '0'
             MOVE FUNCTION REVERSE(W-TEMP) TO W-TEMP-2
             MOVE 0 TO W-CNT
             INSPECT W-TEMP-2 TALLYING W-CNT FOR LEADING SPACE
             COMPUTE W-CNT = LENGTH OF W-TEMP - W-CNT
             IF W-TEMP(1:W-CNT) IS NUMERIC THEN
               MOVE W-TEMP(1:W-CNT) TO F-NUMVOL
               START FVOL IS KEY = F-NUMVOL
                 INVALID KEY
                   DISPLAY "Aucun vol ne correspond à votre saisie."
                     AT LINE 20 COLUMN 05 WITH BLANK LINE
                   SUBTRACT 1 FROM W-COMPTEUR
                   ACCEPT W-TEMPORISATEUR
                 NOT INVALID KEY
                   MOVE "V" TO W-VOL-TROUVE
                   READ FVOL NEXT END-READ
               END-START
             ELSE
               DISPLAY "Veuillez saisir un numéro de vol."
                 AT LINE 20 COLUMN 05 WITH BLANK LINE
               SUBTRACT 1 FROM W-COMPTEUR
               ACCEPT W-TEMPORISATEUR
             END-IF
    Mais je n'ai pas encor vu le télescopage de Hédhili Jaïdane
    *Si la réponse vous convient, n'oubliez pas le tag
    *Exprimez vous dans un français correct; on prend le temps de vous lire, prenez le temps de bien écrire.
    *Et comment on interprète votre code? N'oubliez pas la balise!

    *Pour une mise en page simple avec des divs.
    *Pour faire des formulaires xHTML CSS.

  7. #47
    Membre expérimenté

    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 298
    Points : 1 578
    Points
    1 578
    Par défaut
    Eh bien oui, Deallyra a raison, on ne se bat pas, au contraire on s'amuse pour essayer de dépatouiller ce problème avec ce qu'on pense être le mieux pour elle !

  8. #48
    Membre habitué
    Profil pro
    Inscrit en
    Février 2009
    Messages
    176
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 176
    Points : 188
    Points
    188
    Par défaut
    t'inquiete c'était dans ce sens la que je l'entendais

    mais ca fuse tellement dans tous les sens que j'imaginais bien une assemblée en train se s'arracher mutuellement les cheveux, avec du café partout et 1 seul ordinateur sur le bureau au milieu de la pièce, avec tout le monde qui "j'ai une autre idée j'ai une autre idée" dès que quelqu'un touche au clavier

    je dois être un peu fatigué

  9. #49
    Expert confirmé
    Homme Profil pro
    ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Inscrit en
    Juin 2007
    Messages
    2 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 096
    Points : 4 155
    Points
    4 155
    Par défaut
    Citation Envoyé par Deallyra Voir le message
    ...
    Pour finir, j'ai choisi ceci :
    Tu peux remplacer le START par un READ si ton ACCESS est RANDOM ou DYNAMIC ce qui devrait être le cas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
               READ FVOL
                 INVALID KEY
                   DISPLAY "Aucun vol ne correspond à votre saisie."
                     AT LINE 20 COLUMN 05 WITH BLANK LINE
                   SUBTRACT 1 FROM W-COMPTEUR
                   ACCEPT W-TEMPORISATEUR
                 NOT INVALID KEY
                   MOVE "V" TO W-VOL-TROUVE
               END-READ
             ELSE

  10. #50
    Expert confirmé
    Homme Profil pro
    ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Inscrit en
    Juin 2007
    Messages
    2 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 096
    Points : 4 155
    Points
    4 155
    Par défaut
    Citation Envoyé par funfox Voir le message
    t...
    je dois être un peu fatigué
    Eh bien repose toi un peu. Ce n'est pas tous les jours que toutes les grosses pointures habituées du forum sont disponibles et rassure toi il n'y a pas de concurrence

  11. #51
    Inactif   Avatar de Deallyra
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    1 997
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 1 997
    Points : 1 769
    Points
    1 769
    Par défaut
    Hum... Je veux bien, et, je l'ai fait ^^

    Mais quelle est la différence ? Meilleurs performances ?
    *Si la réponse vous convient, n'oubliez pas le tag
    *Exprimez vous dans un français correct; on prend le temps de vous lire, prenez le temps de bien écrire.
    *Et comment on interprète votre code? N'oubliez pas la balise!

    *Pour une mise en page simple avec des divs.
    *Pour faire des formulaires xHTML CSS.

  12. #52
    Expert confirmé
    Homme Profil pro
    ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Inscrit en
    Juin 2007
    Messages
    2 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 096
    Points : 4 155
    Points
    4 155
    Par défaut
    Citation Envoyé par Deallyra Voir le message
    Hum... Je veux bien, et, je l'ai fait ^^

    Mais quelle est la différence ? Meilleurs performances ?
    Tu as un seul accès disque, donc meilleures performances.

  13. #53
    Inactif   Avatar de Deallyra
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    1 997
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 1 997
    Points : 1 769
    Points
    1 769
    Par défaut
    J'ai beau faire des recherches sur les termes de disques en COBOL...

    *Si la réponse vous convient, n'oubliez pas le tag
    *Exprimez vous dans un français correct; on prend le temps de vous lire, prenez le temps de bien écrire.
    *Et comment on interprète votre code? N'oubliez pas la balise!

    *Pour une mise en page simple avec des divs.
    *Pour faire des formulaires xHTML CSS.

  14. #54
    Expert confirmé
    Homme Profil pro
    ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Inscrit en
    Juin 2007
    Messages
    2 096
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : ANCIEN Consultant/Formateur/Développeur AS/400, iSeries, System i et Cobol
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 096
    Points : 4 155
    Points
    4 155
    Par défaut
    Citation Envoyé par Deallyra Voir le message
    J'ai beau faire des recherches sur les termes de disques en COBOL...

    Excuse moi les modifs que j'ai faites sur mon dernier post sont restées dans une fenêtre cachée et je m'aperçois qu'elles n'ont pas été appliquées. C'est fait.

    Les cobolistes, nous avons l'habitude d'optimiser les accès et de les réduire au maximum parce que généralement on traite de très gros volumes. Alors gagner un accès disque dans une boucle est très gratifiant.

    Et puis on n'utilise pas des instructions si on n'en a pas vraiment besoin.

    Bien évidemment tous les ordres d'entrée/sortie portant sur des fichiers sur disques ne génèrent pas forcement des accès réels disque (déplacement des bras), les fichiers peuvent être totalement ou en partie chargés en mémoire.

  15. #55
    Membre confirmé Avatar de Homer-ac
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    449
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 449
    Points : 586
    Points
    586
    Par défaut
    mais ca fuse tellement dans tous les sens que j'imaginais bien une assemblée en train se s'arracher mutuellement les cheveux,
    Perso j'aime bien, Fuse -> Fusion
    C'est un bon objectif pour un forum non ?

  16. #56
    Expert éminent sénior
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    6 803
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 6 803
    Points : 32 056
    Points
    32 056
    Par défaut
    Citation Envoyé par Hédhili Jaïdane Voir le message
    Télescopage : mon précédent post a été édité pour y ajouter deux exemples, le temps de les tester et hop.

    Dis donc el_slapper tu lis dans mes pensées ou quoi ?
    Désolé, on va dire que les grands esprits se rencontrent..... ==>[]je sors
    Les 4 règles d'airain du développement informatique sont, d'après Michael C. Kasten :
    1)on ne peut pas établir un chiffrage tant qu'on a pas finalisé la conception
    2)on ne peut pas finaliser la conception tant qu'on a pas complètement compris toutes les exigences
    3)le temps de comprendre toutes les exigences, le projet est terminé
    4)le temps de terminer le projet, les exigences ont changé
    Et le serment de non-allégiance :
    Je promets de n’exclure aucune idée sur la base de sa source mais de donner toute la considération nécessaire aux idées de toutes les écoles ou lignes de pensées afin de trouver celle qui est la mieux adaptée à une situation donnée.

+ Répondre à la discussion
Cette discussion est résolue.
Page 3 sur 3 PremièrePremière 123

Discussions similaires

  1. comment vérifier une saisie d'entrée est valide
    Par helene0618 dans le forum C#
    Réponses: 9
    Dernier message: 19/02/2008, 19h27
  2. Réponses: 1
    Dernier message: 06/12/2007, 12h47
  3. Comment vérifier une URL saisie dans mon formulaire ?
    Par cdevl32 dans le forum Général JavaScript
    Réponses: 14
    Dernier message: 28/10/2007, 19h32
  4. Réponses: 9
    Dernier message: 05/04/2007, 17h23
  5. [Formulaire]vérifier une saisie dans une zone de liste
    Par ludovicparis dans le forum IHM
    Réponses: 6
    Dernier message: 02/04/2007, 15h51

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