1. Pascal / Говнокод #14129

    +132

    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
    procedure tnewthread.checkfiles; // процедура выполняется в потоке
    var
      i:integer;
      status:tstatus;
      ptmp:array of char;
      temp:string;
      len:integer;
      fstream:tfilestream;
    begin
      flist.Clear;
      findfiles(findpath);
      for i:=flist.Count-1 downto 0 do
      begin
        status:=s_ok;
        try
          try
            fstream:=tfilestream.Create(flist[i],fmopenread);
            fstream.Position:=0;
            setlength(ptmp,fstream.size);
            fstream.Read(pointer(ptmp)^,fstream.size);
          except
            status:=s_error;
          end;
        finally
          fstream.free;
        end;
        temp:=string(pchar(ptmp));
        temp:=stringreplace(temp,' ',' ',[rfreplaceall]);
        temp:=stringreplace(temp,'>','>',[rfreplaceall]);
        temp:=stringreplace(temp,' ',' ',[rfreplaceall]);
        temp:=stringreplace(temp,'&lt;','<',[rfreplaceall]);
        temp:=stringreplace(temp,'&amp;','&',[rfreplaceall]);
        temp:=stringreplace(temp,'&quot;','"',[rfreplaceall]);
        temp:=stringreplace(temp,'&copy;',#169,[rfreplaceall]);
        temp:=stringreplace(temp,#10,#13#10,[rfreplaceall]);
        Len := Length(temp);
        try
          try
            fstream:=tfilestream.Create('C:\1.txt',fmcreate); // заменил в целях теста, не помогает.
            fstream.Position:=0;
              fstream.WriteBuffer(temp[1], Len); // в этом  месте поток вылетает с ошибкой "Range check error"
          except
            status:=s_error;
          end;
        finally
          fstream.free;
        end;
        if status=s_ok then
        begin
          addfileinfo(flist[i]); 
          shrecyclefile(flist[i]);
        end
        else
        begin
          adderrinfo(flist[i]); // синхронизируемся с мемо и добавляем в него красную строчку с именем файла
          shmovefile(flist[i],erroroutputpath +'\' + extractfilename(flist[i])); // перемещаем файл в директорию с файлами, при обр. которых произошла ошибка
        end;
      end;
    end;

    Процедура для обработки текстовых файлов. Имеем дремлющий поток, залоченный waitsingleobject, который будит
    таймерная функция, если в папке есть по крайней мере 1 файл. т.е. одновременно к файлам обращается 1 поток.
    При разлочивании поток немедленно начинает заполнять лист именами файлов, после чего начинает прогонять их
    через процедуру-обработчик. Но вот беда - возникает ошибка range check error. причем возникает только в доп.потоке -
    вне потока все работает нормально. Товарищи ,не подскажете, в чем лажа? (

    Запостил: Stertor, 24 Ноября 2013

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

    • Так в чем же, все таки, лажа?.
      Ответить
      • Исправил. Ох, эти строковые типы!
        procedure tnewthread.checkfiles;
        var
          i:integer;
          status:tstatus;
          ptmp:array of char;
          temp:string;
          len:integer;
          fstream:tfilestream;
          pc:pchar;
        begin
          flist.Clear;
          findfiles(findpath);
          for i:=flist.Count-1 downto 0 do
          begin
            status:=s_ok;
            try
              try
                fstream:=tfilestream.Create(flist[i],fmopenread);
                fstream.Position:=0;
                setlength(ptmp,fstream.size * sizeof(char));
                fstream.Read(pointer(ptmp)^,fstream.size);
              except
                status:=s_error;
              end;
            finally
              fstream.free;
            end;
            temp:=string(ptmp)+#0;
            temp:=stringreplace(temp,' ',' ',[rfreplaceall]);
            temp:=stringreplace(temp,'>','>',[rfreplaceall]);
            temp:=stringreplace(temp,' ',' ',[rfreplaceall]);
            temp:=stringreplace(temp,'<','<',[rfreplaceall]);
            temp:=stringreplace(temp,'&','&',[rfreplaceall]);
            temp:=stringreplace(temp,'"','"',[rfreplaceall]);
            temp:=stringreplace(temp,'©',#169,[rfreplaceall]);
            temp:=stringreplace(temp,#10,#13#10,[rfreplaceall]);
            Len := Length(temp);
            try
              try
                fstream:=tfilestream.Create(outputpath +'\'+extractfilename(flist[i]),fmcreate);
                fstream.Position:=0;
                fstream.WriteBuffer(temp[1],len);
              except
                status:=s_error;
              end;
            finally
              fstream.free;
            end;
            if status=s_ok then
            begin
              addfileinfo(flist[i]);
              shrecyclefile(flist[i]);
            end
            else
            begin
              adderrinfo(flist[i]);
              shmovefile(flist[i],erroroutputpath +'\' + extractfilename(flist[i]));
            end;
          end;
        end;
        Ответить
    • >temp:=stringreplace(temp,'& gt;','>',[rfreplaceall]);

      Макака

      >stringreplace(temp,'"','"',[rfreplaceall]);
      Движок такой охуенный.
      Ответить
      • Если ты называешь макакой меня, в таком случае ты сам ты - макака, невнимательная и тупая макака.
        Ответить
        • Минус неуместен. Движок сайта поменял спец. символы HTML между кавычками на их отображаемые аналоги - поэтому и получилась белиберда. В оригинале кода не так.
          Ответить
          • Беда ещё в том, что при редактировании комментария пользователь видит не то, что вводил в первый раз. А уж если он вставил большой кусок кода и предварительно вручную расставил нужные &amp;...
            Ответить
            • Еще на предпросмотре видно не то, что после отправки. Что намекает, что зой этого сайта - макака.
              Ответить
            • temp:=stringreplace(temp,'&gt;','>',[rfreplaceall]);
              А что не так с amp'ом?

              P.S. А, понял, после редактирования портится.
              Ответить
              • Еще и после редактирования?

                Давайте все глюки в один топик сносить. Например http://govnokod.ru/14120
                Ответить
                • Ну вот сразу когда пишешь &gt;, оно нормально вставляется. А когда жмешь редактирование, в редакторе показывается <. С & та же петрушка...

                  > Давайте все глюки в один топик сносить
                  Да лучше в issues к сырцам говнокода кидай... Или на реформал. А тут они затеряются среди срача.
                  Ответить
                  • Тут их обсуждать с говнокодовцами проще. А потом можно и зарепортить.
                    Ответить
        • Со мной все в порядке :) А ты думай, почему макака.
          Ответить
          • Интриганов я обычно на хуй посылаю, на заметку тебе.
            Ответить
            • Не хочешь думать - нехуй тебе помогать.
              Ответить
              • ...
                Ответить
                • (_©_)
                  Ответить
                  • ...
                    Ответить
                  • Копирастическое гоатсе.
                    Ответить
                    • Это еще не гоатсе, просто жопа копирастическая.
                      Ответить
                      • Это, походу, жопа пользователя копирастической продукции. В ней мы видим защищеный от копирования анальный зонд, помеченный соответствующим знаком.
                        Ответить
                        • Хватит, товарищи, сколько можно рассуждать...
                          Ответить
                        • Ну хорошо. Рассуждаем дальше.
                          Ответить
                          • показать все, что скрыто
                            (_©_)
                            Ответить
                            • показать все, что скрыто(_©_)
                              Ответить
                              • показать все, что скрыто
                                * g o a t s e x * g o a t s e x * g o a t s e x *
                                g                                               g  
                                o /     \             \            /    \       o
                                a|       |             \          |      |      a
                                t|       `.             |         |       :     t
                                s`        |             |        \|       |     s
                                e \       | /       /  \\\   --__ \\       :    e
                                x  \      \/   _--~~          ~--__| \     |    x  
                                *   \      \_-~                    ~-_\    |    *
                                g    \_     \        _.--------.______\|   |    g
                                o      \     \______// _ ___ _ (_(__>  \   |    o
                                a       \   .  C ___)  ______ (_(____>  |  /    a
                                t       /\ |   C ____)/      \ (_____>  |_/     t
                                s      / /\|   C_____)       |  (___>   /  \    s
                                e     |   (   _C_____)\______/  // _/ /     \   e
                                x     |    \  |__   \\_________// (__/       |  x
                                *    | \    \____)   `----   --'             |  *
                                g    |  \_          ___\       /_          _/ | g
                                o   |              /    |     |  \            | o
                                a   |             |    /       \  \           | a
                                t   |          / /    |         |  \           |t
                                s   |         / /      \__/\___/    |          |s
                                e  |           /        |    |       |         |e
                                x  |          |         |    |       |         |x
                                * g o a t s e x * g o a t s e x * g o a t s e x *
                                Ответить
                                • показать все, что скрыто
                                  * g o a t s e x * g o a t s e x * g o a t s e x *
                                  g                                               g  
                                  o /     \             \            /    \       o
                                  a|       |             \          |      |      a
                                  t|       `.             |         |       :     t
                                  s`        |             |        \|       |     s
                                  e \       | /       /  \\\   --__ \\       :    e
                                  x  \      \/   _--~~          ~--__| \     |    x  
                                  *   \      \_-~                    ~-_\    |    *
                                  g    \_     \        _.--------.______\|   |    g
                                  o      \     \______// _ ___ _ (_(__>  \   |    o
                                  a       \   .  C ___)  ______ (_(____>  |  /    a
                                  t       /\ |   C ____)/      \ (_____>  |_/     t
                                  s      / /\|   C_____)       |  (___>   /  \    s
                                  e     |   (   _C_____)\______/  // _/ /     \   e
                                  x     |    \  |__   \\_________// (__/       |  x
                                  *    | \    \____)   `----   --'             |  *
                                  g    |  \_          ___\       /_          _/ | g
                                  o   |              /    |     |  \            | o
                                  a   |             |    /       \  \           | a
                                  t   |          / /    |         |  \           |t
                                  s   |         / /      \__/\___/    |          |s
                                  e  |           /        |    |       |         |e
                                  x  |          |         |    |       |         |x
                                  * g o a t s e x * g o a t s e x * g o a t s e x *
                                  Ответить
                                  • показать все, что скрыто
                                    * g o a t s e x * g o a t s e x * g o a t s e x *
                                    g                                               g  
                                    o /     \             \            /    \       o
                                    a|       |             \          |      |      a
                                    t|       `.             |         |       :     t
                                    s`        |             |        \|       |     s
                                    e \       | /       /  \\\   --__ \\       :    e
                                    x  \      \/   _--~~          ~--__| \     |    x  
                                    *   \      \_-~                    ~-_\    |    *
                                    g    \_     \        _.--------.______\|   |    g
                                    o      \     \______// _ ___ _ (_(__>  \   |    o
                                    a       \   .  C ___)  _______ (_(____>  |  /    a
                                    t       /\ |   C ____)/       \ (_____>  |_/     t
                                    s      / /\|   C_____)         |  (___>   /  \    s
                                    e     |   (   _C_____)\_______/  // _/ /     \   e
                                    x     |    \  |__   \\_________// (__/       |  x
                                    *    | \    \____)   `----   --'             |  *
                                    g    |  \_          ___\       /_          _/ | g
                                    o   |              /    |     |  \            | o
                                    a   |             |    /       \  \           | a
                                    t   |          / /    |         |  \           |t
                                    s   |         / /      \__/\___/    |          |s
                                    e  |           /        |    |       |         |e
                                    x  |          |         |    |       |         |x
                                    * g o a t s e x * g o a t s e x * g o a t s e x *
                                    Ответить
                                    • показать все, что скрыто
                                      * g o a t s e x * g o a t s e x * g o a t s e x *
                                      g                                               g  
                                      o /     \             \            /    \       o
                                      a|       |             \          |      |      a
                                      t|       `.             |         |       :     t
                                      s`        |             |        \|       |     s
                                      e \       | /       /  \\\   --__ \\       :    e
                                      x  \      \/   _--~~          ~--__| \     |    x  
                                      *   \      \_-~                    ~-_\    |    *
                                      g    \_     \        _.--------.______\|   |    g
                                      o      \     \______// _ ___ _ (_(__>  \   |    o
                                      a       \   .  C ___)  _______ (_(____>  |  /   a
                                      t       /\ |   C ____)/       \ (_____>  |_/    t
                                      s      / /\|   C_____)         | (___>   /  \   s
                                      e     |   (   _C_____)\_______/ // _/ /     \   e
                                      x     |    \  |__   \\_________// (__/       |  x
                                      *    | \    \____)   `----   --'             |  *
                                      g    |  \_          ___\       /_          _/ | g
                                      o   |              /    |     |  \            | o
                                      a   |             |    /       \  \           | a
                                      t   |          / /    |         |  \           |t
                                      s   |         / /      \__/\___/    |          |s
                                      e  |           /        |    |       |         |e
                                      x  |          |         |    |       |         |x
                                      * g o a t s e x * g o a t s e x * g o a t s e x *
                                      Ответить
                                      • показать все, что скрыто
                                        * g o a t s e x * g o a t s e x * g o a t s e x *
                                        g                                               g  
                                        o /     \             \            /    \       o
                                        a|       |             \          |      |      a
                                        t|       `.             |         |       :     t
                                        s`        |             |        \|       |     s
                                        e \       | /       /  \\\   --__ \\       :    e
                                        x  \      \/   _--~~          ~--__| \     |    x  
                                        *   \      \_-~                    ~-_\    |    *
                                        g    \_     \        _.--------.______\|   |    g
                                        o      \     \______// _ ___ _ (_(__>  \   |    o
                                        a       \   .  C ___)  _______ (_(____>  |  /   a
                                        t       /\ |   C ____)/       \ (_____>  |_/    t
                                        s      / /\|   C_____)         | (___>   /  \   s
                                        e     |   (   _C_____)\_______/ // _/ /     \   e
                                        x     |    \  |__   \\_________// (__/       |  x
                                        *    | \    \____)   `---------'             |  *
                                        g    |  \_          ___\       /_          _/ | g
                                        o   |              /    |     |  \            | o
                                        a   |             |    /       \  \           | a
                                        t   |          / /    |         |  \           |t
                                        s   |         / /      \__/\___/    |          |s
                                        e  |           /        |    |       |         |e
                                        x  |          |         |    |       |         |x
                                        * g o a t s e x * g o a t s e x * g o a t s e x *
                                        Ответить
                                        • показать все, что скрытоЧем он так растянул свой анус, что аж две рук входит?
                                          Ответить
                                          • показать все, что скрыто
                                            * g o a t s e x * g o a t s e x * g o a t s e x *
                                            g                                               g  
                                            o /     \             \            /    \       o
                                            a|       |             \          |      |      a
                                            t|       `.             |         |       :     t
                                            s`        |             |        \|       |     s
                                            e \       | /       /  \\\   --__ \\       :    e
                                            x  \      \/   _--~~          ~--__| \     |    x  
                                            *   \      \_-~                    ~-_\    |    *
                                            g    \_     \        _.--------.______\|   |    g
                                            o      \     \______// _ ___ _ (_(__>  \   |    o
                                            a       \   .  C ___)  _______ (_(____>  |  /   a
                                            t       /\ |   C ____)/       \ (_____>  |_/    t
                                            s      / /\|   C_____)         | (___>   /  \   s
                                            e     |   (   _C_____)\_______/ // _/ /     \   e
                                            x     |    \  |__   \\_________// (__/       |  x
                                            *    | \    \____)   `---------'             |  *
                                            g    |  \_          ___\       /_          _/ | g
                                            o   |              /    |     |  \            | o
                                            a   |             |    /       \  \           | a
                                            t   |          / /    |         |  \           |t
                                            s   |         / /      \__/\___/    |          |s
                                            e  |           /        |    |       |         |e
                                            x  |          |         |    |       |         |x
                                            * g o a t s e x * g o a t s e x * g o a t s e x *
                                            Ответить
                                            • показать все, что скрытоМонстар наверно, хз даже ((
                                              Ответить
                                              • показать все, что скрыто
                                                * g o a t s e x * g o a t s e x * g o a t s e x *
                                                g                                               g  
                                                o /     \             \            /    \       o
                                                a|       |             \          |      |      a
                                                t|       `.             |         |       :     t
                                                s`        |             |        \|       |     s
                                                e \       | /       /  \\\   --__ \\       :    e
                                                x  \      \/   _--~~          ~--__| \     |    x  
                                                *   \      \_-~                    ~-_\    |    *
                                                g    \_     \        _.--------.______\|   |    g
                                                o      \     \______// _ ___ _ (_(__>  \   |    o
                                                a       \   .  C ___)  _______ (_(____>  |  /   a
                                                t       /\ |   C ____)/       \ (_____>  |_/    t
                                                s      / /\|   C_____)         | (___>   /  \   s
                                                e     |   (   _C_____)\_______/ // _/ /     \   e
                                                x     |    \  |__   \\_________// (__/       |  x
                                                *    | \    \____)   `---------'             |  *
                                                g    |  \_          ___\       /_          _/ | g
                                                o   |              /    |     |  \            | o
                                                a   |             |    /       \  \           | a
                                                t   |          / /    |         |  \           |t
                                                s   |         / /      \__/\___/    |          |s
                                                e  |           /        |    |       |         |e
                                                x  |          |         |    |       |         |x
                                                * g o a t s e x * g o a t s e x * g o a t s e x *
                                                Ответить
    • Пост имени старпера - сам запостил, сам откоментил, сам пошутил, сам посмеялся
      Ответить
    • Он ошарашенно огляделся и увидел, что Катя, мама Дани, тихо плачет. Этого он вынести не мог. Он бросился к Кате, робко обнял её и прошептал:
      Ответить

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