1. C# / Говнокод #2038

    +130.2

    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
    #region C++ signatures
            //long TRANS2QUIK_API __stdcall TRANS2QUIK_CONNECT (
            //    LPSTR lpstConnectionParamsString, 
            //    long* pnExtendedErrorCode, 
            //    LPSTR lpstrErrorMessage, 
            //    DWORD dwErrorMessageSize);
            #endregion
    
    
            #region connect
            [DllImport("TRANS2QUIK.DLL", EntryPoint = "_TRANS2QUIK_CONNECT@16",CallingConvention = CallingConvention.StdCall)]
            static extern long connect(string lpcstrConnectionParamsString,ref long pnExtendedErrorCode,
               byte[] lpstrErrorMessage,UInt32 dwErrorMessageSize);
            public static void connect_test(bool FinalPause)
            {
                string path = @"D:\Квики\Quik.ТХБ2007\";
                Byte[] EMsg = new Byte[50];
                UInt32 EMsgSz = 50;
                long ExtEC = 0, rez = -1;
                rez = connect(path, ref ExtEC, EMsg, EMsgSz);
                Console.WriteLine("test_q.connect_test>\t\t{0} {1} ",rez & 255, ResultToString(rez&255));
                //Console.WriteLine(" ExtEC={0}, EMsg={1}, EMsgSz={2}", (ExtEC & 255), EMsg, EMsgSz);
                if(FinalPause)Console.ReadLine();
            }
            #endregion

    Юзаем функцию написанную на C++ и возвращающую тип long. После неправильного маршалинга (в C++ long это 32 бита, а не 64) отсекаем лишние биты по AND.

    greeny, 24 Октября 2009

    Комментарии (3)
  2. C++ / Говнокод #2037

    +56.3

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    bool a,b;
    
    ...
    
    if(a>b)
    {
    ...

    Увидел в одной либе... Си++ странный язык. Паскаль проще...

    1)Скомпилируеться ли?
    2)Что это значит?

    Говногость, 24 Октября 2009

    Комментарии (16)
  3. Java / Говнокод #2036

    +79.8

    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
    String _desc = postParams.get( "description" );
    
    if (_desc == null)
        _desc = "Merchant payment";
    
    _desc = _desc.replace("%20", " ");
    _desc = _desc.replace("%21", "!");
    _desc = _desc.replace("%22", "\"");
    _desc = _desc.replace("%23", "#");
    _desc = _desc.replace("%24", "$");
    _desc = _desc.replace("%25", "%");
    _desc = _desc.replace("%26", "&");
    _desc = _desc.replace("%27", "'");
    _desc = _desc.replace("%28", "(");
    _desc = _desc.replace("%29", ")");
    _desc = _desc.replace("%2A", "*");
    _desc = _desc.replace("%2B", "+");
    _desc = _desc.replace("%2C", ",");
    _desc = _desc.replace("%2D", "-");
    _desc = _desc.replace("%2E", ".");
    _desc = _desc.replace("%2F", "/");
    _desc = _desc.replace("%3A", ":");
    _desc = _desc.replace("%3B", ";");
    _desc = _desc.replace("%3C", "<");
    _desc = _desc.replace("%3D", "=");
    _desc = _desc.replace("%3E", ">");
    _desc = _desc.replace("%3F", "?");
    _desc = _desc.replace("%40", "@");
    _desc = _desc.replace("%5B", "[");
    _desc = _desc.replace("%5C", "\\");
    _desc = _desc.replace("%5D", "]");
    _desc = _desc.replace("%5E", "^");
    _desc = _desc.replace("%5F", "_");
    _desc = _desc.replace("%60", "`");
    _desc = _desc.replace("%7B", "{");
    _desc = _desc.replace("%7C", "|");
    _desc = _desc.replace("%7D", "}");
    _desc = _desc.replace("%7E", "~");

    Разработчики java.net.URLDecoder были идиотами. Напишем КРУЧЕ!

    spbAngel, 24 Октября 2009

    Комментарии (8)
  4. Java / Говнокод #2035

    +72.6

    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
    TransferInfo info = new QiwiTransferInfo();
    
    if( command.equalsIgnoreCase( "pay" ) )
    {
        ( ( QiwiTransferInfo ) info ).setCommand( QiwiCommand.PAY );
        ( ( QiwiTransferInfo ) info ).setTxnDate( request.getParameter( "txn_date" ) );
    }
    else
    {
        ( ( QiwiTransferInfo ) info ).setCommand( QiwiCommand.CKECK );
    }
    
    ( ( QiwiTransferInfo ) info ).setAmout( Double.parseDouble( amount ) );
    ( ( QiwiTransferInfo ) info ).setTxnId( txn_id );
    ( ( QiwiTransferInfo ) info ).setAccount( account );
    ( ( QiwiTransferInfo ) info ).setCurrency( Currency.getInstance( "RUB" ) );

    C другой стороны, я никогда не могу предсказать что же вернет конструктор...

    spbAngel, 24 Октября 2009

    Комментарии (0)
  5. JavaScript / Говнокод #2034

    +144.1

    1. 1
    2. 2
    3. 3
    while(false){
        alert('Привет')
    }

    no comments

    Infamous, 24 Октября 2009

    Комментарии (4)
  6. PHP / Говнокод #2033

    +164

    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
    $today = getdate();
    $mon ="$today[mon]";
    $year ="$today[year]";
    $mday ="$today[mday]";
    if ($mon{1}==false)
      {
        $mon="0"."$mon";
      }
    if ($mon=="1")
      {
        $mon="0"."$mon";
      }
    
    if ($mday=="1")
      {
        $mday="0"."$mday";
      }
    if ($mday=="2")
      {
        $mday="0"."$mday";
      }
    if ($mday=="3")
      {
        $mday="0"."$mday";
      }
    if ($mday=="4")
      {
        $mday="0"."$mday";
      }
    if ($mday=="5")
      {
        $mday="0"."$mday";
      }
    if ($mday=="6")
      {
        $mday="0"."$mday";
      }
    if ($mday=="7")
      {
        $mday="0"."$mday";
      }
    if ($mday=="8")
      {
        $mday="0"."$mday";
      }
    if ($mday=="9")
      {
        $mday="0"."$mday";
      }

    продолжение шедевра http://govnokod.ru/1048

    marten.spb, 23 Октября 2009

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

    +106.1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    var
    x,y,arccos,arctg:real;
    begin
    y:=arccos(sin(3*x+1.3))-x*exp(ln(e)*arctg(x))+0.7;
    ...

    один умный парень написал ))

    mal1sh, 23 Октября 2009

    Комментарии (17)
  8. Java / Говнокод #2031

    +72.2

    1. 1
    assert ( false );

    Найдено в глубинах кода :)

    generalgda, 23 Октября 2009

    Комментарии (4)
  9. C++ / Говнокод #2030

    +61.8

    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
    const int size=8;
    
    class Bin
    {
    public:
    	Bin();
    private:
    	char first[size];
    	char second[size];
    };
    
    Bin::Bin()
    {
    	for (int s=0;s<=size;s++, first[s]='0');
    }

    Вот вам смешно? А я пару часов думал почему при заполнении одного вектора меняется другой...

    meriados, 23 Октября 2009

    Комментарии (54)
  10. C# / Говнокод #2029

    +135.8

    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
    public static string ResultToString(long Result)
            {
                switch (Result)
                {
                    case TRANS2QUIK_SUCCESS:                                //0
                        return "TRANS2QUIK_SUCCESS";
                        break;
                    case TRANS2QUIK_FAILED:                                 //1
                        return "TRANS2QUIK_FAILED";
                        break;
                    case TRANS2QUIK_QUIK_TERMINAL_NOT_FOUND:                //2
                        return "TRANS2QUIK_QUIK_TERMINAL_NOT_FOUND";
                        break;
                    case TRANS2QUIK_DLL_VERSION_NOT_SUPPORTED:              //3
                        return "TRANS2QUIK_DLL_VERSION_NOT_SUPPORTED";
                        break;
                    case TRANS2QUIK_ALREADY_CONNECTED_TO_QUIK:              //4
                        return "TRANS2QUIK_ALREADY_CONNECTED_TO_QUIK";
                        break;
                    case TRANS2QUIK_WRONG_SYNTAX:                           //5
                        return "TRANS2QUIK_WRONG_SYNTAX";
                        break;
                    case TRANS2QUIK_QUIK_NOT_CONNECTED:                     //6
                        return "TRANS2QUIK_QUIK_NOT_CONNECTED";
                        break;
                    case TRANS2QUIK_DLL_NOT_CONNECTED:                      //7
                        return "TRANS2QUIK_DLL_NOT_CONNECTED";
                        break;
                    case TRANS2QUIK_QUIK_CONNECTED:                         //8
                        return "TRANS2QUIK_QUIK_CONNECTED";
                        break;
                    case TRANS2QUIK_QUIK_DISCONNECTED:                      //9
                        return "TRANS2QUIK_QUIK_DISCONNECTED";
                        break;
                    case TRANS2QUIK_DLL_CONNECTED:                          //10
                        return "TRANS2QUIK_DLL_CONNECTED";
                        break;
                    case TRANS2QUIK_DLL_DISCONNECTED:                       //11
                        return "TRANS2QUIK_DLL_DISCONNECTED";
                        break;
                    case TRANS2QUIK_MEMORY_ALLOCATION_ERROR:                //12
                        return "TRANS2QUIK_MEMORY_ALLOCATION_ERROR";
                        break;
                    case TRANS2QUIK_WRONG_CONNECTION_HANDLE:                //13
                        return "TRANS2QUIK_WRONG_CONNECTION_HANDLE";
                        break;
                    case TRANS2QUIK_WRONG_INPUT_PARAMS:                     //14
                        return "TRANS2QUIK_WRONG_INPUT_PARAMS";
                        break;
                    default:
                        return "UNKNOWN_VALUE";
                        break;
                }
            }
            public static string ByteToString(byte[] Str)
            { 
                string s="";
                for (int i = 0; i < Str.Length; i++)
                {
                    s = s + Str[i].ToString();
                }
                return s;
            }

    Лежит в качестве примера на одном из сайтов.
    Ну автору всё равно спасибо, пример и правда полезный (да и код прикольный :)).

    greeny, 23 Октября 2009

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