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

    +133

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    Дорогой участник! Не спеши покидать страницу. Я прошу тебя помочь:
    не поленись, пройдись по всем постам, и поставь каждому участнику по минусу;
    минусуя других участников ты воспитываешь в себе чувство меры и помогаешь обществу снижать ЧСВ. 
    Заранее спасибо, друг мой. Ты будешь вознагражден за это деяние!
    
    Тот, кто покинул страницу, но не выполнил моей просьбы, умрет через 9 дней.

    Дорогой участник! Не спеши покидать страницу. Я прошу тебя помочь:
    не поленись, пройдись по всем постам, и поставь каждому участнику по минусу;
    минусуя других участников ты воспитываешь в себе чувство меры и помогаешь обществу снижать ЧСВ.
    Заранее спасибо, друг мой. Ты будешь вознагражден за это деяние!


    Тот, кто покинул страницу, но не выполнил моей просьбы, умрет через 9 дней.

    Stertor, 11 Июля 2013

    Комментарии (0)
  2. Pascal / Говнокод #13363

    +133

    1. 1
    2. 2
    3. 3
    Прокси-граббер
    
    http://rghost.ru/47337858

    Наш ответ ансикльным петушкам)

    Stertor, 11 Июля 2013

    Комментарии (7)
  3. Pascal / Говнокод #13359

    +130

    1. 1
    2. 2
    3. 3
    Прокси-граббер
    
    http://rghost.ru/47337858

    Товарищи, попробуйте мой новый прокси-граббер! Это только эскиз, так что прошу строго не судить. Однопоточный. Парсит с 2 сайтов.

    Stertor, 10 Июля 2013

    Комментарии (20)
  4. Pascal / Говнокод #13345

    +133

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    [color=red]Участник, прошу тебя, не поленись, пройдись по разделам и поставь всем по минусу.
    Минусуя участников, ты помогаешь обществу людей снижать ЧСД, а троллям -держать фигуру.
    
    
    Для сравнения с остальными постами, которые писал не я.
    P/S. найди 10 отличий.[/color]

    Без коментариев. Борманд вообще меня убил. Вчера-позавчера мы нормально общались, а сегодня он меня с кем-то спутал.

    Stertor, 09 Июля 2013

    Комментарии (3)
  5. Pascal / Говнокод #13340

    +138

    1. 1
    2. 2
    Участник, прошу тебя: не поленись, пройди по анкетам и поставь всем минусы.
    Минуисуя участников, ты помогаешш обществу снижать ЧСВ.

    Участник, прошу тебя: не поленись, пройди по анкетам и поставь всем минусы.
    Минуисуя участников, ты помогаешш обществу снижать ЧСВ.

    Stertor, 09 Июля 2013

    Комментарии (10)
  6. Pascal / Говнокод #13334

    +133

    1. 1
    2. 2
    Участник, прошу тебя: не поленись, пройди по анкетам и поставь всем минусы.
    Минуисуя участников, ты помогаешш обществу снижать ЧСВ.

    Участник, прошу тебя: не поленись, пройди по анкетам и поставь всем минусы.
    Минуисуя участников, ты помогаешш обществу снижать ЧСВ.

    Stertor, 09 Июля 2013

    Комментарии (0)
  7. Pascal / Говнокод #13332

    +133

    1. 1
    2. 2
    Участник, прошу тебя: не поленись, пройди по анкетам и поставь всем минусы.
    Минуисуя участников, ты помогаешш обществу снижать ЧСВ.

    Участник, прошу тебя: не поленись, пройди по анкетам и поставь всем минусы.
    Минуисуя участников, ты помогаешш обществу снижать ЧСВ.

    Stertor, 09 Июля 2013

    Комментарии (1)
  8. Pascal / Говнокод #13331

    +133

    1. 1
    ADMIN LOH

    Stertor, 09 Июля 2013

    Комментарии (17)
  9. Pascal / Говнокод #13329

    +97

    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
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    {$APPTYPE CONSOLE} {$IFDEF FPC}{$MODE DELPHI}{$ENDIF}
    uses SysUtils, Classes, IniFiles, Variants;
    
    type TGetToken = function(var p: pointer): LongInt;
    procedure ParseData(var p: pointer; isKey: boolean); forward;
    procedure AdvanceIndex(var i: LongInt); forward;
    
    function GetIntegerToken(var p: pointer): LongInt;
    var value: LongInt = 0;
        negative: boolean;
    begin
      Inc(p);
      negative := PByte(p)^ = ord('-');
      if negative then Inc(p);
      repeat
        value := value * 10 + LongInt(PByte(p)^ - $30);
        Inc(p)
      until PChar(p)^ = 'e';
      Inc(p);
      if negative then value := - value;
      Result := value
    end;
    
    function GetListToken(var p: pointer): LongInt;
    var index: Integer = 0;
    begin
      Inc(p);
      while PChar(p)^ <> 'e' do begin
        AdvanceIndex(index);
        ParseData(p, false);
      end;
      Inc(p);
      Result := -1
    end;
    
    function GetDictToken(var p: pointer): LongInt;
    begin
      Inc(p);
      while PChar(p)^ <> 'e' do begin
        ParseData(p, true);
        ParseData(p, false);
      end;
      Inc(p);
      Result := -1
    end;
    
    function ParseError(var p: pointer): LongInt;
    begin
      Writeln('TYIIINTE CBET');
      Result := -1;
      Halt(Result)
    end;
    
    const FuncTable: array[0..3] of TGetToken = (ParseError, GetDictToken, GetIntegerToken, GetListToken);
    
    function GetStringToken(var p: pointer): string;
    var value: ShortString;
        length: LongInt = 0;
    begin
      repeat
        length := length * 10 + LongInt(PByte(p)^ - $30);
        Inc(p)
      until PChar(p)^ = ':';
      if length in [1..255] then begin
        PByte(p)^ := length;
        Move(p^, value, length+1);
        Result := value;
      end else Result := 'BINARY DATA';
      Inc(p, length + 1);
    end;
    
    var sl: TStringList;
        outf: TIniFile;
    
    procedure AdvanceIndex(var i: LongInt);
    begin
      sl.Add(IntToStr(i));
      Inc(i);
    end;

    type TSaveData = procedure(value: Variant);

    procedure SaveData(value: Variant);
    var
    key: string = '';
    i: LongInt;
    begin
    for i := 0 to sl.Count - 1 do key := key + '.' + sl[i];
    Delete(key, 1, 1);
    outf.WriteString('Torrent', key, VarToStr(value));
    if sl.Count > 0 then sl.Delete(sl.Count - 1);
    end;

    procedure PushKey(value: Variant);
    begin
    sl.Add(value)
    end;

    procedure PopKey(value: Variant);
    begin
    if sl.Count > 0 then sl.Delete(sl.Count - 1);
    end;

    procedure NOP(value: Variant);
    begin
    end;

    const SaveDataTable: array[0..3] of TSaveData = (SaveData, PushKey, PopKey, NOP);

    procedure ParseData(var p: pointer; isKey: boolean);
    var
    OpCode: ShortInt;
    value: Variant;
    begin
    OpCode := PByte(p)^;
    if OpCode >= $60 then value := FuncTable[OpCode shr 2 and 3](p)
    else if Opcode in [$30..$39] then value := GetStringToken(p)
    else ParseError(p);

    SaveDataTable[ord(isKey) + 2*ord(chr(OpCode) in ['d', 'l'])](value);
    end;

    var f: TFileStream;
    s: LongInt;
    p, cp: pointer;
    begin
    if ParamCount <> 1 then Writeln('Usage: ', ParamStr(0), ' filename.torrent')
    else
    try
    f := TFileStream.Create(ParamStr(1), fmOpenRead);
    s:= f.Size;
    GetMem(p, s + 1);
    f.ReadBuffer(p^, s);
    cp := p;
    outf := TIniFile.Create(ChangeFileExt(ParamStr(1), '.ini'));
    sl := TStringList.Create;
    ParseData(cp, false);
    finally
    if sl <> nil then sl.Destroy();
    if outf <> nil then outf.Destroy();
    if p <> nil then FreeMem(p);
    if f <> nil then f.Destroy()
    end
    end.

    Парсер torrent-файлов и сохранялка в INI-файл (пока без сумм фрагментов). Опа-лаба-стайл, писано левой ногой анскильного питуха.

    inkanus-gray, 09 Июля 2013

    Комментарии (15)
  10. Pascal / Говнокод #13319

    +140

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    procedure TForm1.CloseChecker1Click(Sender: TObject);
    begin
    Halt;
    end;
    
    procedure TForm1.CoolTrayIcon1DblClick(Sender: TObject);
    begin
    Form1.Show;
    CoolTrayIcon1.IconVisible:=false;
    end;
    
    end.

    Продолжение. Начало на http://govnokod.ru/13317, http://govnokod.ru/13318

    Stertor, 06 Июля 2013

    Комментарии (8)