Zum Inhalt springen

Umcodieren von VB Code in PHP (5) Code


Empfohlene Beiträge

Hallo zusammen.

Ich muss die folgenden VB Funktionen in PHP 5 Funktionen umwandeln. Kann mir jemand helfen?

Public Function EncodeString(ByVal strToEncode As String, _

  ByVal strPassword As String) As String


  Dim strResult As String

  Dim i As Long

  Dim cfc() As Integer


  If Len(strPassword) = 0 Then Exit Function


  ReDim cfc(1 To Len(strPassword))


  For i = 1 To UBound(cfc)

    cfc(i) = Asc(Right(strPassword, _

      Len(strPassword) - i + 1))

  Next i


  For i = 1 To Len(strToEncode)

    strResult = strResult & _

      Chr(addToIndex(Asc(Right(strToEncode, _

      Len(strToEncode) - i + 1)), VirtPos(i, cfc)))

  Next i


  EncodeString = strResult

End Function
Public Function DecodeString(ByVal strToDecode As String, _

  ByVal strPassword As String) As String


  Dim strResult As String

  Dim i As Long

  Dim cfc() As Integer


  If Len(strToDecode) = 0 Or Len(strPassword) = 0 Then

    Exit Function

  End If


  ReDim cfc(1 To Len(strPassword))

  ReDim ttc(1 To Len(strToDecode))


  For i = 1 To UBound(cfc)

    cfc(i) = Asc(Right(strPassword, _

      Len(strPassword) - i + 1))

  Next i


  For i = 1 To Len(strToDecode)

    strResult = strResult & _

      Chr(GetOfIndex(Asc(Right(strToDecode, _

      Len(strToDecode) - i + 1)), VirtPos(i, cfc)))

  Next i


  DecodeString = strResult

End Function
Private Function VirtPos(i As Long, _

  a() As Integer) As Integer


  If i > UBound(a) Then

    VirtPos = VirtPos(i - UBound(a), a)

  Else

    VirtPos = a(i)

  End If

End Function
Private Function addToIndex(i As Integer, _

  j As Integer) As Integer


  If i + j > 255 Then

    addToIndex = i + j - 255

  Else

    addToIndex = i + j

  End If

End Function
Private Function GetOfIndex(i As Integer, _

  j As Integer) As Integer


  If i - j < 0 Then

    GetOfIndex = i - j + 255

  Else

    GetOfIndex = i - j

  End If

End Function

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich arbeite ja schon seit einigen Jahren mit PHP, aber dieses Vb ist mir irgendwie unheimlich. Das sind doch alles Funktionen, aber wo legen die fest, welcher Wert zurückgegeben wird?

VB

Private Function GetOfIndex(i As Integer, _

  j As Integer) As Integer


  If i - j < 0 Then

    GetOfIndex = i - j + 255

  Else

    GetOfIndex = i - j

  End If

End Function
PHP
function GetOfIndex(i, j)

{

    if((i - j) < 0) {

        return (i - j + 255);

    }

     else {

        return (i - j);

    }

}

Wenn das ganze nun in einer Klasse ist, dann sollte da noch ein public vor das function.

Btw.: Irgendwie sehen mir diese "Funktionen" nicht einmal aus wie Funktionen. Greifen die Funktionen irgendwie auf globale Variablen zu? Wo kommt bei dieser Funktion denn GetOfIndex (Zeile: 5, 7) her? Definiert das irgendwie den Rückgabewert?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Greifen die Funktionen irgendwie auf globale Variablen zu?

können sie, wenn die variablen vorher als solche deklariert wurden.

Wo kommt bei dieser Funktion denn GetOfIndex (Zeile: 5, 7) her?

Definiert das irgendwie den Rückgabewert?

VB kennt in diesem sinne kein return - der rückgabewert wird zurückgegeben, indem dem namen der funktion der rückgabewert übergeben wird. ist halt so.

statt

function foo() {

  return rueckgabewert;

}
eben
function foo

  foo = rueckgabewert;

end function

s'Amstel

Link zu diesem Kommentar
Auf anderen Seiten teilen

Okay dann ist die erste Übersetzung schonmal korrekt ;)

Private Function addToIndex(i As Integer, _

  j As Integer) As Integer


  If i + j > 255 Then

    addToIndex = i + j - 255

  Else

    addToIndex = i + j

  End If

End Function
wird zu
function addToIndex(i, j)

{

    if((i + j) > 255) {

         return ((i + j) - 255);

    }

     else {

         return (i + j);

     }

}

Link zu diesem Kommentar
Auf anderen Seiten teilen

Danke erstmal...

Kann mir jemand nen Tip wegen den beiden Hauptfunktionen "encode" und "decode" geben?

Wenn du mir sagst, was die Funktionen

- ubound

- asc

- right

- chr

- VirtPos

machen und was genau diese Dinger sind und was sie machen:

- cfc()

- ttc()

...dann würd ichs mir mal näher anschauen.

Wie sieht das bei Vb mit den Sichtbareiten aus? Da sind überall die Sichbarkeiten gegeben. Sollen diese Funktionen nun auch in einer Klasse zusammengefasst werden, oder weiterhin als einfache Funktionen zählen?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wenn du mir sagst, was die Funktionen

- ubound

- asc

- right

- chr

- VirtPos

machen und was genau diese Dinger sind und was sie machen:

- cfc()

- ttc()

ubound: Wenn man Steuerelementen Idexes vergiebt, also mehrere Steuerelemente mit gleichen Namen kann man eines nicht mehr über Me.Text1.Text aufrufen, sondern muss den Index angeben Me.Text1(0).Text. ubound dient um den letzten (höchsten) Index zu ermitteln.

asc: Die Asc-Funktion gibt den Zeichencode, der dem ersten(!) Buchstaben der mitgegebenen Zeichenfolge entspricht zurück. Dies ist die Umkehrfunktion zur Chr-Funktion.

ascZahl = Asc("B") ' Ergibt 66

ascZahl = Asc("b") ' Ergibt 98

ascZahl = Asc("Asc-Funktion") ' Ergibt 65
right: Gibt eine vorgegebene Anzahl von Zeichen, ausgehend von der rechten Seite einer Zeichenfolge zurück.
Private Sub Command1_Click()

    Dim Text

    Dim Text1

    Dim Text2

    Dim Text3


    Text = "Sommerurlaubsreise"  ' Zeichenfolge definieren

    Text1 = Right(Text, 5)       ' liefert reise

    Text2 = Right(Text, 12)      ' liefert urlaubsreise

    Text3 = Right(Text, 18)      ' liefert Sommerurlaubsreise


    MsgBox Text1 & vbCrLf & Text2 & vbCrLf & Text3

End Sub

chr: Die Chr-Funktion gibt das Zeichen für einen bestimmten Zeichencode zurück. Dies ist die Umkehrfunktion zur Asc-Funktion.
mChar = Chr(33) ' ergibt "!"

mChar = Chr(65) ' ergibt "A"

VirtPos: ist ein Funktionsaufruf (siehe 1. Post)

cfc(), ttc(): sind Variablen (Array)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...