Type

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

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

kif
Постоялец
Постоялец
 
Сообщения: 736
Зарегистрирован: 10.12.2001 (Пн) 18:06
Откуда: Украина, Одесса

Type

Сообщение kif » 03.12.2004 (Пт) 12:45

В VB6 была конструкция type, что заменяет ее в vb.net.

Если можно маленький примерчик.
Братья и сестры, что вы делаете???
Ведь вы же братья и сестры.

Ronin
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 635
Зарегистрирован: 13.02.2002 (Ср) 14:16
Откуда: Россия, Москва

Сообщение Ronin » 03.12.2004 (Пт) 13:22

Доброго времени суток!

В VB .Net это заменили на Structure. Это почти такой-же класс... Но есть некоторые отличия, которые найдешь в книгах или MSDN.
Примеров море, ну сто могу написать, сейчас что-нибудь придумаю...:

Public Structure Point
    Private _X As Integer
    Private _Y As Integer

    Public Property X() As Integer
        Get
            Return _X
        End Get
        Set(ByVal value As Integer)
            _X = value
        End Set
    End Property
    Public Property Y() As Integer
        Get
            Return _Y
        End Get
        Set(ByVal value As Integer)
            _Y = value
        End Set
    End Property
End Structure
С уважением,
Игорь Шувалов aka Ronin

kif
Постоялец
Постоялец
 
Сообщения: 736
Зарегистрирован: 10.12.2001 (Пн) 18:06
Откуда: Украина, Одесса

Сообщение kif » 03.12.2004 (Пт) 15:11

вот, вот. у меня в связи с этим вопрос:

в vb6 можно было сохранить мой type в файл:
open "c:\1.txt" for binary as f
put #f,,mytype
close f

а vb.net меня помылает, говорит, что сохранять можно только стандартные типы

как быть?
Братья и сестры, что вы делаете???
Ведь вы же братья и сестры.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 03.12.2004 (Пт) 15:23

RTFMить, и только так :)

Создаём сериалайзер (binary или SOAP), скармливаем ему объект с целью сохранения оного в поток. Потом берём этот поток и кидаем его в файл :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Ronin
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 635
Зарегистрирован: 13.02.2002 (Ср) 14:16
Откуда: Россия, Москва

Сообщение Ronin » 03.12.2004 (Пт) 15:28

Доброго времени суток!

Решение - сериализация.

Imports System.IO
Imports System.Runtime.Serialization
Public Class Class1
    Sub Cash()
        Dim Fs As New FileStream("Type.dat", FileMode.Create)
        Dim Frmtr As Formatter
        Frmtr.Serialize(Fs, New Point)
        Fs.Close()
    End Sub
End Class
С уважением,
Игорь Шувалов aka Ronin

kif
Постоялец
Постоялец
 
Сообщения: 736
Зарегистрирован: 10.12.2001 (Пн) 18:06
Откуда: Украина, Одесса

Сообщение kif » 03.12.2004 (Пт) 15:58

Спасибо огромное.

Получается что методов чтения и записи как таковых не существует?

Вообще тежело без книги.
Братья и сестры, что вы делаете???
Ведь вы же братья и сестры.

Ronin
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 635
Зарегистрирован: 13.02.2002 (Ср) 14:16
Откуда: Россия, Москва

Сообщение Ronin » 03.12.2004 (Пт) 16:06

Доброго времени суток!

Ну если ты только сам не создашь такой класс (структуру) с процедурой, например SaveToFile, то операций записи просто класса нет. Если очень надо (не возиться с потоками) то создай такую процедуру и вызывай ее, когда нужно записать (дописать) файл на диск. Ну и соответственно пиши и функцию чтения. Эксперементируй.
С уважением,
Игорь Шувалов aka Ronin

kif
Постоялец
Постоялец
 
Сообщения: 736
Зарегистрирован: 10.12.2001 (Пн) 18:06
Откуда: Украина, Одесса

Сообщение kif » 03.12.2004 (Пт) 16:16

Я дико извиняюсь, но как потом считать эту структуру?
Братья и сестры, что вы делаете???
Ведь вы же братья и сестры.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 03.12.2004 (Пт) 16:19

Все действия повторить в обратном порядке - открыть файл в поток и воссоздать объект из оного :)
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

Ronin
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 635
Зарегистрирован: 13.02.2002 (Ср) 14:16
Откуда: Россия, Москва

Сообщение Ronin » 03.12.2004 (Пт) 16:28

Доброго времени суток!

Ты имеешь ввиду десериализовать?
То это делается так:
Ах, да, забыл сказать, что надо поставить атрибут перед классом(структурой), которую можно будет сериализовать:

<Serializible()> _
Public Structure Point
...

Так вот, десериализация:

Dim Fs As FileStream("point.dat", FileMode.Open)
Dim r As StreamReader(Fs)
Dim p As New Point
p = CType(Formatter.Deserialize(Fs), Point)
fs.Close()
С уважением,
Игорь Шувалов aka Ronin

kif
Постоялец
Постоялец
 
Сообщения: 736
Зарегистрирован: 10.12.2001 (Пн) 18:06
Откуда: Украина, Одесса

Сообщение kif » 03.12.2004 (Пт) 16:31

спасибо

еще один этап пройден - это уже радует
Братья и сестры, что вы делаете???
Ведь вы же братья и сестры.

Ronin
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 635
Зарегистрирован: 13.02.2002 (Ср) 14:16
Откуда: Россия, Москва

Сообщение Ronin » 03.12.2004 (Пт) 16:34

Доброго времени суток!

Рад за тебя!! Здесь все легко...
С уважением,
Игорь Шувалов aka Ronin


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

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

Сейчас этот форум просматривают: Google-бот и гости: 16

    TopList