burnersk Geschrieben 27. Dezember 2005 Teilen Geschrieben 27. Dezember 2005 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
cane Geschrieben 27. Dezember 2005 Teilen Geschrieben 27. Dezember 2005 Was genau verstehst Du nicht? mfg cane Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
burnersk Geschrieben 27. Dezember 2005 Autor Teilen Geschrieben 27. Dezember 2005 Habe bis jetzt noch nie eigene Funktionen geschrieben. Wie ich die Funktionen deklarieren damit sie Parameter aufnehmen können etc.. Wie ich die Funktionen aufrufe. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
freq.9 Geschrieben 27. Dezember 2005 Teilen Geschrieben 27. Dezember 2005 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? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Amstelchen Geschrieben 27. Dezember 2005 Teilen Geschrieben 27. Dezember 2005 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
freq.9 Geschrieben 27. Dezember 2005 Teilen Geschrieben 27. Dezember 2005 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); } } Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
burnersk Geschrieben 27. Dezember 2005 Autor Teilen Geschrieben 27. Dezember 2005 Danke erstmal... Kann mir jemand nen Tip wegen den beiden Hauptfunktionen "encode" und "decode" geben? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
freq.9 Geschrieben 27. Dezember 2005 Teilen Geschrieben 27. Dezember 2005 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? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
burnersk Geschrieben 30. Dezember 2005 Autor Teilen Geschrieben 30. Dezember 2005 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) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
burnersk Geschrieben 30. Dezember 2005 Autor Teilen Geschrieben 30. Dezember 2005 Hallo freq.9. Ich denke mal du meinst mit den Sichtbarkeiten "Private" usw.. Dies ist im PHP Scrip je egal, da ich diese Crypto Fuktion ja global benutzen muss, also alles "Public" Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
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.