1. Куча / Говнокод #13239

    +147

    1. 1
    Куда пропадают мои г-коды?

    Stertor, 26 Июня 2013

    Комментарии (3)
  2. Куча / Говнокод #13238

    +147

    1. 1
    Николас Вирт - Бог

    Stertor, 26 Июня 2013

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

    +143

    1. 1
    Лучший язык программирования, я считаю. Ставь лойс, если думаешь так жи

    Stertor, 26 Июня 2013

    Комментарии (2)
  4. Pascal / Говнокод #13235

    +146

    1. 1
    Приходите на наш сайт : yadelphi.ru

    Stertor, 26 Июня 2013

    Комментарии (1)
  5. Pascal / Говнокод #13234

    +141

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    function TForm1.Pars(T_, ForS, _T: string): string;
    var a, b:integer;
    	begin
    	Result := '';
    	if (T_='') or (ForS='') or (_T='') then Exit;
    	a:=Pos(T_, ForS);
    	if a=0 then Exit else a:=a+Length(T_);
    	ForS:=Copy(ForS, a, Length(ForS)-a+1);
    	b:=Pos(_T, ForS);
    	if b>0 then
    	Result:=Copy(ForS, 1, b - 1);
    	end;

    Давно хотел выложить эту дуру на форум.
    В чем лажа? Я подозреваю, что перегруженный оператор '=' применительно к строкам (сравнение двух строк) это вызов lstrcmp.
    следовательно, POS ЧУВСТВИТЕЛЬНА к регистру!! Это значит, что функция вернет фалс, сравнивая ВоТ эТО и вот это.
    Но это полбеды. Иные горемыки передают ей километровый текст в качестве шаблона - это нормально.

    И потом еще кто то наивно удивляется, почему функция пропускает нужное или хватает лишнее.

    Stertor, 26 Июня 2013

    Комментарии (16)
  6. Pascal / Говнокод #13233

    +75

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    function rus (s:string):string;             {русификатор}
    var m:integer;
    begin
    for m := 1 to length (s) do
    case s [m] of
    'А'..'п':S[m]:=chr(ord (S[m])-64);
    'р'..'я':S[m]:=chr(ord(S[m])-16);
    end;
    rus:=S; end;

    Кусок лабы на делфи

    _113, 26 Июня 2013

    Комментарии (209)
  7. Куча / Говнокод #13232

    +130

    1. 1
    <option value="Какое ваше девичья фамилия вашей матери?">Какое ваше девичья фамилия вашей матери?</option>

    Экономим на переводах...

    nonamez, 25 Июня 2013

    Комментарии (12)
  8. Pascal / Говнокод #13231

    +122

    1. 1
    Привет, посетите наш сайт [color=red]yadelphi.ru[/color]!

    Stertor, 25 Июня 2013

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

    +132

    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
    public static string[] GetLogicalDrives()
    {
    	// System.Environment.GetLogicalDrives()
    	new EnvironmentPermission(PermissionState.Unrestricted).Demand();
    	// System.IO.Directory.GetLogicalDrives()
    	new SecurityPermission(SecurityPermissionFlag.UnmanagedCode).Demand();
    
    	int logicalDrives = Win32Native.GetLogicalDrives();
    	if (logicalDrives == 0)
    	{
    		__Error.WinIOError();
    	}
    	uint num = (uint)logicalDrives;
    	int num2 = 0;
    	while (num != 0u)
    	{
    		if ((num & 1u) != 0u)
    		{
    			num2++;
    		}
    		num >>= 1;
    	}
    	string[] array = new string[num2];
    	char[] array2 = new char[]
    	{
    		'A',
    		':',
    		'\\'
    	};
    	num = (uint)logicalDrives;
    	num2 = 0;
    	while (num != 0u)
    	{
    		if ((num & 1u) != 0u)
    		{
    			array[num2++] = new string(array2);
    		}
    		num >>= 1;
    		char[] expr_6E_cp_0 = array2;
    		int expr_6E_cp_1 = 0;
    		expr_6E_cp_0[expr_6E_cp_1] += '\u0001';
    	}
    	return array;
    }

    Копался сегодня в дебрях .NET'а и нашёл 2 метода получения списка дисков:
    System.Environment.GetLogicalDrives() и System.IO.Directory.GetLogicalDrives()
    Различается код только первой срокой запроса разрешений.

    Если один метод устарел-бы, то можно было его форварднуть через атрибут TypeForwardedTo.
    Или хотя-бы объединить код вынеся запрос разрешений.

    Оба метода доступны ещё с .NET 1.1. Но вот класс DriveInfo, который появился только в .NET 2.0 использует метод Directory.GetLogicalDrives()

    Это такая "фича" с копипастом кода или тут есть какой-то сакральный смысл?

    TauSigma, 25 Июня 2013

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

    +133

    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
    private bool IsSubscriptionFree()
    {
        try
        {
            if (AccountManager.CurrentManager.CurrentSubscription != null)
            {
                if (AccountManager.CurrentManager.CurrentSubscription.IsValid)
                {
                    if (AccountManager.CurrentManager.CurrentSubscription.Name.ToLower().Contains("free") ||
                        AccountManager.CurrentManager.CurrentSubscription.Name.ToLower().Contains("trial")
                    )
                    {
                        return true;
                    }
                }
                return false;
            }
            return false;
        }
        catch (Exception)
        {
            return false;
        }
    }

    Eugene, 25 Июня 2013

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