1. VisualBasic / Говнокод #3283

    −368

    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
    Public Function Chten(adr As String, TK As Boolean) As String
    Dim str As String
    Dim strr As String
    Dim i As Long
    If DirectoryExists(adr) = True Then
      Dim FLong As Long
      Open adr For Binary As #1
      FLong = Loc(1)
      Do While FLong < LOF(1)
        str = str + Input(1, #1)
        FLong = Loc(1)
      Loop
      Close #1
      strr = str
      If TK = True Then
      strr = ""
      Dim j As Long
      j = Len(str)
      For i = 1 To j
        If ((i Mod 8) = 0) Or (i = j) Then
            strr = strr + RTK(Mid(str, 1, 8))
            str = Mid(str, 9)
        End If
      Next
      End If
      Chten = strr
    End If
    End Function
    
    'есть ли
    'видно что функцию он где-то взял - см. другой стиль именования переменных и отступы
    'но при этом сама и функция тоже попахивает
    Public Function DirectoryExists(ByVal strPathName As String) As Boolean
        Dim DirectoryFound As String
        Const errPathNotFound As Integer = 76
        On Error GoTo 0
        DirectoryFound = Dir(strPathName, vbDirectory)
        If (Len(DirectoryFound) = 0 Or Err = errPathNotFound) Then
            DirectoryExists = False
        Else
            DirectoryExists = True
        End If
    End Function

    лаба моего бывшего однокурсника, весь остальной код - в таком же стиле
    вчера искал кой-чего - наткнулся на архив старых лаб моих одногрупников и их предшественников.
    Эта наверно одна из самых адекватных, потому что хоть можно сходу понять что она делает
    и писал её человек хоть немного выкупающий что он пишет и тем не менее...

    3.14159265, 21 Мая 2010

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

    −99

    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
    'Поиск с использованием Mid()
    '-------
    Dim B
    'переменная Б - номер символа
    Dim foundn
    ' номер найденной строки
    Dim A As String
    'A - текст в котором ищем
    Dim find As String
    '--------
    A="this is text ! ololo 12345 abcd"
    Call found("ololo",1)
     
    Function found(Text As String, start)
    B = start
    find = Text
    Do While Not (Mid(A, B, Len(find)) = find)
    B = B + 1
    If B > 1000000 Then
    MsgBox ("overfloow")
    'если номер символа > 10000000 - остановка процесса
    End
    End If
    Loop
    foundn = B
    End Function

    Поиск в string

    hromjo, 17 Мая 2010

    Комментарии (7)
  3. VisualBasic / Говнокод #3185

    −103

    1. 001
    2. 002
    3. 003
    4. 004
    5. 005
    6. 006
    7. 007
    8. 008
    9. 009
    10. 010
    11. 011
    12. 012
    13. 013
    14. 014
    15. 015
    16. 016
    17. 017
    18. 018
    19. 019
    20. 020
    21. 021
    22. 022
    23. 023
    24. 024
    25. 025
    26. 026
    27. 027
    28. 028
    29. 029
    30. 030
    31. 031
    32. 032
    33. 033
    34. 034
    35. 035
    36. 036
    37. 037
    38. 038
    39. 039
    40. 040
    41. 041
    42. 042
    43. 043
    44. 044
    45. 045
    46. 046
    47. 047
    48. 048
    49. 049
    50. 050
    51. 051
    52. 052
    53. 053
    54. 054
    55. 055
    56. 056
    57. 057
    58. 058
    59. 059
    60. 060
    61. 061
    62. 062
    63. 063
    64. 064
    65. 065
    66. 066
    67. 067
    68. 068
    69. 069
    70. 070
    71. 071
    72. 072
    73. 073
    74. 074
    75. 075
    76. 076
    77. 077
    78. 078
    79. 079
    80. 080
    81. 081
    82. 082
    83. 083
    84. 084
    85. 085
    86. 086
    87. 087
    88. 088
    89. 089
    90. 090
    91. 091
    92. 092
    93. 093
    94. 094
    95. 095
    96. 096
    97. 097
    98. 098
    99. 099
    100. 100
    Function preview()
    On Error GoTo stp
    Image2.Visible = False
    Image3.Visible = False
    Image4.Visible = False
    Image5.Visible = False
    Image6.Visible = False
    Image7.Visible = False
    Image8.Visible = False
    Image9.Visible = False
    Image10.Visible = False
    Image11.Visible = False
    Image12.Visible = False
    Image13.Visible = False
    Image14.Visible = False
    Image15.Visible = False
    Image16.Visible = False
    Image17.Visible = False
    
    File1.ListIndex = 0
    temp = File1.path & "\" & File1.FileName
    Image2.Picture = LoadPicture(temp)
    Image2.ToolTipText = File1.FileName
    Image2.Visible = True
    
    File1.ListIndex = 1
    temp = File1.path & "\" & File1.FileName
    Image3.Picture = LoadPicture(temp)
    Image3.ToolTipText = File1.FileName
    Image3.Visible = True
    
    File1.ListIndex = 2
    temp = File1.path & "\" & File1.FileName
    Image4.Picture = LoadPicture(temp)
    Image4.ToolTipText = File1.FileName
    Image4.Visible = True
    
    File1.ListIndex = 3
    temp = File1.path & "\" & File1.FileName
    Image5.Picture = LoadPicture(temp)
    Image5.ToolTipText = File1.FileName
    Image5.Visible = True
    
    File1.ListIndex = 4
    temp = File1.path & "\" & File1.FileName
    Image6.Picture = LoadPicture(temp)
    Image6.ToolTipText = File1.FileName
    Image6.Visible = True
    
    File1.ListIndex = 5
    temp = File1.path & "\" & File1.FileName
    Image7.Picture = LoadPicture(temp)
    Image7.ToolTipText = File1.FileName
    Image7.Visible = True
    
    File1.ListIndex = 6
    temp = File1.path & "\" & File1.FileName
    Image8.Picture = LoadPicture(temp)
    Image8.ToolTipText = File1.FileName
    Image8.Visible = True
    
    File1.ListIndex = 7
    temp = File1.path & "\" & File1.FileName
    Image9.Picture = LoadPicture(temp)
    Image9.ToolTipText = File1.FileName
    Image9.Visible = True
    
    File1.ListIndex = 8
    temp = File1.path & "\" & File1.FileName
    Image10.Picture = LoadPicture(temp)
    Image10.ToolTipText = File1.FileName
    Image10.Visible = True
    
    File1.ListIndex = 9
    temp = File1.path & "\" & File1.FileName
    Image11.Picture = LoadPicture(temp)
    Image11.ToolTipText = File1.FileName
    Image11.Visible = True
    
    File1.ListIndex = 10
    temp = File1.path & "\" & File1.FileName
    Image12.Picture = LoadPicture(temp)
    Image12.ToolTipText = File1.FileName
    Image12.Visible = True
    
    File1.ListIndex = 11
    temp = File1.path & "\" & File1.FileName
    Image13.Picture = LoadPicture(temp)
    Image13.ToolTipText = File1.FileName
    Image13.Visible = True
    
    File1.ListIndex = 12
    temp = File1.path & "\" & File1.FileName
    Image14.Picture = LoadPicture(temp)
    Image14.ToolTipText = File1.FileName
    Image14.Visible = True
    
    File1.ListIndex = 13
    temp = File1.path & "\" & File1.FileName
    Image15.Picture = LoadPicture(temp)

    Это код функции для реализации предосмотра изображений в папке.
    Да, массивы, однако, лучший вариант чем этот :)

    ecco, 08 Мая 2010

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

    −359

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    Private Function Leto(ByVal Dat1 As Date) As Boolean
    Return IIf(Dat1.Month > 3 And Dat1.Month < 9, True, False)
    End Function
    
    Private Function Bas(ByVal Cost1 As Decimal, ByVal Kol1 As Integer)
    Return Cost1 * Kol1
    End Function

    вообще это по линку cfdevа лежало в #3142
    http://www.sql.ru/forum/actualthread.aspx?bid=9&tid=467673&hl=

    но он не запостил самое гавно - то есть этот кусок
    и его походу мало кто заметил

    3.14159265, 07 Мая 2010

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

    −114

    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
    Public Function Cost(ByVal Vip1 As Boolean, ByVal Dat1 As Date, ByVal Kol1 As Integer, ByVal Cost1 As Decimal) As Decimal
    
            If Vip1 Then
                Return Bas(Cost1, Kol1) * 0.9 + IIf(Cost1 * Kol1 < 50, 50, Bas(Cost1, Kol1) * 0.11)
            Else
                Dim Sk1 As Decimal
                If Leto(Dat1) Then
                    Sk1 = IIf(Bas(Cost1, Kol1) < 1000, 2, 3)
                Else
                    Sk1 = IIf(Bas(Cost1, Kol1) < 1100, 3, 0)
                End If
                Dim Sk2 As Decimal = IIf(Kol1 > 500, 5, 0)
                Dim Sk3 As Decimal
                If Leto(Dat1) Then
                    Sk3 = IIf(Bas(Cost1, Kol1) < 100, 100, Bas(Cost1, Kol1) * 0.1)
                Else
                    Sk3 = IIf(Bas(Cost1, Kol1) < 110, 110, Bas(Cost1, Kol1) * 0.11)
                End If
                Return (Bas(Cost1, Kol1) - Bas(Cost1, Kol1) * Sk1 * 100 - Bas(Cost1, Kol1) * Sk2 * 100 + Sk3)
            End If
        End Function

    Стандартный ынтырпрайз-говнокод, но изюминка, собсно, не в нём, а в нём:

    http://www.sql.ru/forum/actualthread.aspx?bid=9&tid=467673&hl=

    2striker. теперь предпросмотр показывает всегда не php, а си. Спасибо за фикс.

    cfdev, 01 Мая 2010

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

    −86

    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
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    93. 93
    94. 94
    95. 95
    96. 96
    97. 97
    98. 98
    99. 99
    using System;
    using System.Web;
    using MaxPro;
    
    namespace HandlerFile
    {
    	public class FileHttpHandler : IHttpHandler
    	{
    		// Переопределяем метод ProcessRequest.
    		public void ProcessRequest(HttpContext context)
    		{
    			//var
    			Byte[] oImg;
    			Int32 iId=0;
    			Int32 iRemInt=0;
    			//var Zap
    			Int32 iNum=0;
    			Exception oErr;
    			Object[,] oZap=new Object[0,0];
    			//end var
    			if(All.IsInteger(context.Request.QueryString["iId"]))
    			{
    				iId=Convert.ToInt32(context.Request.QueryString["iId"]);
    				iNum=Ow.iZap1i("OneWindow.Procedure173","@iId",iId,out oZap,out oErr);
    			}
    			else if(All.IsInteger(context.Request.QueryString["iRemInt"]))
    			{
    				iId=Convert.ToInt32(context.Request.QueryString["iRemInt"]);
    				iNum=Ow.iZap1i("OneWindow.Procedure174","@iRemInt",iRemInt,out oZap,out oErr);
    			}
    			if(iNum>0)
    			{
    				oImg=(Byte[])oZap[0,0];
    				//генерация бинарного потока
    				/* Возможно пригодится, хотя ясности нет зачем,
    				 * но когда ie сбоит и не открывает файл, то это помогает, особенно ClearHeaders
    				 * Response.ClearContent()
    				 * Response.ClearHeaders()
    				 *///
    				context.Response.ContentEncoding=System.Text.Encoding.GetEncoding("UTF-8");
    				context.Response.Charset="UTF-8";
    				context.Request.ContentEncoding=System.Text.Encoding.UTF8;
    				switch (Convert.ToString(oZap[2,0]))
    				{
    					case "gif":
    						context.Response.ContentType="image/GIF";
    						context.Response.AddHeader("Content-Disposition","filename="+Convert.ToString(oZap[1,0]));
    						break;
    					case "jpg":
    						context.Response.ContentType="image/JPEG";
    						context.Response.AddHeader("Content-Disposition","filename="+Convert.ToString(oZap[1,0]));
    						break;
    					case "jpeg":
    						context.Response.ContentType="image/JPEG";
    						context.Response.AddHeader("Content-Disposition","filename="+Convert.ToString(oZap[1,0]));
    						break;
    					case "bmp":
    						context.Response.ContentType="image/BMP";
    						context.Response.AddHeader("Content-Disposition","filename="+Convert.ToString(oZap[1,0]));
    						break;
    					case "png":
    						context.Response.ContentType="image/PNG";
    						context.Response.AddHeader("Content-Disposition","filename="+Convert.ToString(oZap[1,0]));
    						break;
    					case "txt":
    						context.Response.ContentType="text/plain";
    						context.Response.AddHeader("Content-Disposition","filename="+Convert.ToString(oZap[1,0]));
    						break;
    					case "htm":
    						context.Response.ContentType="text/HTML";
    						context.Response.AddHeader("Content-Disposition","filename="+Convert.ToString(oZap[1,0]));
    						break;
    					case "html":
    						context.Response.ContentType="text/HTML";
    						context.Response.AddHeader("Content-Disposition","filename="+Convert.ToString(oZap[1,0]));
    						break;
    					case "xls":
    						context.Response.ContentType="application/vnd.ms-excel";
    						context.Response.AddHeader("Content-Disposition","attachment; filename="+Convert.ToString(oZap[1,0]));
    						break;
    					case "doc":
    						context.Response.ContentType="application/msword";
    						context.Response.AddHeader("Content-Disposition","attachment; filename="+Convert.ToString(oZap[1,0]));
    						break;
    					case "dot":
    						context.Response.ContentType="application/msword";
    						context.Response.AddHeader("Content-Disposition","attachment; filename="+Convert.ToString(oZap[1,0]));
    						break;
    					case "ppt":
    						context.Response.ContentType="application/vnd.ms-powerpoint";
    						context.Response.AddHeader("Content-Disposition","attachment; filename="+Convert.ToString(oZap[1,0]));
    						break;
    					default:
    						context.Response.AddHeader("Content-Disposition","attachment; filename="+Convert.ToString(oZap[1,0]));
    						break;
    				}
    				context.Response.OutputStream.Write(oImg,0,oImg.Length);
    			}
    		}

    а вам слабо? всё те же мос окна

    ursus, 26 Апреля 2010

    Комментарии (9)
  7. VisualBasic / Говнокод #3100

    −92

    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
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    93. 93
    94. 94
    95. 95
    96. 96
    97. 97
    98. 98
    99. 99
    public class Chart//работа с ChartSpace
    	{
    		/* String sCategories="значение1"+СимволТабуляции(символ с кодом 9)+"значение2"+...
    		 * String sValues="значение1"+СимволТабуляции(символ с кодом 9)+"значение2"+...
    		 */
    		//В VB6 также вместе со "строками через табулятор" поддерживаются одномерные массивы
    		//var
    		public const String sProcedure001 = "OneWindow.Procedure121";
    		public const String sProcedure002 = "OneWindow.Procedure122";
    		public const String sProcedure003 = "OneWindow.Procedure123";
    		public const String sProcedure004 = "OneWindow.Procedure124";
    		public const String sProcedure005 = "OneWindow.Procedure125";
    		public static Int32 iDataLiteral = Convert.ToInt32(OWC11.ChartSpecialDataSourcesEnum.chDataLiteral);
    		public static Object[,] _oZap001;
    		public static Object[,] _oZap002;
    		public static Object[,] _oZap003;
    		public static Object[,] _oZap004;
    		public static Object[,] _oZap005;
    		//end var
    		//property
    		public static Object[,] oZap001
    		{
    			//var
    			//end var
    			get
    			{
    				Int32 iNum = 0;
    				Exception oErr;
    				if (_oZap001 == null)
    				{
    					iNum = Ow.iZap0(sProcedure001, out _oZap001, out oErr);
    					if (iNum <= 0)
    					{
    						_oZap001 = null;
    					}
    				}
    				return _oZap001;
    			}
    		}
    		public static Object[,] oZap002
    		{
    			//var
    			//end var
    			get
    			{
    				Int32 iNum = 0;
    				Exception oErr;
    				if (_oZap002 == null)
    				{
    					iNum = Ow.iZap0(sProcedure002, out _oZap002, out oErr);
    					if (iNum <= 0)
    					{
    						_oZap002 = null;
    					}
    				}
    				return _oZap002;
    			}
    		}
    		public static Object[,] oZap003
    		{
    			//var
    			//end var
    			get
    			{
    				Int32 iNum = 0;
    				Exception oErr;
    				if (_oZap003 == null)
    				{
    					iNum = Ow.iZap0(sProcedure003, out _oZap003, out oErr);
    					if (iNum <= 0)
    					{
    						_oZap003 = null;
    					}
    				}
    				return _oZap003;
    			}
    		}
    		public static Object[,] oZap004
    		{
    			//var
    			//end var
    			get
    			{
    				Int32 iNum = 0;
    				Exception oErr;
    				if (_oZap004 == null)
    				{
    					iNum = Ow.iZap0(sProcedure004, out _oZap004, out oErr);
    					if (iNum <= 0)
    					{
    						_oZap004 = null;
    					}
    				}
    				return _oZap004;
    			}
    		}
    		public static Object[,] oZap005
    		{
    ...

    Я нашел абсолютное гавно!!!!!!
    Максим Прохоров торжественно спиздил исходники сайта okno.mos.ru и забыл в конторе (хуй он забыл, на самом деле я ему доступ закрыл в один прекрасный момент).
    Теперь буду выкладывать маленькими порциями. представляете, за это гавно отвалили миллионов 10. Чиновники их дружно освоили. А отвалили из нашего кармана. Я лично налоги плачу.

    ursus, 23 Апреля 2010

    Комментарии (24)
  8. VisualBasic / Говнокод #3091

    −89

    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
    Public Class TreeKuBi003
    			''' -----------------------------------------------------------------------------
    			''' <summary>
    			''' Подключение KuBi.
    			''' </summary>
    			''' <remarks>
    			''' </remarks>
    			''' <history>
    			''' 	[Max Pro]	30.01.2009	Created
    			''' </history>
    			''' -----------------------------------------------------------------------------
    			Public Const sKuBi As String = _
    			"	SELECT" & sEnter & _
    			"		iIdTreeKuBi," & sEnter & _
    			"		iIdTreeNone" & sEnter & _
    			"	FROM" & sEnter & _
    			"	    TreeKuBiNone" & sEnter & _
    			"	ORDER BY" & sEnter & _
    			"		iIdTreeKuBi;"
    		End Class		 'TreeKuBi003
    		'''

    А так Максим Прохоров использует классы. На мой вопрос - максим, а зачем тебе нужны классы?
    - ну, чтобы хранить данные.

    ursus, 23 Апреля 2010

    Комментарии (7)
  9. VisualBasic / Говнокод #3090

    −105

    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
    87. 87
    88. 88
    89. 89
    ''' <summary>
    	''' Функция взятия запроса как инструкции t/sql; рекордсет возвращается в виде oZap(,).
    	''' </summary>
    	''' <param name="eConnectString">Строка подключения к БД из списка.</param>
    	''' <param name="sText">Инструкция t/sql.</param>
    	''' <param name="oErr">Необязательная ошибка.</param>
    	''' <param name="oZap">Необязательный двумерный массив, содержащий рекордсет ― 1-ю таблицу датасета.</param>
    	''' <param name="iTimeout">Необязательное число секунд таймаута запроса.</param>
    	''' <returns>Число затронутых строк в таблице БД; если ноль, то нормально ещё, а если -1, то запрос не прошёл, если -2, то соединение не установилось.</returns>
    	''' <remarks>
    	''' </remarks>
    	''' <history>
    	''' 	[Max Pro]	11.04.2007	Created
    	''' 	[Max Pro]	08.08.2008	Реабилитировал OleDb.
    	''' 	[Max Pro]	08.04.2009	Оптимизировал как надо ReDim Preserve и переполнение Integer.
    	''' 	[Max Pro]	27.08.2009	Исправил ошибку ReDim Preserve ― было больше на 1 элемент.
    	''' </history>
    	''' -----------------------------------------------------------------------------
    	Public Function iZap(ByVal eConnectString As ConnectString, ByVal sText As String, Optional ByRef oErr As Exception = Nothing, Optional ByRef oZap(,) As Object = Nothing, Optional ByVal iTimeout As Integer = -1) As Integer
    		'#region "var"
    		Dim iX As Integer
    		Dim lY As Long
    		Dim lYTemp As Long
    		Dim i As Integer
    		Dim iZapTemp As Integer
    		'var zap
    		Dim sConnectString As String = sConStrFromEnum(eConnectString)
    		Dim oConnection
    		Dim oCommand
    		Dim oReader
    		'#end region 'var
    		'#region ini
    		If sConnectString Like "*sqloledb*" Then
    			oConnection = New OleDbConnection
    			oCommand = New OleDbCommand
    		Else
    			oConnection = New SqlConnection
    			oCommand = New SqlCommand
    		End If
    		'#end region 'ini
    		iZap = -2
    		oErr = New Exception
    		oConnection.ConnectionString = sConnectString
    		Try
    			'попытка открытия соединения
    			oConnection.Open()
    			If oConnection.State Then iZap = -1 'if <>0
    			'присвоение параметров команды
    			If iTimeout >= 0 Then oCommand.CommandTimeout = iTimeout
    			oCommand.CommandType = CommandType.Text
    			oCommand.Connection = oConnection
    			oCommand.CommandText = sText
    			'попытка выполнения команды
    			oReader = oCommand.ExecuteReader()
    			iZap = 0
    			iX = oReader.FieldCount - 1
    			lY = -1
    			lYTemp = 255
    			ReDim oZap(iX, lYTemp)
    			While oReader.Read()
    				lY += 1
    				If lY < Integer.MaxValue Then				 '2 147 483 647-1(заменил <= на < чтобы число элементов iZap не зашкалило).
    					iZapTemp = lY + 1
    					If lY > lYTemp Then
    						lYTemp += 256
    						ReDim Preserve oZap(iX, lYTemp)
    					End If
    					For i = 0 To iX
    						If IsDBNull(oReader(i)) Then oZap(i, lY) = Nothing Else oZap(i, lY) = oReader(i)
    					Next i
    				End If
    			End While
    			oReader.Close()
    			oReader = Nothing
    			oCommand = Nothing
    			iZap = iZapTemp
    			ReDim Preserve oZap(iX, iZapTemp - 1)
    			If lY >= Integer.MaxValue Then
    				oErr = New Exception(lY.ToString("# ##0") & " строк >=" & Integer.MaxValue & " (Integer.MaxValue), но массив заполнен до предела Int32 и iZap=Integer.MaxValue.")
    			End If
    		Catch oError As Exception
    			oErr = oError
    		Finally
    			If IsNothing(oConnection) = False Then
    				oConnection.Close()
    				oConnection = Nothing
    			End If
    		End Try
    	End Function	  'iZap

    А так Максим Прохоров выполняет запросы. слабо?

    ursus, 23 Апреля 2010

    Комментарии (9)
  10. VisualBasic / Говнокод #3089

    −110

    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
    ''' <summary>
    	''' Возвращает Boolean по правилам Бэйсика: если объект является ненулевым 
    числом или истиной, тогда true, иначе false; переваривает все типы.
    	''' </summary>
    	''' <param name="o"></param>
    	''' <returns></returns>
    	''' <remarks>
    	''' </remarks>
    	''' <history>
    	''' 	[Max Pro]	13.04.2007	Created
    	''' </history>
    	''' -----------------------------------------------------------------------------
    	Public Function bBoolean(ByVal o) As Boolean
    		If bIsBoolean(o) Then bBoolean = o
    	End Function
    	'''

    Расскажу немного о Максиме Прохорове. Он окончил универ им. Баумана с красным дипломом, потом работал над программой okno.mos.ru потом его взяли в частную контору на бешеные бабки.
    Это функция проверки ^

    ursus, 23 Апреля 2010

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