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 PHP Discussion :

Fonction Basic en Php


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 182
    Points : 64
    Points
    64
    Par défaut Fonction Basic en Php
    ! Attention plus difficile !

    Il sagit de convertir cette fonction Visual Basic en fonction Php :

    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
    Public Function Reference(Inp)
        If Len(Inp) = 5 Then
            H = 10
            For I = 1 To 5
                Z = Mid(Inp, I, 1) + H
                Z1 = Int(Z / 10)
                Z2 = Z Mod 10
     
                If Z2 = 0 Then
                    Z2 = Z2 + 10
                End If
     
                Z2 = Z2 * 2
                H = Z2 Mod 11
                Z2 = Z2 / 11
            Next
            Z = 11 - H
            Z1 = Z / 10
            Reference = Inp & (Z Mod 10)
        Else
            Reference = Inp
        End If
    End Function
    2ieme version
    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
    Public Function Modul(Inp)
     
       If Len(Inp) < 5 Then
           Modul = ""
       End If
     
        H = 10
     
        For I = 1 To 5
     
          Z = Mid(Inp, I, 1) + H
          Z1 = Int(Z / 10)
          Z2 = Z Mod 10
     
          If Z2 = 0 Then
             Z2 = Z2 + 10
          End If
     
          Z2 = Z2 * 2
          H = Z2 Mod 11
          Z2 = Z2 / 11
        Next
     
        Z = 11 - H
        Z1 = Z / 10
        Modul = Z Mod 10
     
    End Function

  2. #2
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Et alors ? il est où le problème ? Quelle est la question ?

  3. #3
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 191
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 191
    Points : 8 398
    Points
    8 398
    Billets dans le blog
    17
    Par défaut
    Quel est le problème ?

    LEN( ) : strlen( )
    MID( ) : substr( )
    INT( ) : floor( ) (si mes souvenirs sont bons)
    MOD : %
    & : opérateur de concaténation
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  4. #4
    Membre émérite
    Avatar de yiannis
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 494
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 494
    Points : 2 791
    Points
    2 791
    Par défaut
    allons,allons fais un petit effort.
    Avec des strlen(), des % (modulo) etc tu devrais t'en sortir
    "Ce besoin de remords qui précède le Mal, que dis-je ! qui le crée..." E. CIORAN

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 182
    Points : 64
    Points
    64
    Par défaut
    OK je me lance alors !

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 182
    Points : 64
    Points
    64
    Par défaut
    Voila ce que jai pondu ... je suis en train de le tester !
    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
    if(strlen($RECUP_REF)=5){
    	$H=10;
    	for ($i=1; $i=5; $i++){
    		$Z= substr($RECUP_REF, $i, 1)+$H;
    		$Z1= floor($Z/10);
    		$Z2= $Z%10;
     
    		if($Z2=0){
    			$Z2=$Z2+10;
    		}
     
    		$Z2= $Z2*2;
    		$H= $Z2%11;
    		$Z2=$Z2/11;
    	}
    	$Z= 11-H;
    	$Z1= $Z/10;
    	$VERIF_REF= $Z%10
    }

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 182
    Points : 64
    Points
    64
    Par défaut
    Voici le code :
    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
    function reference6($var){
    if(strlen($var)==5){
    	$H=10;
    	for ($i=1; $i=5; $i++){
    		$Z= substr($var, $i, 1)+$H;
    		$Z1= floor($Z/10);
    		$Z2= $Z%10;
     
    		if($Z2=0){
    			$Z2=$Z2+10;
    		}
     
    		$Z2= $Z2*2;
    		$H= $Z2%11;
    		$Z2=$Z2/11;
    	}
    	$Z= 11-H;
    	$Z1= $Z/10;
    	$VERIF_REF= $Z%10;
    }
    return $VERIF_REF;
    }
    Ca ne marche et ca ne metonne pas ! Jai jamais ete tres bon en algorithme !
    jai fais un <? echo reference6($REF); ?> et ca tourne ca tourne ca mouline ca mouline ...

    HELP

  8. #8
    Membre habitué Avatar de ..:: Atchoum ::..
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    159
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 159
    Points : 156
    Points
    156
    Par défaut
    Salut,

    Je me souviens plus trés bien comment marche le VB mais cette ligne est ta cause d'erreur en php :
    Ici tu a une boucle infini

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for ($i=1; $i<=5; $i++)
    si tu veux que ca boucle 5 fois

    @++
    On ne peut empêcher les vagues, mais on peut apprendre à les surfer...
    http://blog.plopix.net
    http://www.ez-france.org

  9. #9
    Membre émérite
    Avatar de yiannis
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 494
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 494
    Points : 2 791
    Points
    2 791
    Par défaut
    petite erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for ($i=1; $i=5; $i++){
    tu declares que $i=1 puis apres que $i=5 de plus tu ne luis dis pas ou il doit s'arreter

    si tu veux qu'il fasse ta boucle 5 fois tu fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for ($i=1; $i<6; $i++){


    EDIT: GRILLED
    "Ce besoin de remords qui précède le Mal, que dis-je ! qui le crée..." E. CIORAN

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 182
    Points : 64
    Points
    64
    Par défaut
    Ah oui la boucle cetait un peu beta de ma part !
    Jai aussi trouve la variable $H qui etait en contante H, cest repare ...
    Par contre maintenant il ne maffiche rien !

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 182
    Points : 64
    Points
    64
    Par défaut
    ya pas un moyen de voir ce que fait la fonction etape par etape ?

  12. #12
    Membre habitué Avatar de ..:: Atchoum ::..
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    159
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 159
    Points : 156
    Points
    156
    Par défaut
    <?
    function&#160;reference6($var){
    if(
    strlen($var)==5){
    &#160;&#160;&#160;
    $H=10;
    &#160;&#160;&#160;for&#160;(
    $i=1;&#160;$i<=5;&#160;$i++){
    &#160;&#160;&#160;&#160;&#160;&#160;
    $Z=&#160;substr($var,&#160;$i,&#160;1)+$H;
    &#160;&#160;&#160;&#160;&#160;&#160;
    $Z1=&#160;floor($Z/10);
    &#160;&#160;&#160;&#160;&#160;&#160;
    $Z2=&#160;$Z%10;
    &#160;&#160;&#160;
    &#160;&#160;&#160;&#160;&#160;&#160;if(
    $Z2=0){
    &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;
    $Z2=$Z2+10;
    &#160;&#160;&#160;&#160;&#160;&#160;}
    &#160;&#160;&#160;&#160;&#160;&#160;
    &#160;&#160;&#160;&#160;&#160;&#160;
    $Z2=&#160;$Z2*2;
    &#160;&#160;&#160;&#160;&#160;&#160;
    $H=&#160;$Z2%11;
    &#160;&#160;&#160;&#160;&#160;&#160;
    $Z2=$Z2/11;
    &#160;&#160;&#160;}
    &#160;&#160;&#160;
    $Z=&#160;11-H;
    &#160;&#160;&#160;
    $Z1=&#160;$Z/10;
    &#160;&#160;&#160;
    $VERIF_REF=&#160;$Z%10;
    }
    return&#160;
    $VERIF_REF;
    }
    print&#160;
    reference6("salut");
    ?>
    Cela m'affiche 1, effectivement ca n'affiche rien si tu l'appelles avec une chaine de longueur différente de 5

    Merci de chercher un peu et de ne pas poster a tout va ...
    On ne peut empêcher les vagues, mais on peut apprendre à les surfer...
    http://blog.plopix.net
    http://www.ez-france.org

  13. #13
    Membre éprouvé Avatar de trattos
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    1 000
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 000
    Points : 1 080
    Points
    1 080
    Par défaut
    En gros l'algorithme de ce programme fait quoi?

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 182
    Points : 64
    Points
    64
    Par défaut
    Si je poste cest que cest mon dernier recours ... je suis pas du genre tout faire faire par les autres !

    Pas grave je vais aller demander de laide ailleurs ! Desole davoir derange la moderation !

  15. #15
    Membre émérite
    Avatar de yiannis
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 494
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 494
    Points : 2 791
    Points
    2 791
    Par défaut
    hela dafalri keep cool
    Je pense que l'on t'a aide non? C'est vrai que pour le resultat tu aurais pu trouver tout seul, en cherchant un peu.
    Allez, c'est bon, prends pas la mouche
    "Ce besoin de remords qui précède le Mal, que dis-je ! qui le crée..." E. CIORAN

  16. #16
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 182
    Points : 64
    Points
    64
    Par défaut
    Non mais des fois jai limpression que lon peut plus compter sur les membres que sur les moderateurs ... alors que je nabuse pas, non?

    Enfin bref je vais me debrouiller tt seul meme si je comprends rien a ce que je fais vu que jy connais rien en VB

    Merci quand meme !

  17. #17
    Membre émérite
    Avatar de yiannis
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 494
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 494
    Points : 2 791
    Points
    2 791
    Par défaut
    Citation Envoyé par dafalri
    Non mais des fois jai limpression que lon peut plus compter sur les membres que sur les moderateurs
    c'est faux les deux sont la pour t'aider, d'ailleur ..:: Atchoum ::.. te l'a demontre.

    Citation Envoyé par dafalri
    Enfin bref je vais me debrouiller tt seul meme si je comprends rien a ce que je fais vu que jy connais rien en VB
    si tu ne connais pas VB et que tu ne connais pas php, ca va etre dur...

    Enfin, si tu n'es pas suceptible et que tu as encore besoin d'aide, n'hesites pas
    "Ce besoin de remords qui précède le Mal, que dis-je ! qui le crée..." E. CIORAN

  18. #18
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 182
    Points : 64
    Points
    64
    Par défaut
    Et si jintegre mon script VB au php, comment je fais pour recuperer une variable ?
    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
    Public Function Modul(Inp)
      H = 10
      Modul = ""
      If Len(Inp) = 5 Then
        For I = 1 To 5
          Z2 = (Mid(Inp, I, 1) + H) Mod 10
          If Z2 <> 0 Then
            H = (Z2 * 2) Mod 11
          Else
            H = 9
          End If
        Next
        Modul = (11 - H) Mod 10
      End If
    End Function

  19. #19
    Membre émérite
    Avatar de yiannis
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    1 494
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 494
    Points : 2 791
    Points
    2 791
    Par défaut
    Citation Envoyé par dafalri
    Et si jintegre mon script VB au php, comment je fais pour recuperer une variable ?

    et comment fais tu ca????

    non la solution tu la tiens tu as deja traduit une fonction VB=>PHP tu fais la meme chose pour ta deuxieme fonction, je pense que c'est le mieux
    "Ce besoin de remords qui précède le Mal, que dis-je ! qui le crée..." E. CIORAN

  20. #20
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 182
    Points : 64
    Points
    64
    Par défaut
    Cest bien la question que je pose !
    Jai lu quil fallait eventuellement passer la variable en url

    ou sinon jai deja converti en php mais ca ne marche pas comme il faut :
    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
    function verif_ref($var){
    $H=10;
    $VERIF_REF="";
    if(strlen($var)==5){
    	for($i=1;$i<=5;$i++){
    		$Z2= (substr($var,$i,1)+$H)%10;
    		if($Z2!=0){
    			$H= ($Z2*2)%11;
    		}
    		else{
    			$H=9;
    		}
    	$VERIF_REF= (11-$H)%10;
    	}
    }
    return $VERIF_REF;
    }
    Par exemple sur la chaine "12641" jobtient 5 au lieu de 1

Discussions similaires

  1. [SQL-Server] Problème avec la fonction mssql_connect (connexion PHP SQL Server)
    Par flydragon dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 24/05/2006, 11h59
  2. [MySQL] Fonctions calculs SQL/PHP pour projet football
    Par spamyx dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 25/04/2006, 16h16
  3. [Fonction]Explication sur la fonction EXPLODE de php
    Par daudet dans le forum Langage
    Réponses: 6
    Dernier message: 13/04/2006, 17h06
  4. [Mail] Fonction mail () de php
    Par goma771 dans le forum Langage
    Réponses: 5
    Dernier message: 20/02/2006, 21h18
  5. equivalent de la fonction EXPLODE de php
    Par gyouk dans le forum ASP
    Réponses: 1
    Dernier message: 28/11/2005, 10h49

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