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

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

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

VB(ビジュアルベーシック)はマイクロソフトによってつくられたオブジェクト指向プログラミング言語のひとつで、同社のQuickBASICが拡張されたものです。VB6の進化版といわれています。

Q&A

解決済

1回答

2989閲覧

VB.netでFilePutObjecctを使用して「ファイル入出力 (I/O) は無効です」と出ます。

saton

総合スコア9

VB

VB(ビジュアルベーシック)はマイクロソフトによってつくられたオブジェクト指向プログラミング言語のひとつで、同社のQuickBASICが拡張されたものです。VB6の進化版といわれています。

0グッド

0クリップ

投稿2015/03/10 10:01

編集2015/03/10 10:03

今回GISのシェープファイルを作成するに当たり各データ用のクラスを作成してBinaryでデータを開いて書きだそうとしているのですが、「ファイル入出力 (I/O) は無効です」とでて終了してしまいます。
使用ソフトはSharpDevelop4.3です

現在の使用コード

Class3

lang

1Public Class Class3 2 Public class DbfHeaderStruct ' Dbf ファイルヘッダ 3 Public Mark As Byte 4 Public Year As Byte 5 Public Month As Byte 6 Public Day As Byte 7 Public RecordCount As Long 8 Public HeaderLength As Integer 9 Public RecordLength As Integer 10 Public Reserved0 As Long 11 Public Reserved1 As Long 12 Public Reserved2 As Long 13 Public Reserved3 As Long 14 Public Reserved4 As Long 15 End class 16End Class

Main

lang

1Dim strDbf As String 2Dim lngDbfPtr As Long 3Dim DbfHeader As New Class3.DbfHeaderStruct() 4lngDbfPtr = 0 5strTemp = textbox3.text & "\" & name1 6strDbf = strTemp & ".dbf" 7nDbf = FreeFile() 8fileOpen(nDbf,strDbf,OpenMode.Binary) 9DbfHeader.Mark = 3 10DbfHeader.Year = Year(dtmNow) - 1900 11DbfHeader.Month = Month(dtmNow) 12DbfHeader.Day = DateAndTime.Day(dtmNow) 13DbfHeader.HeaderLength = 32 * 1 + 33 14DbfHeader.RecordLength = 5 + 1 15FilePutObject(nDbf, DbfHeader,lngDbfPtr +1) 'ここでエラーが発生 16

以上がコードの抜粋です。 対処方法ご教授よろしくお願いします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

FilePutObject は基本データ型、基本データ型の配列、基本データ型を代入したObject型の書き込みしかできないようです。

lang

1FilePutObject(nDbf, DbfHeader.Mark) 2FilePutObject(nDbf, DbfHeader.Year) 3FilePutObject(nDbf, DbfHeader.Month) 4FilePutObject(nDbf, DbfHeader.Day) 5FilePutObject(nDbf, DbfHeader.HeaderLength) 6FilePutObject(nDbf, DbfHeader.RecordLength)

このように個別に書き込むか他のファイル読み書き方法を利用して下さい。

投稿2015/03/10 21:02

korokitkat

総合スコア24

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

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

saton

2015/03/11 02:55

なるほど 教えてもらった通りにしたら書き込めるようになりました。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問