Uebersetzung ins PHP

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Uebersetzung ins PHP

    Hallo Leute!

    Kann mir jemand den nachstehenden Algorithmus (Visual Basic) in das PHP übersetzen.

    Ich habe selber von Visual Basic keine grosse Ahnung; wäre deswegen auf Eure Hilfe angewiesen!

    Thanks!


    Hier der Algorithmus in Visual Basic:

    Function Modulo10(ByVal strNumber As String) As Integer

    'strNumber darf nur Ziffern zwischen 0 und 9 enthalten!

    Dim intTabelle(0 To 9) As Integer
    Dim intÜbertrag As Integer
    Dim intIndex As Integer

    intTabelle(0) = 0: intTabelle(1) = 9
    intTabelle(2) = 4: intTabelle(3) = 6
    intTabelle(4) = 8: intTabelle(5) = 2
    intTabelle(6) = 7: intTabelle(7) = 1
    intTabelle(8) = 3: intTabelle(9) = 5

    For intIndex = 1 To Len(strNumber)
    intÜbertrag = intTabelle((intÜbertrag + Mid(strNumber, intIndex, 1)) Mod 10)
    Next

    Modulo10 = (10 - intÜbertrag) Mod 10

    End Function

  • #2
    ok, was bekomme ich dafür?

    Ne, das bekommst du schon alleine hin. Fang einfach mal an, und poste dann den Code wo du nicht weiter weißt. Dann helfe ich dir

    Kommentar


    • #3
      Das Problem liegt darin, dass ich nicht genau weiss, wie ich das ganze überhaupt angehen soll .....

      Kommentar


      • #4
        du hast eine funktion, gibt es in PHP auch

        du hast ein array "intTabelle", gibt es in PHP auch

        for-schleife gibt's auch

        variablen sowieso

        Modulo-Operator, gibt's auch der heißt nichr "Mod" sondern "%"

        Kommentar


        • #5
          Lösungsansatz ... (Fehler kannst Du selber suchen):
          PHP-Code:
          function Modulo10($strNumber As String) {
              static 
          $intTabelle=array(0,9,4,6,8,2,7,1,3,5);

              
          //strNumber darf nur Ziffern zwischen 0 und 9 enthalten!


              
          for ($intIndex=0$intIndex<strlen($strNumber); $intIndex++) {
                  
          $intUebertrag $intTabelle[($intUebertrag $strNumber[$intIndex]) % 10];
              }

              return (
          10 $intÜbertragMod 10;

          Allerdings bin ich der Meinung das jemand der angeblich VB-Funktionen schreibt, und dann bei der Umsetzung in PHP dermaßen enthusiastisch ist, es am Besten sein läßt ... !
          carpe noctem

          [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
          [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

          Kommentar


          • #6
            <?php

            function Modulo10($str)

            {

            Dim intTabelle(0 To 9) As Integer <--------- WIE MUSS ICH DAS UEBERSETZEN???
            Dim intÜbertrag As Integer
            Dim intIndex As Integer

            intTabelle(0) = 0: intTabelle(1) = 9
            intTabelle(2) = 4: intTabelle(3) = 6
            intTabelle(4) = 8: intTabelle(5) = 2
            intTabelle(6) = 7: intTabelle(7) = 1
            intTabelle(8) = 3: intTabelle(9) = 5

            For intIndex = 1 To Len(strNumber)
            intÜbertrag = intTabelle((intÜbertrag + Mid(strNumber, intIndex, 1)) % 10)
            Next

            $Modulo10 = (10 - intÜbertrag) % 10

            return $Modulo10;


            };

            $zahl = 123456;

            echo Modulo10($zahl);

            ?>

            Kommentar


            • #7
              Hey Goth!

              Ich habe das Skript nicht geschrieben! Habe es als Vorlage in einem Forum vor einiger Zeit gefunden! Selber kann ich Visual Basic nicht programmieren und mit PHP habe ich auch erst begonnen; bin also ein Neuling!

              Ein paar Fehler habe ich schon gefunden - aber es läuft immer noch nicht richtig. Kannst Du es bitte nochmals schnell überfliegen! Thanks!!!


              Geänderte Version:

              <?php


              function Modulo10($strNumber) {
              static $intTabelle=array(0,9,4,6,8,2,7,1,3,5);

              //strNumber darf nur Ziffern zwischen 0 und 9 enthalten!


              for ($intIndex=0; $intIndex<strlen($strNumber); $intIndex++) {
              $intUebertrag = $intTabelle[($intUebertrag + $strNumber[$indIndex]) % 10];
              }

              return (10 - $intUebertrag) % 10;
              }


              echo Modulo10(12345678);


              ?>

              Kommentar


              • #8
                So vielleicht?
                PHP-Code:
                <?php


                function Modulo10($strNumber) {
                    static 
                $intTabelle=array(0,9,4,6,8,2,7,1,3,5);

                //strNumber darf nur Ziffern zwischen 0 und 9 enthalten!


                    
                for ($intIndex=0$intIndex<strlen($strNumber); $intIndex++) {
                        
                $intUebertrag $intTabelle[($intUebertrag substr($strNumber$intIndex1)) % 10];
                    }

                    return (
                10 $intUebertrag) % 10;
                }


                echo 
                Modulo10(12345678);

                ?>
                carpe noctem

                [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
                [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

                Kommentar


                • #9
                  aber
                  Mid(strNumber, intIndex, 1) != $strNumber[$intIndex] oder?

                  Kommentar


                  • #10
                    nö, das passt schon, und die letzte version von goth macht auch genau das was der vb-code gemacht hat. Fehlt nur noch ein Danke

                    Kommentar


                    • #11
                      <?php

                      function Modulo10($strNumber) {
                      static $intTabelle=array(0,9,4,6,8,2,7,1,3,5);

                      //strNumber darf nur Ziffern zwischen 0 und 9 enthalten!


                      for ($intIndex=0; $intIndex<strlen($strNumber); $intIndex++) {
                      $intUebertrag = $intTabelle[($intUebertrag + substr($strNumber, $intIndex, 1)) % 10];
                      }

                      return (10 - $intUebertrag) % 10;
                      }


                      echo Modulo10(313947143000901);

                      ?>

                      Hey goth!

                      Bei dieser Eingabe sollte die Prüfziffer 8 resultieren; ich erhalte aber den Wert 1.

                      Was kann da noch falsch sein???



                      PS. Ich bin Dir wirklich sehr dankbar, dass Du mir hilfst - ich wäre sonst total aufgeschmissen!

                      Kommentar


                      • #12
                        echo Modulo10("313947143000901");

                        dann bekommst du 8

                        Kommentar


                        • #13
                          Hey fusiba & goth!!!

                          BESTEN DANK !!!! WAR WIRKLICH SEHR NETT VON EUCH BEIDEN!!!!!

                          ES FUNKTIONIERT WUDERBAR!!!!!

                          Nochmals, thanks!!!
                          Thomas

                          Kommentar

                          Lädt...
                          X