1

VBプログラムで開くカスタムファイルタイプを持つことは可能ですか?

例:テキストを含むテキストボックスとチェックボックスがオンになっている...カスタムファイルタイプに保存し、ファイルを再度開くと、チェックボックスがオンになり、テキストボックスに文章。基本的に、プログラムの状態をカスタムファイルタイプに保存します。

例->.pro、.lll、.hgy、.xyz、.abc

私はただ興味があります...これは可能ですか?もしそうなら、私はこれにどのようにアプローチしますか?

4

3 に答える 3

3

Ichiruが述べていることは、メモリ内のデータテーブルを使用してシリアル化する前に、いくつかのプロジェクトで行ったBinaryWriterBinaryReaderを使用して実行できます。

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には、データを永続化するために使用できる設定クラスが組み込まれています。このように使用されます

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

ここに画像の説明を入力してください

于 2012-12-02T00:42:23.593 に答える
1

はい、独自のカスタムファイルタイプを作成することは可能です。この種の問題を回避する最善の方法は、バイナリライターを作成することです。バイナリライター では、テキストボックスの内容とチェックボックスの状態を記述します。

書き込み:

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

読む:

String str
Boolean bool
str = BinaryReader.ReadString()
bool = BinaryReader.ReadBoolean()
于 2012-12-01T23:30:45.587 に答える
1

このカスタム拡張データファイルを読み取る実行可能ファイルで開くシステムのデフォルトのアプリケーション設定がない限り、これは不可能です。

カスタム拡張子は、.exeのように実行することはできませんが、.exeで読み取って、その特定の.exeの設定を構成するために使用できます。

于 2012-12-01T23:32:59.223 に答える