VBプログラムで開くカスタムファイルタイプを持つことは可能ですか?
例:テキストを含むテキストボックスとチェックボックスがオンになっている...カスタムファイルタイプに保存し、ファイルを再度開くと、チェックボックスがオンになり、テキストボックスに文章。基本的に、プログラムの状態をカスタムファイルタイプに保存します。
例->.pro、.lll、.hgy、.xyz、.abc
私はただ興味があります...これは可能ですか?もしそうなら、私はこれにどのようにアプローチしますか?
Ichiruが述べていることは、メモリ内のデータテーブルを使用してシリアル化する前に、いくつかのプロジェクトで行ったBinaryWriterとBinaryReaderを使用して実行できます。
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
はい、独自のカスタムファイルタイプを作成することは可能です。この種の問題を回避する最善の方法は、バイナリライターを作成することです。バイナリライター では、テキストボックスの内容とチェックボックスの状態を記述します。
書き込み:
BinaryWriter.Write("string")
BinaryWriter.Write(false)
読む:
String str
Boolean bool
str = BinaryReader.ReadString()
bool = BinaryReader.ReadBoolean()
このカスタム拡張データファイルを読み取る実行可能ファイルで開くシステムのデフォルトのアプリケーション設定がない限り、これは不可能です。
カスタム拡張子は、.exeのように実行することはできませんが、.exeで読み取って、その特定の.exeの設定を構成するために使用できます。