1. JavaScript / Говнокод #14268

    +159

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    var a, vr, curq;
    function bgbuild(num1){document.write("<head><title>Річне тематичне оцінювання з астрономії</title><meta http-equiv=\"Content-Type\" content=\"text/html\" charset=unicode\"></head><body bgcolor=#8080ff><img src='library/bgrnd.jpg' height=100% width=100% style='z-index:",num1,";position:absolute;top:0;left:0;right:0;bottom:0'>")};
    function fio(){document.write("<form><input type=\"text\" name=\"pib\" style='z-index:4;position:relative;top:0;left:0;font:normal 15px Lucida Console;'>")};
    function capt(qustn){document.write("<div style='z-index:3;text-align:justify;position:absolute;top:30;left:30;font:normal 30px System;color:black'>",qustn,"</div>")};
    function fld(){document.write("<textarea name=answ rows=30 cols=90 style='z-index:4;position:absolute;top:160;left:30;font:normal 15px Lucida Console;'></textarea>")};
    function kg(qst){document.write("<input style=\"z-index:6;position:absolute;top:0;right:0\" type=\"button\" value=\"Наступне питання\" onclick=\"return q",qst,"()\">")};
    function registr(){document.write("<input type=\"button\" onclick=\"return crfol()\" value=\"Реєстрація\"></form>")};
    function cnctscr(){document.write("<script lang=\"Javascript\" src=\"library/cobuild.js\"></script>");};
    function svr(vr){var fs, b;
    fs = new ActiveXObject("Scripting.FileSystemObject");
    b = fs.OpenTextFile("C:\\variant.tmp", 2, true, true);
    b.write(vr);
    b.close();
    };
    function gvr(){var fs, b;
    fs = new ActiveXObject("Scripting.FileSystemObject");
    b = fs.OpenTextFile("C:\\variant.tmp", 1, true, true);
    vr = b.readall();
    b.close();
    };
    function start(){
    bgbuild(0);
    document.write("<div style='z-index:1;position:absolute;top:30;left:30;right:30;font:normal 25px System;color:black;text-align:justify'>Ви маєте можливість пройти річне тематичне оцінювання з астрономії. Буде запропоновано 6 варіантів по 15 питань різної складності кожний. Ваші відповіді перевіряє вчитель, але приблизно оцінити себе Ви можете самі, ознайомившись після проходження опитування із правильною відповіддю і оцінивши вірність своєї відповіді. Не намагайтесь втрутитись у хід опитування і підкорегувати свої відповіді, адже це може скінчитися порушенням ходу програми, яке призведе до її неповного проходження, а в результаті - нижчої оцінки. Файл із Вашою відповіддю збережеться у спеціальному місці.<br>Для початку введіть своє прізвище та ім'я (не використовуйте ніяких спецсимволів!):<br>");
    fio();
    registr();
    document.write("<br>Оберіть варіант:<br><table><tr><td><form><input type='button' value='1' onclick='svr(1);return q1()'></td><td><input type='button' onclick='svr(2);return q1()' value='2'></td><td><input type='button' onclick='svr(3);return q1()' value='3'></td><td><input type='button' onclick='svr(4);return q1()' value='4'></td><td><input type='button' onclick='svr(5);return q1()' value='5'></td><td><input type='button' onclick='svr(6);return q1()' value='6'></td></form></div>");};
    function crfol(){var fs, n, b;
    fs = new ActiveXObject("Scripting.FileSystemObject");
    n = document.all.pib.value;
    if(n==""){er()};
    nm = "answ/"+n+".dat";
    a = fs.OpenTextFile(nm, 2, true, true);
    a.writeline("Це не підробка, це справжній файл із відповідями!\rУчень: "+n+"\rВаріант: ");
    a.close();
    b = fs.OpenTextFile("C:\\username.tmp", 2, true, true);
    b.write(n);
    b.close();
    }
    function crf(dt){var fs, n, b, nm;
    fs = new ActiveXObject("Scripting.FileSystemObject");
    b = fs.OpenTextFile("C:\\username.tmp", 1, true, true);
    n = b.readall();
    b.close();
    nm = "answ/"+n+".dat";
    a = fs.OpenTextFile(nm, 8, true, true);
    a.writeline(dt);
    a.close();
    }
    function er(){alert("Ану не балуйся! Думаєш, ти розумніше за комп'ютер?!");window.close();}
    function q1(){
    try{
    gvr();
    crf(vr);
    bgbuild(0);
    cnctscr();
    };catch(e){er()};
    if (vr=="1"){curq = "1.1.1. Що вивчає астрономія?"};
    if (vr=="2"){curq = "1.1.2. Що означає слово \"астрономія\"?"};
    if (vr=="3"){curq = "1.1.9. Що таке астрологія?"};
    if (vr=="4"){curq = "1.1.12. Назвіть прізвища відомих вам астрономів минулих часів."};
    if (vr=="5"){curq = "1.1.13. Назвіть небесні тіла, що утворюють Сонячну систему."};
    if (vr=="6"){curq = "2.1.1. Що означає слово \"космос\"?"};
    capt(curq);
    crf(curq);
    fld();
    
    kg(2);
    }
    
    start();

    Короче, первый мой более-менее крупный высер на JS. Писал HTA-приложение для школы (тестирование по астрономии). Интернета у меня тогда ещё не было, компилятор чего-либо нормального взять, соответственно, было негде, поэтому писал на чём можно. JS (точнее, JScript) изучал по справке MSE7 (недо-IDE, которая поставляется с M$Office). Результат немного предсказуем, многие части кода - модифицированные примеры тамошние. Вбрасываю основную либу (там ещё дополнительная, с вхардкоженными вопросами и несколькими функциями, и HTA-оболочка). Остальное будет по просьбам:3

    //Я в этот код даже не заглядываю, боюсь суицидальных приступов от осознания того, что я это написал *HEADBANG*

    Запостил: MiniRoboDancer, 24 Декабря 2013

    Комментарии (12) RSS

    • >приложение для школы
      Говнокодом не является. По-моему - вполне нормально. Особенно это:
      Ану не балуйся!
      Ответить
      • Да тут только за то, что оно в корень срёт, расстрел на месте:D Я уж молчу про всё остальное... Оно ещё и выглядит на редкость вырвиглазно: http://dropi.ru/VwD.png Фон в Фотошопе рисован.
        Ответить
        • > в корень срёт
          В свежеустановленной семерке, емнип, вообще не взлетит ;) Забреют ее с записью файла в корень.
          Ответить
          • В 8.1 c:\file.txt пишет в %userprofile%\AppData\Local\VirtualStore \file.txt (не только для HTA), если запускать не под админом. Под vista/7 ожидается что-то подобное, но я не проверял.
            Ответить
        • > http://dropi.ru/VwD.png
          Захотелось сразу спецсимволы ввести и посмотреть, что будет :)
          Ответить
    • надо же, хохлобратья.
      Ответить
    • Фразы на украинском веселят куда больше самого кода. :)
      Ответить
    • >>JavaScript
      >>C:\\username.tmp
      Хлопцi що тут трапилось?
      Ответить
      • HTA-приложение же

        А вообще, в IE можно подобной фигнёй страдать, если пользователь подтвердит.
        Ответить
        • Вообще, нет, Scripting.FileSystemObject там не доступен даже на локальных страницах. Выдаст исключение "Отказано в доступе"
          Ответить
          • Ну, по крайней мере, приложения с помощью (new ActiveXObject("WScript.Shell")).Exec можно было запускать.
            Ответить
            • Это да. ms залочили отдельные опасные ActiveX, но не все.
              Ответить

    Добавить комментарий