1. Список говнокодов пользователя glprizes

    Всего: 10

  2. Java / Говнокод #16759

    +76

    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
    static final String MIN_INTEGER = String.valueOf(Integer.MIN_VALUE);
      static final String MAX_INTEGER = String.valueOf(Integer.MAX_VALUE);
      static final String MIN_LONG = String.valueOf(Long.MIN_VALUE);
      static final String MAX_LONG = String.valueOf(Long.MAX_VALUE);
    
      static final int NS_INTEGER = 1;
      static final int NS_LONG = 2;
    
      /**
       * Проверяет, является ли передаваемая строка строковым представлением числа типа int (long)
       * @param s строка для проверки
       * @return <code>true</code>, если строка может быть распарсена как int (ling).
       * @see Integer#parseInt
       * @see Long#parseLong
       */
      private static boolean isNumber(String s, int NUMBER_SIZE) {
        String MIN_NUMBER = "", MAX_NUMBER = "";
        switch (NUMBER_SIZE) {
          case (NS_INTEGER):
            MIN_NUMBER = MIN_INTEGER;
            MAX_NUMBER = MAX_INTEGER;
          break;
          case (NS_LONG):
            MIN_NUMBER = MIN_LONG;
            MAX_NUMBER = MAX_LONG;
          break;
        }
        if (s == null) return false;
        final int len = s.length();
        boolean negative = false;
        int pos = len > 0 && (negative = s.charAt(0) == '-') ? 1 : 0;
        if (pos == len) return false;
        while (pos < len && s.charAt(pos) == '0') pos++; //пропустим 0
        if (pos == len) return true; // там 0
        // если длина заведомо больше, то и значение по-любому выходит за пределы
        if (negative && len - pos > MIN_NUMBER.length() - 1 || len - pos > MAX_NUMBER.length()) return false;
        // нужно проверять предельные значения
        boolean needCheckRange = negative && len - pos == MIN_NUMBER.length() - 1 || len - pos == MAX_NUMBER.length();
        if (needCheckRange) {
          final String rangeString = negative ? MIN_NUMBER : MAX_NUMBER;
          for (int i = negative? 1:0; pos<len; pos++,i++) {
            final char c = s.charAt(pos);
            char r = 0;
            if (c < '0' || c > '9' ||
                (needCheckRange && c > (r = rangeString.charAt(i))) ||
                ((needCheckRange &= c == r) && false))
              return false;
          }
        } else {
          for (;pos<len;pos++) {
            final char c = s.charAt(pos);
            if (c < '0' || c > '9')
              return false;
          }
        }
        return true;
      }

    glprizes, 24 Сентября 2014

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

    +80

    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
    /**
       * Форматирует double, c arround кол-вом знаков после запятой
       * @param d double
       * @param arround int
       * @return String
       */
      public static String formatDouble(double d, int arround) {
        if (arround > 6) {
          throwIllegalFormat();
        }
        StringBuffer sb = new StringBuffer(10);
        boolean minus = d < 0;
        if (minus) {
          d = -d;
        }
        for (int i = 0; i < arround; i++) {
          d *= 10;
        }
        long l = (long) (d + 0.000000001);
        do {
          char digit = (char) ('0' + (l % 10));
          l = l / 10;
          sb.append(digit);
          if (--arround == 0) {
            sb.append('.');
          }
        } while (l != 0 || arround >= 0);
        if (minus) {
          sb.append('-');
        }
        return sb.reverse().toString();
      }

    glprizes, 02 Октября 2013

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

    +83

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    private static boolean getIsDeclinedByRules(boolean oldIsSatisfy, boolean oldIsDeclined, boolean newIsSatisfy) {
        if (!oldIsSatisfy &&  oldIsDeclined && !newIsSatisfy) return true;
        if (!oldIsSatisfy &&  oldIsDeclined &&  newIsSatisfy) return false;
        if (!oldIsSatisfy && !oldIsDeclined && !newIsSatisfy) return true;
        if (!oldIsSatisfy && !oldIsDeclined &&  newIsSatisfy) return false;
        if ( oldIsSatisfy &&  oldIsDeclined && !newIsSatisfy) return true;
        if ( oldIsSatisfy &&  oldIsDeclined &&  newIsSatisfy) return true;
        if ( oldIsSatisfy && !oldIsDeclined && !newIsSatisfy) return true;
        if ( oldIsSatisfy && !oldIsDeclined &&  newIsSatisfy) return false;
        return true;
      }

    glprizes, 25 Марта 2013

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

    +154

    1. 1
    2. 2
    3. 3
    function isEmptyStr(val) {
        return val == null || val === "";
    }

    glprizes, 01 Августа 2012

    Комментарии (42)
  6. Java / Говнокод #10972

    +69

    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
    String sXLTName = template;
            String[] fileNames = new File(templatePath).list();
            try {
              if (fileNames != null) {
                for (String fileName : fileNames) {
                  if (fileName.equalsIgnoreCase(template)) {
                    sXLTName = fileName;
                    break;
                  }
                }
              }
            } finally {
              tmpBook = POIHelper.openRepBook(templatePath + sXLTName);
            }

    Вместо tmpBook = POIHelper.openRepBook(templatePath + template);

    glprizes, 15 Июня 2012

    Комментарии (21)
  7. JavaScript / Говнокод #10617

    +160

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    function changeFilter(event) {
      if (parseInt(event.newValue) < 1000) {
        api.Msg.showErr("Укажите год!");
      }
    }

    Обработчик onchange поля "Год"

    glprizes, 07 Июня 2012

    Комментарии (7)
  8. SQL / Говнокод #10376

    −131

    1. 1
    2. 2
    alter table EqualityCodes add constraint chk_EqualityCodes_Code
      check (Code not in ('', ' ', '  ', '   ', '    ', '     ', '      ', '       '));

    glprizes, 28 Мая 2012

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

    +172

    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
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    //уничтожение буфера
    void delbuf(void* &bf, char ntype)
    {
    	if (ntype=='C')
    	{
    		if (bf!=(char*) NULL) 
    		{
    			delete[] bf;
    			bf=NULL;
    		}
    		return;
    	}
    	if (ntype=='B')
    	{
    		if (bf!=(BYTE*) NULL) 
    		{
    			delete[] bf;
    			bf=NULL;
    		}
    		return;
    	}
    	if (ntype=='I')
    	{
    		if (bf!=(int*) NULL) 
    		{
    			delete[] bf;
    			bf=NULL;
    		}
    		return;
    	}
    	if (ntype=='F')
    	{
    		if (bf!=(double*) NULL) 
    		{
    			delete[] bf;
    			bf=NULL;
    		}
    		return;
    	}
    	if (ntype=='D')
    	{
    		if (bf!=(double*) NULL) 
    		{
    			delete[] bf;
    			bf=NULL;
    		}
    		return;
    	}
    	if (ntype=='W')
    	{
    		if (bf!=(WORD*) NULL) 
    		{
    			delete[] bf;
    			bf=NULL;
    		}
    		return;
    	}
    	if (ntype=='L')
    	{
    		if (bf!=(long*) NULL) 
    		{
    			delete[] bf;
    			bf=NULL;
    		}
    		return;
    	}
    	if (ntype=='S')
    	{
    		if (bf!=(short*) NULL) 
    		{
    			delete[] bf;
    			bf=NULL;
    		}
    		return;
    	}
    	if (ntype=='R')
    	{
    		if (bf!=(DWORD*) NULL) 
    		{
    			delete[] bf;
    			bf=NULL;
    		}
    		return;
    	}
    	return;
    }

    86 строк вместо простого delete [] bf

    glprizes, 02 Февраля 2011

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

    +160

    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
    //перевод целого числа в строку
    	//num-число
    	//nn-длина поля
    	char* num10toc(int num, int nn=4)
    	{
    		int i;
    		int sgmin=0;
    		int	xnum=num;
    		char* p=lnum;
    		if (xnum<0) 
    		{
    			sgmin=1;
    			xnum=-xnum;
    
    		}
    		memset(lnum,0,WMAX+1);
    		memset(lnum,0x20,WMAX);
    		i=lenint(xnum);
    		int j=i;
    		int mm=nn-i-sgmin;
    		if (mm>0)
    		{
    			p+=mm;
    		}
    		if (sgmin!=0)
    		{
    			*p='-';
    			p++;
    		}
    		if (xnum==0)
    		{
    			*p='0';
    			return &lnum[0];
    		}
    		while (xnum>0)
    		{
    			*(p+i-1)=(char)(xnum%10+0x30);
    			xnum/=10;
    			i--;
    		}
    		*(p+j)=0;
    		return &lnum[0];
    	}

    Загадка: что выведется в следующих случаях?

    printf("%s\n", num10toc(0, 5));
    printf("%s\n", num10toc(1, 5));
    printf("%s\n", num10toc(12, 5));
    printf("%s\n", num10toc(123, 5));
    printf("%s\n", num10toc(1234, 5));
    printf("%s\n", num10toc(12345, 5));
    printf("%s\n", num10toc(123456, 5));

    glprizes, 01 Февраля 2011

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

    +163

    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
    #define nCyrLang 40
    
    char CyrNumLang[nCyrLang];
    
    memset(&CyrNumLang[0],0,nCyrLang);
    
    CyrNumLang[1]=7;
    CyrNumLang[2]=9;
    CyrNumLang[3]=11;
    CyrNumLang[4]=83;
    CyrNumLang[5]=84;
    CyrNumLang[6]=85;
    CyrNumLang[7]=86;
    CyrNumLang[8]=44;
    CyrNumLang[9]=87;
    CyrNumLang[10]=48;
    CyrNumLang[11]=88;
    CyrNumLang[12]=89;
    CyrNumLang[13]=53;
    CyrNumLang[14]=56;
    CyrNumLang[15]=6;

    Труъ способ инициализации массивов.

    glprizes, 01 Февраля 2011

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