Модераторы: diadiavova, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> A first chance exception of type 'System.NullRefer 
V
    Опции темы
Witalij
Дата 29.10.2006, 00:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 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 прокатывает все нормально, здесь не хочет. smile 
Подскажите в какую сторону копать. Заранее благодарен. smile 
PM MAIL   Вверх
archimed7592
Дата 29.10.2006, 01:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 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
PM Jabber   Вверх
thomas
Дата 29.10.2006, 14:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доцент... почти
***


Профиль
Группа: Завсегдатай
Сообщений: 1385
Регистрация: 3.10.2006
Где: " Сказочное королевство"

Репутация: 3
Всего: 65



Witalij, 

Привет.
И еще, раз ты пишешь  Public Function AddColumn, то
 функция должна возвращать значение заданного типа, верно?
А у тебя функция ничего не возвращает. 
Ты ведь определил что, возвращаемый тип As Boolean
Так где волшебное слово Return?



--------------------
Крепко жму горло, искренне ваш Thomas. (С)vingrad
Некоторые сорта флоры буквально за одно мгновение превращают нас в фауну!
Проблемы негров шерифа не волнуют.
PM MAIL   Вверх
Witalij
Дата 29.10.2006, 20:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 10
Регистрация: 28.10.2006

Репутация: нет
Всего: нет



Цитата(thomas @ 29.10.2006,  14:13)
Witalij, 

Привет.
И еще, раз ты пишешь  Public Function AddColumn, то
 функция должна возвращать значение заданного типа, верно?
А у тебя функция ничего не возвращает. 
Ты ведь определил что, возвращаемый тип As Boolean
Так где волшебное слово Return?

HeaderColumns(HeaderColumnsIDx).DecimalLen = DecimalCount
        HeaderColumnsIDx = HeaderColumnsIDx + 1
        AddColumn = True а это что? Это и есть возращение значения "истина". Остальное еще дописывать.

    End Function
End Class

Хорошо, что archimed7592 подсказал. Была у меня идея поставить HeaderColumns.Initialize(), но и в этом случае тоже выдавал ошибку. Оказалось что нужно было каждую структуру инициализировать. 
Огромное спасибо, кто пытался помочь.


PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума VB .NET
diadiavova
  • Прежде чем задать вопрос, воспользуйтесь поиском: возможно Ваш вопрос уже обсуждался и на него был получен ответ.
  • Если такой же вопрос не найден, не стоит задавать свой вопрос в любую тему, создайте новую.
  • Заголовок темы должен отображать ее суть.
  • Содержание поста должно описывать проблему понятно, но в то же время, по возможности, лаконично. Сначала следует описать суть вопроса, потом можно привести пример кода, не вынуждайте других участников угадывать в чем Ваша проблема - телепатов здесь нет.
  • Будьте взаимно вежливы и дружелюбны.
  • При оформлении сообщений используйте форматирование, примеры кода заключайте в теги [CODE=vbnet][/CODE].
  • Также ознакомьтесь с общими правилами, действующими на всем форуме.
  • Если вопрос решен, не забывайте помечать тему решенной(вверху темы есть ссылка). Кроме того, если Вы хотите отблагодарить участников, оказавших помощь в решении, можно повысить им репутацию, в случае, если у Вас менее 100 сообщений в форуме и функция изменения репутации Вам недоступна, можете написать сюда.
  • Общие вопросы по программированию на платформе .NET обсуждаются здесь.
  • Литература по VB .NET обсуждается здесь.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, diadiavova.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB .NET | Следующая тема »


 




[ Время генерации скрипта: 0.0416 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.