Структуры в vb.net

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Re: Структуры в vb.net

Сообщение MIT » 26.03.2009 (Чт) 22:40

Просто событие NumericUpDown1.ValueChanged происходит раньше Load`а, это нормально. Просто поставь условие, что если FileData is nothing, то ничего не делать
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

RCLIO
Новичок
Новичок
 
Сообщения: 30
Зарегистрирован: 20.03.2009 (Пт) 18:23

Re: Структуры в vb.net

Сообщение RCLIO » 26.03.2009 (Чт) 22:53

Помогло. Спасибо.

Похоже, что я от темы отклонился... Структуры то тут не причем :oops: .

RCLIO
Новичок
Новичок
 
Сообщения: 30
Зарегистрирован: 20.03.2009 (Пт) 18:23

Re: Структуры в vb.net

Сообщение RCLIO » 28.03.2009 (Сб) 22:33

Запись в файл:
MIT писал(а):Вот запись:
Код: Выделить всё
    Public Function WriteFile(ByVal path As String, ByVal File As FileData, ByVal overwrite As Boolean) As Boolean
        If IO.File.Exists(path) And Not overwrite Then Return False

        Try
            Using fs As New IO.FileStream(path, IO.FileMode.Create, IO.FileAccess.Write)
                Dim bw As New IO.BinaryWriter(fs)
                Dim buff() As Byte
                With File
                    buff = System.Text.ASCIIEncoding.Default.GetBytes(.header)
                    ReDim Preserve buff(4)
                    bw.Write(buff)
                    bw.Write(.CountOfItems)
                    For i As Integer = 0 To .CountOfItems - 1
                        With .Data(i)
                            bw.Write(.id)

                            buff = System.Text.ASCIIEncoding.Default.GetBytes(.text1)
                            ReDim Preserve buff(23)
                            bw.Write(buff)

                            bw.Write(.CountOfSubItems)

                            For j As Integer = 0 To .CountOfSubItems - 1
                                buff = System.Text.ASCIIEncoding.Default.GetBytes(.Data(j))
                                ReDim Preserve buff(239)
                                bw.Write(buff)
                            Next
                        End With
                    Next

                    buff = System.Text.ASCIIEncoding.Default.GetBytes(.footer)
                    ReDim Preserve buff(4)
                    bw.Write(buff)
                End With
            End Using

            Return True
        Catch ex As Exception
            Return False
        End Try
    End Function
Наверное тоже работает верно :)



Если структура сложна, то слишком наворочено получается.

Было бы неплохо, что-то вроде:
Код: Выделить всё
FilePut(1,MyStruct, 1)

Но в этом случае в записанном файле появляются лишние (для меня) данные :(

Как быть?

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Re: Структуры в vb.net

Сообщение MIT » 28.03.2009 (Сб) 22:45

FilePut - позапрошлый век. Просто напиши процедуру, которая будет писать твои данные по твоим правилам, передавай ей структуру и stream (или BinaryWriter)
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

Пред.

Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

    TopList