0
vb.netでプログラムを作成しようとしているが、ファイルを開くときにファイルが16進数のコードに変換され、問題は、大きなファイルを開くと、通常はOutOfMemory例外が発生するということです。大きなファイルを開いて16進数に変換するとOutOfMemory例外が発生するVB.NET
私はいくつかのことを試みましたが、何も機能しませんでした。
ToolStripLabel1.Text = "Status: Loading"
Cursor = Cursors.WaitCursor
If OpenFileDialog1.ShowDialog <> DialogResult.Cancel Then
Dim infoReader As IO.FileInfo
infoReader = My.Computer.FileSystem.GetFileInfo(OpenFileDialog1.FileName)
If Math.Truncate(infoReader.Length/1024/1024) > 15 Then
Dim x As MsgBoxResult
x = MsgBox("Opening files bigger than 15MB can cause the program to be unresponsive for long periods of time, crash or throw a OutOfMemory exception, depending on the size of the file." & vbCrLf & vbCrLf & "Are you sure you want to continue loading this file?", MsgBoxStyle.Exclamation + MsgBoxStyle.YesNo, "Warning - HEX EDITOR")
If x = MsgBoxResult.Yes Then
RichTextBox1.AppendText(String.Join(" ", File.ReadAllBytes(OpenFileDialog1.FileName).Select(Function(b) b.ToString("X2")))) 'This is where the exception would happen.
ToolStripLabel1.Text = "Status: Idle"
End If
Else
RichTextBox1.Text = String.Join(" ", IO.File.ReadAllBytes(OpenFileDialog1.FileName).Select(Function(b) b.ToString("X2")))
ToolStripLabel1.Text = "Status: Idle"
End If
End If
RichTextBox2.Text = RichTextBox1.Text
NumericUpDown3.Maximum = RichTextBox1.Text.Length
NumericUpDown2.Maximum = RichTextBox1.Text.Length
NumericUpDown3.Value = RichTextBox1.Text.Length
Cursor = Cursors.Default
Label4.Text = "File Opened: " & OpenFileDialog1.FileName
のおかげで、あなたのコードからそれを呼び出す、私はそのことについて考えていたが、私はそれをクラッシュしたりせずにそれを行う方法を知りませんでしたエラー。 – Coolvideos73
SaveFileDialog1.ShowDialog <> DialogResult.Cancel Then Dim b As Byte()= RichTextBox1.Text.Split( "" c).Select(Function My.Computer.FileSystem.WriteAllBytes(SaveFileDialog1.FileName、b、False) 終了場合 – Coolvideos73
オリジナルの質問と共通するこの新しい問題は何ですか?新しい質問を投稿してください。 – Steve