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

    +135

    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
    for(int i =0; i<1;i++)
                {
                    if (reader["Brand"].ToString() == addForm.txtBrand.Text) { flag = false; } else { flag = true;  break; }
                    if (reader["Model"].ToString() == addForm.txtModel.Text) { flag = false; } else { flag = true; break; }
                    if (reader["Year"].ToString() == addForm.numYear.Value.ToString()) { flag = false; } else { flag = true; break; }
                    if (reader["Capacity"].ToString() == addForm.cboCapacity.Text) { flag = false; } else { flag = true; break; }
                    string k;
                    if (addForm.optAuto.Checked) { k = "Auto"; } else { k = "Mech"; }
                    if (reader["Control Box"].ToString() == k) { flag = false; } else { flag = true; break; }
                    if (reader["Country"].ToString() == addForm.txtCountry.Text) { flag = false; } else { flag = true; break; }
                    if (reader["Max speed"].ToString() == addForm.txtSpeed.Text) { flag = false; } else { flag = true; break; }
                    if (reader["Acceleration to 100 km/h"].ToString() == addForm.txtRacing.Text) { flag = false; } else { flag = true; break; }
                    if (reader["Engine type"].ToString() == addForm.txtEngine.Text) { flag = false; } else { flag = true; break; }
                    if (reader["Body"].ToString() == addForm.cboBody.Text) { flag = false; } else { flag = true; break; }
                    if (reader["Seats"].ToString() == addForm.numSeats.Value.ToString()) { flag = false; } else { flag = true; break; }
                    if (reader["Doors"].ToString() == addForm.numDoors.Value.ToString()) { flag = false; } else { flag = true; break; }
                    if (reader["Length"].ToString() == addForm.txtLength.Text) { flag = false; } else { flag = true; break; }
                    if (reader["Width"].ToString() == addForm.txtWidth.Text) { flag = false; } else { flag = true; break; }
                    if (reader["Power"].ToString() == addForm.txtPower.Text) { flag = false; } else { flag = true; break; }
                    if (reader["Drive Gear"].ToString() == addForm.cboTrans.Text) { flag = false; } else { flag = true; break; }
                 
                }

    Проверка на то, были изменения в форме при вызове редактирования по сравнению с записью в базе

    Запостил: MrFeathers, 20 Ноября 2011

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

    • nfs?
      Ответить
      • не :) просто предметная область у базы автомобили
        Ответить
    • как много итераций у цикла
      Ответить
      • Это эмуляция else if такая по видимому
        Ответить
        • все намного проще :) для того чтобы, когда flag стал true, все остальные if не проверялись, а выполнение сразу переходило дальше. Можно было и goto использовать конечно, но это же goto...
          Ответить
          • if else в исполнении кода обеспечит то же самое не?
            Ответить
            • но будет чудолесенка
              Ответить
              • Почему то так for(int i =0; i<1;i++) никто не делает, не стоит оправдываться.
                string k;
                if (addForm.optAuto.Checked) { k = "Auto"; } else { k = "Mech"; }
                if(
                reader["Brand"].ToString() == addForm.txtBrand.Text
                || reader["Model"].ToString() == addForm.txtModel.Text
                ||...
                ){ flag = true;}
                как вариант конкретно этого кода, но что то мне подсказывает что говнокод это не выведет, то что ведет к говнокоду находится в структуре)
                Ответить
                • да знаю, что никто не делает :) Но я же только учусь ;) мне подсказали другое решение этой задачи, и я уже переделала (конкатенировала все значения из формы в одной переменной и в другой - значения с полей, а потом эти две строки сравниваю).
                  Я думала как мне сделать, чтобы как только flag станет true дальше не проверять, мне вспомнился только break, а цикла не было, ну я его и сделала
                  Ответить
                  • исключение выбросить ещё попробуйте :)
                    Ответить
                  • Не сильно понял, что вам там посоветовали, но мне кажется лучше использовать класс св-вами, которого и является все выше перечисленное. Тогда достаночно будет реализовать IEquatable<T> и им уже сравнивать.
                    Ответить
                  • Дико извиняюсь, может я и не совсем въезжаю, но почему нельзя засунуть "ключ-значение" в массив "БД" и массив "Форма" и найти их расхождение?
                    ну возможно и не совсем массив, но подобная структура данных
                    Ответить
              • Замутить такое:

                int calcWeight(NSString* str)
                {
                	if ([str isEqualToString:@""])
                	{
                		return 0;
                	} 
                	else if ([str isEqualToString:@"solo"])
                	{
                		return 1;
                	}
                	else if ([str isEqualToString:@"intro"])
                	{
                		return 2;
                	}
                	else if ([str isEqualToString:@"album"])
                	{
                		return 3;
                	}
                	else
                	{
                		return -createHash(str);
                	}
                }


                Религия не позволяет? :)
                Ответить
                • Что это такое "-createHash(str)", и это "isEqualTIString:@""" ?
                  Ответить
                  • [CO]это Objective C[/CO]
                    Ответить
                    • че? слушайте, я чувствую себя совершенно тупой скотиной :) какое благотворное влияние у этого сайта :3
                      Ответить
                      • Код выше на Objective C (ЯП такой).
                        CO aka "Капитан Очевидность" - это тег для выражения очевидных фактов (к примеру, ответов на вопрос "где живёт лесной хорёк"). Я тут капитаном подрабатываю на полставки.
                        Ответить
                        • спасибо, Кэп, но для меня Objective C далеко не очевидно, вот и туплю
                          Ответить
                  • NSString - строка, createHash - генерация хеша строки "-" - это минус, делает число отрицательным :)

                    Собственно это эмуляция switch case default для не перечислимого типа
                    Ответить
                • Простите, а это что?
                  Ответить
                • Просто не сильно понял, что вы этим хотели показать. Не поясните?)
                  Ответить
    • Оригинальное решение :)

      flag = addForm.txtBrand.Text != Convert.ToString(reader["Brand"])
      || addForm.txtModel.Text != Convert.ToString(reader["Model"])
      ...
      || addForm.cboTrans.Text != Convert.ToString(reader["Drive Gear"]);

      Вариант? Правда вот это ... :

      if (addForm.optAuto.Checked) { k = "Auto"; } else { k = "Mech"; }
      if (reader["Control Box"].ToString() == k) { flag = false; } else { flag = true; break; }

      Тут видимо базу надо еще корректировать =)
      Ответить
      • только сегодня до меня дошло, что можно булевской переменной присваивать логические выражения в виде сравнений, почему-то раньше мне казалось это невозможно О_о теперь буду знать
        А вот та хрень с optAuto, в базе это текстовое поле, а на форме выполнено в виде optionButton`ов, как-то так :\
        Ответить
        • Там или enum делать и хранить в базе int, т.к. коробка автоматическая тоже разная бывает, или использовать уже bool, но сверять строку в данном случае точно лишнее =)
          Ответить
          • если делать именно в базе поле bool, то при выводе этого поля в datagridview, отображались бы чекбоксы или тому подобное...
            Ответить
            • Используйте модель для хранения данных, а заполнять не через привязку а ручками =)
              Ответить
              • а если у меня будет 100500 полей в базе, тоже ручками? О_о
                Ответить
                • А пользователю, которому вы делаете программу надо 100500 полей? =) Я уверен, что пользовтелю уже десяти полей в датагриде будет много.
                  Ну первое решение которое пришло на ум (не обзательно верное): создайте класс в котором св-ва будут помеченны каким-нибуть аттрибутом, за счет которого вы и будите получать информацию о том какие св-ва надо выносить в датагрид и о том как они там будут представленны. Так можно и 100500 полей выводить. Вопрос в другом - нужно только ли вам такое?
                  Ответить
                  • ну про 100500 полей я конечно преувеличиваю :) у меня в грид выводится полей 6 или 7, а всего их 18, остальные можно просмотреть по надобности. Ну как я поняла, вы предлагаете сделать в базе поле булевское, а при заполнении грида уже смотреть в зависимости от значения поля, что туда заполнять уже строкой, так?
                    Ответить
                    • Да, это одно из возможных решений. Кстати, чем вам сheckBox'ы так не угодили?
                      Ответить
                      • Ну вот в гриде шапка столбца называется "КПП", и будут там чекбоксы, и что это такое? Как понять что имелось в виду под отмеченным\не отмеченным.
                        Ответить
                        • Сначала прочитал как
                          На гриде и шапка горит
                          Ответить
                        • показать все, что скрытоСамка в треде! Все в машину!
                          Ответить
                          • Скорее беги в будку самоубийств, там безопасно!
                            Ответить
                            • У нас в городе таких нет.
                              Ответить
                              • Телефонная вполне сойдёт: просто прыгни в неё с 9 этажа.
                                Ответить
                                • Ты уж определись: бежать или прыгать?
                                  Ответить
                                  • сначала бежать, потом прыгать
                                    Ответить
                                    • Не, спасибо. Я лучше тебя потроллю.
                                      Ответить
                                      • I LOL'D.
                                        Ответить
                                      • .
                                                                      ____                                                      
                                                             ,wM*"""       ""*Mw_        LOL I TROLL YOU                   _,we*
                                                          ,#"                    "W,                                       f    
                                                        ,"                          *_                                     f    
                                                       /                 __wwwwwww   'C                              ____  |    
                                                      ,                 we**********" ]        LOLLOLLOLLOLLOLLO,#"""  `` `$    
                                                      f                            ,_  $       LOLLOLLOLLOLLOLa"LOLLOL     dC   
                                                     qC                   /`'          ]       LOLLOLLOLLOLLa"OLLOLLOL      L   
                                                _awwwdL                    /\     /\    L      LOLLOLLOL,a*"LLOLLOLLOL      k   
                                             ar"__,_awL                   "\/     \/    L      LOLLOL,wf`LLOLLOLLOLLOL      |   
                                           a@m""      $                 7x  v_______] ~ L_     LOLL,M"LLOLLOLLO #*@**~~~-gr |   
                                          #Mww_       ]                .    ,|||||||\" gC ```""""MMmw~wwwwwwwgM*k*LOLLOLa"  $   
                                          F    `""**~wwb_,,,_____           [[[[[[[[[  f      ,#"LLOLLOLLOL,#"  A $LOL #    $   
                                          L             K        ``"""""*****Mwwww_aQ,#,___ ,#"LOLLOLLOLLOa*`LOLLOLLOL#     [   
                                         j               h_                  ,d     ,"   ,a"*^ wwwwwwwwMGa,,_>*$    y"      $   
                                         ]                 ^w_              *    ,w*   a*`          ,N`      @w   p'        $   
                                          L                  `*ww,__        _,w*"   ,#"            m"       *` L,#          '"""
                                          $                           `"""""      a*             <@ww_,_      ,M`               
                                           L                                   ,M"                      `"**w*
                                        Ответить
                                        • Ай малаца Тарас. Я уже давно эту пикчу хотел запостить.
                                          Ответить
                                • показать все, что скрытоТелефонных будок у нас нет с тех пор, как СССР развалился.
                                  Ответить
                          • что вы тут флуд развели? лучше бы по коду что-нибудь сказали, чтобы такого я больше не писала
                            Ответить
                            • Вижу ты здесь недавно.
                              Тут просто просится Dictionary контролов
                              Тут так всегда.
                              "Seats" -numSeats, "Body"-cboBody "Brand"-txtBrand
                              PS. Больше так не пиши.
                              и цикл по листу строк.
                              Ответить
                              • благодарю за советы ;)
                                Унать бы теперь как делать Dictionary контролов
                                Ответить
    • Женское население на ГК увеличивается. Интересная тенденция.
      Ответить
    • Код говно, афтар мудак.
      Ответить
      • судя по аватарке у автора просто баттхёрт
        Ответить
        • У женщин бывает батхерт?
          Ответить
          • у тебя явно недотрах ;)
            Ответить
            • казалось бы, странно: он нас всех уже тут за€б@л
              Ответить
              • так все ж логично: у него в жизни недотрах, он ебет мозги людям в интернете :)
                Ответить
                • > ебет
                  У нас тут, конечно, не институт благородных девиц. Но ужас же.
                  Ответить
              • причем следует уточнить: именно за, а не вы.
                Ответить
              • > нас всех уже тут за€б@л
                а мне он доставляет своей тупостью и ограниченностью.
                забавно наблюдать эволюцию - как он новые слова учит. вот чаны недавно открыл.
                вообще-то подобные идиоты нужны, просто сей поциент стал запредельно уныл (он и раньше был гумном), но сейчас вообще никакой, только перевод стрел в стиле "нет, это ты", "это тебя" итд.
                Ответить
              • >всех уже тут за€б@л
                Ромка, ты уже до матов опустился? Я тревожусь за твою дальнейшую судьбу.
                Ответить
                • >опустился
                  Опустили тут Алехуя и тебя.
                  Ответить
                  • Пруф или не было?
                    Ответить
                    • Да пожалуйста.

                      http://govnokod.ru/8544#comment120591
                      http://govnokod.ru/8544#comment120782

                      Но замечу - память у тебя какая-то куриная.
                      Ответить
                      • А я причём здесь? Скорее это тебя опустили, когда ты залогинился под моим акком. Не делай так больше, чтобы тебя больше не опускали.
                        Ответить
                        • >А я причём здесь?
                          Потому что ты это твои слова. А сейчас ты начинаешь петь знакомую песню:

                          >Это писал не я,
                          >Проблемы в заде не у меня

                          Но в одном ты прав - писать под твоим акком - запомоится на всю жизнь.
                          Ответить
                        • >Не делай так больше, чтобы тебя больше не опускали.

                          >НЕ делай так больше,
                          >чтобы тебя больше НЕ опускали.


                          Буду так делать чтоб меня НЕ опускали и впредь. Потому что в отличие от тебя опущенца я считаю это позором.

                          И давай, продожай кукарекать, что это я под твоим говноакком написал тот пост.
                          Ответить
                          • >Буду так делать чтоб меня НЕ опускали
                            Тебя уже достаточно опустили. И виной этому - ты сам. Так что это тебе уже не поможет.
                            Ответить

                            • >Не делай так больше,
                              чтобы тебя больше
                              не опускали.

                              >Не делай так больше,
                              чтобы тебя больше
                              не опускали.
                              Ответить
                              • говнохоку?
                                Ответить
                                • продолжение:
                                  Он не делал так больше,
                                  Он не делал так меньше,
                                  И его уже не опускали.

                                  Он не делал так больше,
                                  Он не делал так меньше,
                                  И теперь его вздернули.


                                  Не по самураю кимоно
                                  Ответить
                          • Ребятки, благодаря вам, мой говнокод первый в рейтинге по комментируемости за неделю, че-то вы разошлись слишком
                            Ответить
                            • Всегда пожалуйста. Не благодарите.
                              Ответить
                            • Неделя только началась.
                              Тролль lucidfoxGovno проголодался за выходные.
                              Надо его накормить говном досыта.
                              Ответить
                              • ну если вы так и будете продолжать, я думаю он и к концу недели останется первым
                                Ответить
                              • >Тролль lucidfoxGovno проголодался за выходные.
                                >Надо его накормить говном досыта.

                                Не скрывай свою истинную сущность. Показывай свой уровень опущенства всем.
                                Ответить
            • Я не слова про это не сказал в этом сообщении. Проекция, полагаю?
              Ответить
      • Советую тебе телепортироваться на forum.4game.ru. Там твой йумор оценят ;)
        Ответить
    • Я взял сотый комментарий!
      Ответить
    • показать все, что скрытоvanished
      Ответить

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