1. C++ / Говнокод #2857

    +59.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
    void addItem(QStringList &lst, QTreeWidget *ptwg)
    {
    	bool a0 = false;
    	for (int i = 0; i < ptwg->topLevelItemCount(); ++i) {
    		if (lst.at(0) == ptwg->topLevelItem(i)->text(0)) {
    			a0 = true;
    			bool a1 = false;
    			QTreeWidgetItem *itm0 = ptwg->topLevelItem(i);
    			for (int j = 0; j < itm0->childCount(); ++j) {
    				if (lst.at(1) == itm0->child(j)->text(1)) {
    					a1 = true;
    					bool a2 = false;
    					QTreeWidgetItem *itm1 = itm0->child(j);
    					for (int k = 0; k < itm1->childCount(); ++k) {
    						if (lst.at(2) == itm1->child(k)->text(2)) {
    							a2 = true;
    							bool a3 = false;
    							QTreeWidgetItem *itm2 = itm1->child(k);
    							for (int l = 0; l < itm2->childCount(); ++l) {
    								if (lst.at(3) == itm2->child(l)->text(3)) {
    									a3 = true;
    									QTreeWidgetItem *itm3 = itm2->child(l);
    									QTreeWidgetItem *itm4 = new QTreeWidgetItem(itm3, QStringList() << "" << "" << "" << "" << lst.at(4));
    									break;
    								}
    							}
    							if (!a3) {
    								QTreeWidgetItem *itm3 = new QTreeWidgetItem(itm2, QStringList() << "" << "" << "" << lst.at(3));
    								QTreeWidgetItem *itm4 = new QTreeWidgetItem(itm3, QStringList() << "" << "" << "" << "" << lst.at(4));
    							}
    							break;
    						}
    					}
    					if (!a2) {
    						QTreeWidgetItem *itm2 = new QTreeWidgetItem(itm1, QStringList() << "" << "" << lst.at(2));
    						QTreeWidgetItem *itm3 = new QTreeWidgetItem(itm2, QStringList() << "" << "" << "" << lst.at(3));
    						QTreeWidgetItem *itm4 = new QTreeWidgetItem(itm3, QStringList() << "" << "" << "" << "" << lst.at(4));
    					}
    					break;
    				}
    			}
    			if (!a1) {
    				QTreeWidgetItem *itm1 = new QTreeWidgetItem(itm0, QStringList() << "" << lst.at(1));
    				QTreeWidgetItem *itm2 = new QTreeWidgetItem(itm1, QStringList() << "" << "" << lst.at(2));
    				QTreeWidgetItem *itm3 = new QTreeWidgetItem(itm2, QStringList() << "" << "" << "" << lst.at(3));
    				QTreeWidgetItem *itm4 = new QTreeWidgetItem(itm3, QStringList() << "" << "" << "" << "" << lst.at(4));
    			}
    			break;
    		}
    	}
    	if (!a0) {
    		QTreeWidgetItem *itm0 = new QTreeWidgetItem(ptwg, QStringList() << lst.at(0));
    		QTreeWidgetItem *itm1 = new QTreeWidgetItem(itm0, QStringList() << "" << lst.at(1));
    		QTreeWidgetItem *itm2 = new QTreeWidgetItem(itm1, QStringList() << "" << "" << lst.at(2));
    		QTreeWidgetItem *itm3 = new QTreeWidgetItem(itm2, QStringList() << "" << "" << "" << lst.at(3));
    		QTreeWidgetItem *itm4 = new QTreeWidgetItem(itm3, QStringList() << "" << "" << "" << "" << lst.at(4));
    	}
    }

    Функция = ) Добавляет в контрол иерархического дерева (5 уровней) элемент, не перерисовывая при этом само дерево, не закрывая никаких открытых веток.

    JC_NVKZ, 24 Марта 2010

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

    +113

    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
    public partial class Form1 : Form
    {
    	// ...
    
    	public Form1()
    	{
    		InitializeComponent();
    
    		// If Connection string empty
    		if (XmlConfig.GetPropetry("ConnectionString", "ConnectionString") == "")
    		{
    			MessageBox.Show("Type connection option in the next window", "Connection String is empty", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
    			frmOptions dlg = new frmOptions();
    			dlg.ConnectionString = true;
    			if (dlg.ShowDialog() == DialogResult.OK)
    			{
    				System.Diagnostics.Process.Start(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Application.exe"));
    			}
    			Close();
    		}
    		// ...
    	}
    	// ...
    }

    В конструкторе главного окна приложения проверяется есть ли в конфиге строка подключения к базе. Если нет, то открывается окошко с опциями для ввода параметров подключения к базе. При успешном вводе сохраняется строка подключения в конфиг и программа перезапускается, чтобы загрузиться с новой строкой подключения))) Пришлось вот переделывать такую программу, после другого программиста. Как можно было до такого додуматься понять не могу)))

    archer, 24 Марта 2010

    Комментарии (3)
  3. PHP / Говнокод #2855

    +149.2

    1. 1
    $is_use_newstyle = ($newstyle == 1) ? 1 : 0;

    shureg, 24 Марта 2010

    Комментарии (15)
  4. SQL / Говнокод #2854

    −864.4

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    FOREACH    SELECT n.prod_code INTO _prod_code
        FROM tov_prod_link_g l, nsi_resource n
        WHERE l.prod_code = n.prod_code
        AND l.gr_id = _gr_id
        ORDER BY n.res_name
    
    LET _nn_por = _nn_por +5;
    
        UPDATE tov_prod_nn_por SET nn_por =_nn_por    WHERE prod_code = _prod_code;

    ))) такие у нас перлы выдают) вместо одного апдейта нахерачить процедуру, для некоторых это нормально)

    SERGI, 24 Марта 2010

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

    +118.4

    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
    //Находит строку и возвращает строку под ней
    public string FindRowUnder(string str)
    {
         string nextRes = string.Empty;
         var res = _oSheet.get_Range("A1", "Z100").Find(str,...);
         if (!String.IsNullOrEmpty(res))
         {
              int iCol = Convert.ToInt32(_oSheet.get_Range("A1", "Z100").Find(str...).Column);
              int iRow = Convert.ToInt32(_oSheet.get_Range("A1", "Z100").Find(str...).Row);
              iRow++;
              nextRes = _oSheet.get_Range(Alfabet.Substring(iCol - 1, 1) + iRow, Type.Missing).Value2.ToString();
         }
         return nextRes;
    }
    
    //  Находит строку и забирает 2 строки  под ней
    public string FindDoubleRowUnder(string str)
    {
          string res = _oSheet.get_Range("A1", "F100").Find(str...).Value2.ToString();
          if (!String.IsNullOrEmpty(res))
          {
              int iCol = Convert.ToInt32(_oSheet.get_Range("A1", "F100").Find(str...).Column);
              int iRow = Convert.ToInt32(_oSheet.get_Range("A1", "F100").Find(str...).Row);
              iRow = iRow + 1;
              if (_oSheet.get_Range(Alfabet.Substring(iCol - 1, 1) + iRow, Type.Missing).Value2 != null)
              {
                   nextRes = _oSheet.get_Range(Alfabet.Substring(iCol - 1, 1) + iRow, Type.Missing).Value2.ToString();
              }
              iRow++;
              if (_oSheet.get_Range(Alfabet.Substring(iCol - 1, 1) + iRow, Type.Missing).Value2 != null)
              {
                   nextRes += " " + _oSheet.get_Range(Alfabet.Substring(iCol - 1, 1) + iRow, Type.Missing).Value2;
              }
         }
         return nextRes.Trim();
    }
    
    //  Находит строку и забирает 3 строки  под ней
    public string FindTripleRowUnder(string str)
    {
         ... думаю писать не стоит так как там почти то же самое, что и выше
    }

    Интересно, когда надо будет получить 4 или 5 строк товарищ будет писать еще один метод?

    Karasb, 24 Марта 2010

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

    +175.6

    1. 1
    2. 2
    3. 3
    $header = fopen('base.txt', "r");
    $base = file('base.txt');
    fclose($header);

    Navin, 23 Марта 2010

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

    +118

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    <asp:Repeater runat="server" ID="rpAccountType">
    	<ItemTemplate>
    		<input type="checkbox" name="cbGroupAccountType" id="cbAccountType_<%#((KeyValuePair<string, object>)Container.DataItem).Value %>" value="<%#((KeyValuePair<string, object>)Container.DataItem).Value %>" <asp:Literal Id="lAccountTypeChecked" runat="server" />/><label for="cbAccountType_<%#((KeyValuePair<string, object>)Container.DataItem).Value %>"><asp:Literal runat="server" ID="lAccountTypeName" /></label><br />
    	</ItemTemplate>
    </asp:Repeater>

    ASP.NET. Значения генерируемых чекбоксов, в задумке, еще и на code-behind сильно влияют.

    terR0Q, 23 Марта 2010

    Комментарии (2)
  8. JavaScript / Говнокод #2850

    +144.4

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    for (var i = 1; i <= 4; i++) {
                var el = O.get('#upcoming' + i);
                if (el == undefined) {
                    continue;
                }
                O.countdown('#upcoming' + i, '<b>%D% %DT% %H% %HT% %M% %MT% %S% %ST%</b>', {
                    leadingZeroes: false,
                    overrideSeconds: O.get('#upcoming' + i + ' input').value
                });
            }

    отличный каунт даун от Opera
    http://my.opera.com/community/countup/

    дергаем данные с сервера до посинения
    фаерфокс умер через 5 минут)

    nur, 23 Марта 2010

    Комментарии (3)
  9. PHP / Говнокод #2849

    +175.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
    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
    <?php
    
    class myUser extends sfBasicSecurityUser
    { 
    
     /**
       * Determin if teacher is in general school.
       * Optionally return custom value for either true or false.
       *
       * @param mixed $true Optional value if true.
       * @param mixed $false Optional value if false.
       * @return mixed
       */
      public function hasFreeAccount($true = null, $false = null)
      {
        $isFreeAccount = true;
        if ($isFreeAccount)
        {
          return isset($true) ? $true : true;
        }
    
        return isset($false) ? $false : false;
      }
    
      /**
       * Determin if teacher is in subscriber school.
       *
       * @param mixed $true Optional value if true.
       * @param mixed $false Optional value if false.
       * @return mixed
       */
      public function hasSubscriberAccount($true = null, $false = null)
      {
        return $this->hasFreeAccount($false, $true);
      }
    
    }

    vatson, 23 Марта 2010

    Комментарии (10)
  10. Си / Говнокод #2848

    +96

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    char str[STR_LEN + 1]; 
    
    strncpy(str, inpust_str, STR_LEN);
    xxx[STR_LEN] = '\0';
    
    str[ strlen(str) ] = ':';
    str[ strlen(str) + 1 ] = '1';
    str[ strlen(str) + 2 ] = '\0';

    Попытка добавить ":1" к строке.

    Первым же "str[ strlen(str) ] = ':';" гробим нулевой символ в конце строки. Дальнейшие вызовы "strlen" - просто фигня какая-то. Ну и портим память.

    benderlog, 23 Марта 2010

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