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

    +165

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    static string GetRequestParam(string request)
            {
                string result="";
                int i = 4;
                for(char c=request[i];c!=' ';c=request[++i])
                    result+=c;
                return result;
            }

    Говногость, 03 Февраля 2011

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

    +161

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    String^ TDebug::GetCurrentThreadFunctionName(int CallFunctionIndex)
    {
    	return (gcnew StackTrace(true))->GetFrame(CallFunctionIndex)->GetMethod()->ToString();
    };
    
    void TDebug::ShowCurrentFunctionName(void)
    {
    	Windows::Forms::MessageBox::Show(GetCurrentThreadFunctionName(2));
    };

    Помоему, в Microsoft Visual Studio 2010 отладчик для С++\CLI давно есть. :)

    Говногость, 03 Февраля 2011

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

    +116

    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
    namespace Containers
    {
        public class TBinaryWaitingQueue<TItem> where TItem : struct
        {
            private readonly TBinaryQueue<TItem> _queue;
            TBinaryWaitingQueue(int amountOfitem)
            {
                _queue = new TBinaryQueue<TItem>(amountOfitem);
            }
    
            public void Enqueue(TItem[] items)
            {
                throw new NotImplementedException();
            }
    
            public void Enqueue(TItem[] items, int beginItem, int amountOfItem)
            {
                throw new NotImplementedException();
            }
    
            public void Dequeue(TItem[] items, int beginItem, int amountOfItem)
            {
                throw new NotImplementedException();
            }
    
            public TItem[] Dequeue(int amountOfItem)
            {
                throw new NotImplementedException();
            }
        }
    }

    Досталось в наследство от предков. Этому коду уже года 4.

    Говногость, 03 Февраля 2011

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

    +118

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    public class TWriteableForEach
    	{
    		public delegate void TForEachDelegate<TItem>(TItem item);
    
    		public static void Exec<TItem>(IList<TItem> itemsCollection, TForEachDelegate<TItem> forEachDelegate)
    		{
    			for (int i = 0; i < itemsCollection.Count(); ++i)
    				forEachDelegate(itemsCollection[i]);
    		}
    	} ;

    Велосипед с квадратными колёсами?

    Говногость, 03 Февраля 2011

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

    +116

    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
    public class TObjects
    	{
    		public delegate T DeferredConstruction<out T>();
    
    		public static void Dispose<T>(ref T objectForDispose)
    		{
    			var typeOfObjectForDispose = typeof(T);
    			if (!typeOfObjectForDispose.IsClass)
    				DisposeIfIDisposable(ref objectForDispose, typeOfObjectForDispose);
    			else
    				if (!Equals(objectForDispose, null))
    					DisposeIfIDisposable(ref objectForDispose, typeOfObjectForDispose);
    			objectForDispose = default(T);
    			//objectForDispose = (T)(object)(null);
    		}
    
    		public static void Create<T>(ref T objectForCreate, DeferredConstruction<T> newObject)
    		{
    			Dispose(ref objectForCreate);
    			objectForCreate = newObject();
    		}
      private static void DisposeIfIDisposable<T>(ref T objectForDispose, Type typeOfObjectForDispose)
            {
                bool canDisposable = (objectForDispose as IDisposable) != null;
                if (canDisposable)
                {
                    var dispose = typeOfObjectForDispose.GetMethod("Dispose");
                    dispose.Invoke(objectForDispose, new object[] { });
                }
            }
    }

    Говногость, 03 Февраля 2011

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

    +162

    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
    <?php
    $door[0]=$arResult["NAME"];
    while($ob = $res->GetNextElement()){
            $arFields = $ob->GetFields();
            $door[]=$arFields["NAME"];
    }
    $door= array_unique($door);
    $model = implode(",", $door);
    $model_polotna = explode(",", $model);
    $sz = sizeof($model_polotna);
    for ($i=0; $i<=$sz; $i++){?>
            <option id="<?echo $i;?>" value="<? echo $model_polotna[$i];?>"><?echo $model_polotna[$i];?></option>
    <?}?>

    Сайт на битриксе...

    torch1313, 03 Февраля 2011

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

    +128

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    public class TDebug
    	{
    		public static void Assert(bool condition)
    		{
    			System.Diagnostics.Debug.Assert(condition);
    #if DEBUG
    			if(!condition)
    				throw new Exception();
    #endif
    		}
    	}

    Говногость, 03 Февраля 2011

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

    +127

    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
    class TStopThreadWaiter
    	{
    		public static void Wait(Thread threadWaitededForStop)
    		{
    			var threadName = threadWaitededForStop.GetType().Name;
    			if (!threadWaitededForStop.Join(1000))
    			{
    				TErrorShower.ShowOnceIfAgree("Неудаёться остановить " + threadName + " поток. Будут предприняты попытки внештатной остановки.");
    				if (!threadWaitededForStop.Join(200))
    					threadWaitededForStop.Interrupt();
    				if (!threadWaitededForStop.Join(200))
    				{
    					TErrorShower.ShowOnceIfAgree(threadName + " поток не удалость остановить принудительно через Interrupt. Предпринимаю попытку принудительной остановки через Abort.");
    					threadWaitededForStop.Abort();
    					if (!threadWaitededForStop.Join(200))
    					{
    						TErrorShower.ShowOnceIfAgree(threadName + " поток не удалость остановить принудительно через Abort. Завершаем приложение.");
    						Application.Exit();
    					}
    				};
    			};
    		}
    	}

    Говногость, 03 Февраля 2011

    Комментарии (18)
  9. Assembler / Говнокод #5500

    +263

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    :start
    call lol
    jmp start
    
    :lol
    push 9
    ret
    
    :test
    ...

    Не очевидная альтернатива jmp test

    rofl, 02 Февраля 2011

    Комментарии (18)
  10. PHP / Говнокод #5499

    +146

    1. 1
    2. 2
    //Функция some_function возвращает данные в формате var1=val1&var2=val2
    parse_str(some_function());

    Мой код примерно полуторагодовой давности.
    Разбирал старые проекты встретил и подумал - говно или имеет право на жизнь?
    Классическое

    //Функция some_function возвращает данные в формате val1:val2
    
    list ($var1, $var2) = explode(':', some_function())
    ведь будет работать медленнее, не так ли? :)

    7ion, 02 Февраля 2011

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