atm-irbis

UUE decoder

Mar 23rd, 2012
515
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. procedure main()
  2. local f,d,s,c,g,kk,xc,zx
  3. #печать строки "Введите путь к декодируемому файлу"
  4. write("Enter a file path:")
  5. #считывание пути
  6. xc:=read()
  7. f:=open(xc,"ru")
  8. #считываем первую строку и вырезаем лишние пробелы,
  9. #выделяем из первой строки декодируемого файла его
  10. #имя и создаем файл с таким именем
  11. d:=!f
  12. zx:=trim(d[11:*d])
  13. g:=open("C:/"||zx,"cwu")
  14. #процесс считывания строк с одновременным декодированием
  15. #строка kk - служит накопительным буфером для байтов файла
  16. kk:=""
  17. while s:=!f do {
  18.     if *s>=4 then {
  19.      c:=s[2:*s]
  20.      if c~=="nd" then kk:=kk||udec(c)
  21.     }
  22. }
  23. write(g,kk)
  24. end
  25.  
  26. procedure to_bin(x)
  27. local r,s,n
  28. n:=x
  29. s:=""
  30. while n>=1 do {
  31.  r:=n%2
  32.  s:=s||r
  33.  n:=integer(n/2)
  34. }
  35. s:=reverse(s)
  36. while *s~=6 do {
  37.   s:="0"||s
  38. }
  39. return string(s)
  40. end
  41.  
  42. procedure to_dec(d)
  43. local b,i,v
  44. b:=0
  45. v:=reverse(d)
  46. every i:=1 to *d do {
  47.   b:=b+((2^(i-1))*v[i])
  48. }
  49. return b
  50. end
  51.  
  52. #процедура преобразования:выделяем из строки 4 символа,кодируем их в код ASCII
  53. #затем вычитаем 32,преобразуем в бинарный вид,соединяем все в одну строку и
  54. #режем ее на три байта,которые складываем в накопительную переменную,итак
  55. #до окончания исходной строки.
  56. procedure udec(s)
  57. local size,pr,sq,sz,a1,a2,a3,a4,sf
  58. sq:=""
  59. size:=*s
  60. every i:=1 to size by 4 do {
  61.  pr:=s[i+:4]
  62.  a1:=to_bin(ord(pr[1])-32)
  63.  a2:=to_bin(ord(pr[2])-32)
  64.  a3:=to_bin(ord(pr[3])-32)
  65.  a4:=to_bin(ord(pr[4])-32)
  66.  sz:=a1||a2||a3||a4
  67.  sf:=char(to_dec(sz[1+:8]))||char(to_dec(sz[9+:8]))||char(to_dec(sz[17+:8]))
  68.  sq:=sq||sf
  69. }
  70. return sq
  71. sq:=""
  72. end
RAW Paste Data

Adblocker detected! Please consider disabling it...

We've detected AdBlock Plus or some other adblocking software preventing Pastebin.com from fully loading.

We don't have any obnoxious sound, or popup ads, we actively block these annoying types of ads!

Please add Pastebin.com to your ad blocker whitelist or disable your adblocking software.

×