Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
65
Task/URL-decoding/Action-/url-decoding.action
Normal file
65
Task/URL-decoding/Action-/url-decoding.action
Normal file
|
|
@ -0,0 +1,65 @@
|
|||
PROC Append(CHAR ARRAY s CHAR c)
|
||||
s(0)==+1
|
||||
s(s(0))=c
|
||||
RETURN
|
||||
|
||||
CHAR FUNC GetCharFromHex(CHAR c1,c2)
|
||||
CHAR ARRAY hex=['0 '1 '2 '3 '4 '5 '6 '7 '8 '9 'A 'B 'C 'D 'E 'F]
|
||||
BYTE i,res
|
||||
|
||||
res=0
|
||||
FOR i=0 TO 15
|
||||
DO
|
||||
IF c1=hex(i) THEN res==+i LSH 4 FI
|
||||
IF c2=hex(i) THEN res==+i FI
|
||||
OD
|
||||
RETURN (res)
|
||||
|
||||
PROC Decode(CHAR ARRAY in,out)
|
||||
BYTE i
|
||||
CHAR c
|
||||
|
||||
out(0)=0
|
||||
i=1
|
||||
WHILE i<=in(0)
|
||||
DO
|
||||
c=in(i)
|
||||
i==+1
|
||||
IF c='+ THEN
|
||||
Append(out,' )
|
||||
ELSEIF c='% THEN
|
||||
c=GetCharFromHex(in(i),in(i+1))
|
||||
i==+2
|
||||
Append(out,c)
|
||||
ELSE
|
||||
Append(out,c)
|
||||
FI
|
||||
OD
|
||||
RETURN
|
||||
|
||||
PROC PrintInv(CHAR ARRAY a)
|
||||
BYTE i
|
||||
|
||||
IF a(0)>0 THEN
|
||||
FOR i=1 TO a(0)
|
||||
DO
|
||||
Put(a(i)%$80)
|
||||
OD
|
||||
FI
|
||||
RETURN
|
||||
|
||||
PROC Test(CHAR ARRAY in)
|
||||
CHAR ARRAY out(256)
|
||||
|
||||
PrintInv("input ")
|
||||
PrintF(" %S%E",in)
|
||||
|
||||
Decode(in,out)
|
||||
PrintInv("decoded")
|
||||
PrintF(" %S%E%E",out)
|
||||
RETURN
|
||||
|
||||
PROC Main()
|
||||
Test("http%3A%2F%2Ffoo%20bar%2F")
|
||||
Test("http%3A%2F%2Ffoo+bar%2F*_-.html")
|
||||
RETURN
|
||||
Loading…
Add table
Add a link
Reference in a new issue