是否可以在VB中为程序创建自定义文件类型

时间:2012-12-01 23:28:20

标签: vb.net winforms file

是否可以使用可在VB程序中打开的自定义文件类型。

例如:有一个带有一些文本的文本框和一个已选中的复选框...您将保存为自定义文件类型,当您再次打开文件时,将选中复选框并显示文本框会有文字。它基本上将程序的状态保存为自定义文件类型。

E.g。 - > .pro,.lll,.hgy,.xyz,.abc

我只是好奇......这是可能的,如果可以的话,我该如何处理呢?

3 个答案:

答案 0 :(得分:2)

在使用内存数据表并对其进行序列化之前,您可以使用BinaryWriterBinaryReader执行Ichiru对我的一些项目所做的事情。

Imports System.IO

Public Class Form1

    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click

        Using bs As New BinaryWriter(File.Open("Mydata.xyz", FileMode.Create))
            bs.Write(TextBox1.Text)
            bs.Write(CheckBox1.Checked)
            bs.Close()
        End Using
    End Sub

    Public Sub New()

        ' This call is required by the designer.
        InitializeComponent()
        ' Add any initialization after the InitializeComponent() call.
        If File.Exists("Mydata.xyz") Then
            Using br As New BinaryReader(File.Open("Mydata.xyz", FileMode.Open))
                Try
                    TextBox1.Text = br.ReadString
                    CheckBox1.Checked = br.ReadBoolean
                Catch ex As EndOfStreamException
                    'Catch any errors because file is incomplete
                End Try
            End Using
        End If
    End Sub
End Class

但是.Net有一个内置的Settings Class,您可以使用它来保存您的数据。它会像这样使用

Public Class Form1

    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        My.MySettings.Default.checkbox1 = CheckBox1.Checked
        My.MySettings.Default.textbox1 = TextBox1.Text
        My.MySettings.Default.Save()
    End Sub

    Public Sub New()

        ' This call is required by the designer.
        InitializeComponent()
        ' Add any initialization after the InitializeComponent() call.

        CheckBox1.Checked = My.MySettings.Default.checkbox1
        TextBox1.Text = My.MySettings.Default.textbox1

    End Sub
End Class

enter image description here

答案 1 :(得分:1)

是的,可以创建自己的自定义文件类型。 解决此类问题的最佳方法是创建二进制编写器 在二进制编写器中,您将编写文本框的内容和复选框的状态。

写作:

BinaryWriter.Write("string")
BinaryWriter.Write(false)

读:

String str
Boolean bool
str = BinaryReader.ReadString()
bool = BinaryReader.ReadBoolean()

答案 2 :(得分:1)

除非您使用可读取此自定义扩展数据文件的可执行文件打开系统的默认应用程序设置,否则这是不可能的。

自定义扩展无法像.exe那样执行,但它们可以被.exe读取并用于配置特定.exe的设置