![]() |
|
Модераторы: diadiavova, gambit |
![]()
|
|
| Witalij |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 28.10.2006 Репутация: нет Всего: нет |
Есть класс dbf, при его использовании выдается ошибка A first chance exception of type 'System.NullReferenceException' occurred in WindowsApplication1.exe.
Использую вызов MyDBF.AddColumn("Colum 1", DBF.ColumnType.N_Decimal, 1) Public Class DBF Private HeaderColumns(255) As FieldDescriptor Private HeaderColumnsIDx As Byte Private Structure FieldDescriptor <VBFixedArray(10)> Dim FieldName() As Byte Dim FieldType As Byte Dim FieldAddr As Integer Dim FieldLen As Byte Dim DecimalLen As Byte Dim Reserved1 As Short Dim WorkId As Byte Dim Reserved2 As Short Dim SET_FIELDS As Byte <VBFixedArray(6)> Dim Reserved4() As Byte Dim Dbase4MDX As Byte Public Sub Initialize() ReDim FieldName(10) ReDim Reserved4(6) End Sub End Structure Public Enum ColumnType C_String = 67 D_Data_YYYYMMDD = 68 F_BinFPU = 70 L_Logical = 76 M_Memo = 77 N_Decimal = 78 End Enum Public Function AddColumn(ByRef Caption As String, ByVal ColType As ColumnType, ByVal Length As Short, Optional ByVal DecimalCount As Byte = 0) As Boolean Dim MkName As Long If Len(Caption) > 11 Then Exit Function ElseIf Len(Caption) < 11 Then Caption = Caption & Space(11 - Len(Caption)) End If For MkName = 0 To 10 HeaderColumns(HeaderColumnsIDx).FieldName(MkName) = Asc(Mid(Caption, MkName + 1, 1)) ' и здесь выдается ошибка, т.е. в структуру HeaderColumns не кладется не какое значение. а vb.net 2005 показывает, что неплохо ' бы подставить слово New. Next MkName HeaderColumns(HeaderColumnsIDx).FieldType = ColType HeaderColumns(HeaderColumnsIDx).FieldLen = Length HeaderColumns(HeaderColumnsIDx).DecimalLen = DecimalCount HeaderColumnsIDx = HeaderColumnsIDx + 1 AddColumn = True End Function End Class Весь в непонятках, на vb6 прокатывает все нормально, здесь не хочет. Подскажите в какую сторону копать. Заранее благодарен. |
|||
|
||||
| archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: нет Всего: 93 |
HeaderColumns(HeaderColumnsIDx).Initialize()
For MkName = 0 To 10 HeaderColumns(HeaderColumnsIDx).FieldName(MkName) = Asc(Mid(Caption, MkName + 1, 1)) Next MkName Это сообщение отредактировал(а) archimed7592 - 29.10.2006, 01:07 -------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
| thomas |
|
|||
![]() Доцент... почти ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1385 Регистрация: 3.10.2006 Где: " Сказочное королевство" Репутация: 3 Всего: 65 |
Witalij,
Привет. И еще, раз ты пишешь Public Function AddColumn, то функция должна возвращать значение заданного типа, верно? А у тебя функция ничего не возвращает. Ты ведь определил что, возвращаемый тип As Boolean Так где волшебное слово Return? -------------------- Крепко жму горло, искренне ваш Thomas. (С)vingrad Некоторые сорта флоры буквально за одно мгновение превращают нас в фауну! Проблемы негров шерифа не волнуют. |
|||
|
||||
| Witalij |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 10 Регистрация: 28.10.2006 Репутация: нет Всего: нет |
HeaderColumns(HeaderColumnsIDx).DecimalLen = DecimalCount HeaderColumnsIDx = HeaderColumnsIDx + 1 AddColumn = True а это что? Это и есть возращение значения "истина". Остальное еще дописывать. End Function End Class Хорошо, что archimed7592 подсказал. Была у меня идея поставить HeaderColumns.Initialize(), но и в этом случае тоже выдавал ошибку. Оказалось что нужно было каждую структуру инициализировать. Огромное спасибо, кто пытался помочь. |
|||
|
||||
![]()
|
| Правила форума VB .NET | |
|
|
Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, diadiavova. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | VB .NET | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |