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

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

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

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

Q&A

解決済

1回答

3832閲覧

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

meppyon

総合スコア10

VB.NET

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

0グッド

0クリップ

投稿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(構造体)

1Type tagPOSSTATE_TBL 2 3 Data1 As String * 8 4 Data2 As String * 8 5 Data3 As String * 2 6 Data4 As String * 1 7 Data5 As String * 1 8 Data6 As String * 8 9 Data7 As String * 8 10 Data8 As String * 2 11 Data9 As String * 8 12 Data10 As String * 8 13 Data11 As String * 8 14 Data12 As String * 6 15 Data13 As String * 6 16 Data14 As String * 5 17 Data15 As String * 4 18 Data16  As String * 4 19 Data17 As String * 97 20 21 End Type

VB6.0(Form)

1Option Explicit 2 3Sub SeekData() 4 5 Dim FileName As String 6 Dim sct As struct 7 8 Open FileName For Binary Shared As #1 9 Get #1, 1, sct 10 Close #1 11 12End Sub

VB.NET(構造体)

1ublic Class Class1 2 Structure struct 3 <VBFixedArray(8)> Public Data1 As String 4 <VBFixedArray(8)> Public Data2 As String 5 <VBFixedArray(2)> Public Data3 As String 6 <VBFixedArray(1)> Public Data4 As String 7 <VBFixedArray(1)> Public Data5 As String 8 <VBFixedArray(8)> Public Data6 As String 9 <VBFixedArray(8)> Public Data7 As String 10 <VBFixedArray(2)> Public Data8 As String 11 <VBFixedArray(8)> Public Data9 As String 12 <VBFixedArray(8)> Public Data10 As String 13 <VBFixedArray(8)> Public Data11 As String 14 <VBFixedArray(6)> Public Data12 As String 15 <VBFixedArray(6)> Public Data13 As String 16 <VBFixedArray(5)> Public Data14 As String 17 <VBFixedArray(4)> Public Data15() As String 18 <VBFixedArray(4)> Public Data16 As String 19 <VBFixedArray(97)> Public Data17 As String 20 End Structure 21 22End Class

VB.NET(Form)

1 Dim FileName As String 2 Private sct As Class1.struct 3 4 Sub SeekData() 5 FileName = TextBox1.Text 6 FileOpen(1, FileName, OpenMode.Binary) 7 Dim tmp As ValueType 8 tmp = sct 9 FileGet(1, tmp) ' ここでエラーメッセージが表示される 10 FileClose(1) 11 End Sub 12 13End Class 14

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

y_waiwai

2022/08/08 04:00

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

2022/08/08 04:08

VB6.0 のコードも無いと正しいか判断できないですね。
退会済みユーザー

退会済みユーザー

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 とかノイズでしかありません。
guest

回答1

0

自己解決

構造体が誤ってました。
VBFixedArray→VBFixedStringAttributeに変更で、解消されました。

投稿2022/08/08 08:52

meppyon

総合スコア10

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問