質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

解決済

System.IO.EndOfStreamException: 'ストリームの終わりを超えて読み取ることはできません。の解消法

meppyon
mmm

総合スコア10

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。

1回答

0リアクション

0クリップ

356閲覧

投稿2022/08/08 03:36

編集2022/08/08 08:51

前提

VB6.0をVB.NETに移行してます。
VB6.0のGetがサポートされなくなったので、FileGetにしたところ、エラーが発生します。

実現したいこと

読み込んだファイルを構造体に格納したいです。
FileGetのエラーを解消したいです。

発生している問題・エラーメッセージ

FileGetに到達したときに以下のメッセージが表示されます

「System.IO.EndOfStreamException: 'ストリームの終わりを超えて読み取ることはできません。' 」

該当のソースコード

VB6.0(構造体)

Type tagPOSSTATE_TBL Data1 As String * 8 Data2 As String * 8 Data3 As String * 2 Data4 As String * 1 Data5 As String * 1 Data6 As String * 8 Data7 As String * 8 Data8 As String * 2 Data9 As String * 8 Data10 As String * 8 Data11 As String * 8 Data12 As String * 6 Data13 As String * 6 Data14 As String * 5 Data15 As String * 4 Data16  As String * 4 Data17 As String * 97 End Type

VB6.0(Form)

Option Explicit Sub SeekData() Dim FileName As String Dim sct As struct Open FileName For Binary Shared As #1 Get #1, 1, sct Close #1 End Sub

VB.NET(構造体)

ublic Class Class1 Structure struct <VBFixedArray(8)> Public Data1 As String <VBFixedArray(8)> Public Data2 As String <VBFixedArray(2)> Public Data3 As String <VBFixedArray(1)> Public Data4 As String <VBFixedArray(1)> Public Data5 As String <VBFixedArray(8)> Public Data6 As String <VBFixedArray(8)> Public Data7 As String <VBFixedArray(2)> Public Data8 As String <VBFixedArray(8)> Public Data9 As String <VBFixedArray(8)> Public Data10 As String <VBFixedArray(8)> Public Data11 As String <VBFixedArray(6)> Public Data12 As String <VBFixedArray(6)> Public Data13 As String <VBFixedArray(5)> Public Data14 As String <VBFixedArray(4)> Public Data15() As String <VBFixedArray(4)> Public Data16 As String <VBFixedArray(97)> Public Data17 As String End Structure End Class

VB.NET(Form)

Dim FileName As String Private sct As Class1.struct Sub SeekData() FileName = TextBox1.Text FileOpen(1, FileName, OpenMode.Binary) Dim tmp As ValueType tmp = sct FileGet(1, tmp) ' ここでエラーメッセージが表示される FileClose(1) End Sub End Class

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

y_waiwai

2022/08/08 04:00

提示のコードにはFileGetメソッドなるものはないようですが。
KOZ6.0

2022/08/08 04:08

VB6.0 のコードも無いと正しいか判断できないですね。
SurferOnWww

2022/08/08 05:03

ASP.NET のタグが付いてますがどういう関係があるのですか? クラシック ASP を ASP.NET に移行しているんだとすると VB6 は関係ないし、何の話なのですかね。
meppyon

2022/08/08 05:13

すみません、よくわからないまま質問投稿してしまいました。 質問修正します。 申し訳ありません。
KOZ6.0

2022/08/08 06:32

struct の定義と SeekData を VB6.0/VB.NET 両方貼り付けてください。 Command1_Click とかノイズでしかありません。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

VB.NET

Microsoft Visual Basic .NETのことで、Microsoft Visual Basic(VB6)の後継。 .NET環境向けのプログラムを開発することができます。 現在のVB.NETでは、.NET Frameworkを利用して開発を行うことが可能です。