过程中不允许的函数
Function not allowed within a procedure
我有一项任务是在 LibreOffice 中编写一个宏,该宏将使用 XOR 运算对消息进行编码。我遇到了问题:过程中不允许使用函数。当我尝试 运行 宏时。
这是代码:
REM ***** BASIC *****
Sub Main
end Sub
function izracunajHash(geslo, zacetni_hash)
zacetni_hash = 17520
hash = zacetni_hash
mask = &H00FFFFFF
dolzina = len(geslo)
If dolzina > 0 Then
for f=1 to dolzina step +1
podniz = mid(geslo,dolzina,1)
char = Asc(podniz)
hash = 33*hash + char
hash = hash AND mask
dolzina = dolzina +1
hash = hash AND &H00FFFFFF
next f
izracunajHash = hash
End function
function kodiraj(niz) //this is where the problem occurs according to LibreOffice
y = 1
if Len(niz) > 0 Then
x = Len(niz)
Do While y > (x+1)
sign = Mid(niz, y, 1)
z1 = Asc(sign)
if z1 > 31 Then
z2 = (CInt(rnd()*31))
z1 = z1 XOR z2
z1 = Chr(z1)
Mid(niz,y,1,z1)
End If
y = y + 1
Loop
End If
kodiraj = niz
End function
提前致谢。 (删了一些不用自己写的不重要的代码)
在您的第一个函数中,您有一个没有相应 End If 的 if 语句。
我有一项任务是在 LibreOffice 中编写一个宏,该宏将使用 XOR 运算对消息进行编码。我遇到了问题:过程中不允许使用函数。当我尝试 运行 宏时。 这是代码:
REM ***** BASIC *****
Sub Main
end Sub
function izracunajHash(geslo, zacetni_hash)
zacetni_hash = 17520
hash = zacetni_hash
mask = &H00FFFFFF
dolzina = len(geslo)
If dolzina > 0 Then
for f=1 to dolzina step +1
podniz = mid(geslo,dolzina,1)
char = Asc(podniz)
hash = 33*hash + char
hash = hash AND mask
dolzina = dolzina +1
hash = hash AND &H00FFFFFF
next f
izracunajHash = hash
End function
function kodiraj(niz) //this is where the problem occurs according to LibreOffice
y = 1
if Len(niz) > 0 Then
x = Len(niz)
Do While y > (x+1)
sign = Mid(niz, y, 1)
z1 = Asc(sign)
if z1 > 31 Then
z2 = (CInt(rnd()*31))
z1 = z1 XOR z2
z1 = Chr(z1)
Mid(niz,y,1,z1)
End If
y = y + 1
Loop
End If
kodiraj = niz
End function
提前致谢。 (删了一些不用自己写的不重要的代码)
在您的第一个函数中,您有一个没有相应 End If 的 if 语句。