Domino 9 und frühere Versionen > ND8: Entwicklung
Evaluate arbeitet bei wiederholter Ausführung nicht korrekt
(1/1)
gstueb:
Hallo,
ich benötige in einem Programm zur Identifizierung von Textblöcken einen Hash-Wert und verwende hierzu die @Password Funktion, die ich über Evaluate aufrufe.
Das hat soweit funktioniert, bis ich bemerkte, dass @Password auf ca. 2000 Zeichen beschränkt ist.
Meine Idee bestand nun darin, längere Zeichenketten in einzelne Blöcke aufteilen und die @Password-Funktion auf die einzelnen Blöcke anwenden.
Bei wiederholtem Aufruf der @Password Funktion in einer Schleife liefert Evaluate aber nicht mehr nur den Hash-Wert in der Form eines 32-zeichen langen Hex-Wertes (ABCDEF.....) zurück, der Ergebniswert besteht aus dem Hex-Wert und dem Rest der übergebenen Zeichenkette.
Das unten stehende Beispiel liefert den Hash-Wert gefolgt von 40*"x" zurück
--- Code: ---Sub Initialize
Const Blocksize = 40
Dim i As Integer
Dim s As String
Dim strHash As String
Dim teil As String
Dim Ausfuehren As String
Dim tmp As variant
s = String$(100,"x")
strHash=""
For i=0 To Len(s) Step Blocksize
teil = strHash + Mid$(s,i+1,Blocksize)
Ausfuehren = {@Password("} + teil + {")}
tmp = Evaluate(Ausfuehren)
strHash = tmp(0)
Next
Print "Ergebnis: " strHash
End Sub
--- Ende Code ---
Woran kann das liegen?
Danke & Gruß,
Gregor
ascabg:
Hallo,
Mal ganz dumm gefragt.
Ist es so gewollt, dass Du an den beim ersten Durchlauf korrekt ermittelten Hash-Wert,
noch einmal 40*"x" anhaengst (also Hash-Wert + 40*"x") und diesen neuen String
(jetzt also 32+40=72 Zeichen langen String) erneut durch die Password-Funktion
jagst?
Andreas
gstueb:
Hallo Andreas,
ja, das ist gewollt. In der endgültigen Version wird die Blockgröße dann auch nicht bei 40, sondern eher bei 1500 liegen.
Der Hash-Wert vom Durchlauf n muss ja irgendwie in den Durchlauf n+1 mit einfließen, sonst wäre der Inhalt der ersten Blöcke für das Endergebnis ja ohne Belang.
Gruß,
Gregor
ascabg:
Dann auch schon mal den Hinweis in der Designer-Hilfe zu @Password gelesen?
--- Zitat ---Hinweis Strings that begin with an open parenthesis "(" are not encoded.
--- Ende Zitat ---
Andreas
gstueb:
--- Zitat von: ascabg am 04.11.13 - 14:53:41 ---Dann auch schon mal den Hinweis in der Designer-Hilfe zu @Password gelesen?
--- Zitat ---Hinweis Strings that begin with an open parenthesis "(" are not encoded.
--- Ende Zitat ---
Andreas
--- Ende Zitat ---
Wer lesen kann ist klar im Vorteil. Danke... :-\
Navigation
[0] Themen-Index
Zur normalen Ansicht wechseln