|
テクニカルノート03: シンプル ファイル アクセスMarch 12, 2003© NSB Corporation. All rights reserved. |
マイクロソフト社のドキュメントも参考にして下さい。
Simple File I/O は、 Fileオブジェクトを使用しながらNS Basic/CEを通してコントロール可能です。Fileオブジェクトを始動するには、以下のステートメントを実行して下さい。
このオブジェクトに関する追加資料は、MicrosoftのWebサイトにて入手可能です。
addObject "file"
本ドキュメントの最後に、このオブジェクトを使ったサンプルコードがあります。
プロパティ |
説明 |
|
Openステートメントで使用されるファイルモードを返す。 |
|
ファイルの最後に到達したかを示すTrue/Falseを返す。 |
|
開いているファイルの現在のRead/Writeポジションを返す。 |
|
開いているファイルのサイズをバイト値で返す。 |
|
開いているファイルの次のRead/Writeポジションを設定または返す。 |
タイプ |
メソッド |
説明 |
開く |
|
ファイルへの入力/出力 (I/O) を可能にする。 Mode: ファイルモードを指定 Access: ファイル上で可能なオペレーション Lock: ファイル上で他のプロセスにより可能にされるオペレーション reclenは最高で32767まで |
閉じる |
|
Openステートメント使用して、開いているファイルへの入力/出力を終了する。 |
読む |
|
開いているディスクファイルから変数へデータを読み込む。 |
|
開いているシークエンスファイルから n 個のデータフィールドを読み込み、変数にそのデータを割り当てる。WriteField参照。 |
|
|
InputまたはBinaryモードの開いているファイルから、numberで示された文字数の文字列を返す。Put参照。 |
|
|
InputまたはBinaryモードの開いているファイルから、numberで示されたバイト数の文字列を返す。 |
|
|
開いているシークエンスファイルから1ライン読み込み、文字列変数に割り当てる。LinePrint参照。 |
|
書く |
|
テキスト文字列をファイルに書き込む。 |
|
変数からディスクファイルへデータを書き込む。 |
|
|
シークエンスファイルへデータを書き込む。アイテム毎にカンマを入れ、文字列は引用符で囲み、各WriteFieldリストの最後にnewline文字を入れる。 |
REM This program demonstrates the use of the File and Filesystem Controls
Option Explicit
Dim selection
addObject "filesystem"
addObject "file"
selection=0
while selection<>9
selection=inputbox("Choose test number:" & chr(13) & "1. Attr" & chr(13) & "2. Dir" & chr(13) & "3. Get/Put" & chr(13) & "4. Line Write" & chr(13) & "5. Write/Read" & chr(13) & "9. End Program", "File System Demo")
select case selection
case 1
cmdAttr_click
case 2
cmdDir_click
case 3
cmdGetPut_click
case 4
cmdLineWrite_click
case 5
cmdWrite_click
case else
selection=9
end select
wEnd
Private Sub cmdAttr_Click()
On Error Resume Next
Dim sTheFile
sTheFile = inputBox("Enter file name:","ATTR Command")
msgbox "GetAttr:" & fileSystem.GetAttr(sTheFile) & chr(13) & "FileDateTime:" & fileSystem.FileDateTime(sTheFile) & chr(13) & "FileLen:" & fileSystem.fileLen(sTheFile),0,"File Attributes for " & sTheFile
If Err <> 0 Then
MsgBox "Error in GetAttr: " & Err.Description
Err.Clear
End If
End Sub
Private Sub cmdDir_Click()
Dim sDir, sMsg, input
input = inputBox("Enter file name (wildcards OK)","DIR Command")
sDir = filesystem.dir(input)
sMsg = "Directory contents of " & input & ": " & vbCrLf & sDir
While (sDir <> "")
sDir = fileSystem.Dir()
If sDir <> "" Then
sMsg = sMsg & ", " & sDir
End If
Wend
msgbox sMsg
End Sub
Private Sub cmdGetPut_Click()
WriteUsingPut
ReadUsingGet
End Sub
Private Sub cmdLineWrite_Click()
Writeline
Readline
End Sub
Private Sub cmdWrite_Click()
WriteUsingControl
ReadUsingControl
End Sub
Sub WriteUsingPut()
On Error Resume Next
Dim myArray
ReDim myArray(6)
file.Open "ceGetPut.txt", 4, 2, 3, 500 'fsAccessWrite
myArray(1) = 1
myArray(2) = "This is a string"
myArray(3) = True
myArray(4) = Date
myArray(5) = 63.12
file.Put myArray
If Err <> 0 Then
MsgBox "Error in WriteUsingPut: " & Err.Description
err.clear
End If
myArray(1) = 2
myArray(2) = "This is a string2"
myArray(3) = True
myArray(4) = Date + 1
myArray(5) = 63.12
file.Put myArray
myArray(1) = 3
myArray(2) = "This is a string3"
myArray(3) = True
myArray(4) = #11/16/34#
myArray(5) = 63.12
file.Put myArray
msgbox "done with Put", 0, "Put"
file.Close
End Sub
Sub ReadUsingGet()
Dim myArray,i,msgString
On Error Resume Next
file.Open "ceGetPut.txt", 4, 1, 3, 500
file.Get myArray, 2
msgString = myArray(1)
For i = 2 To UBound(myArray)
msgString = msgString & ", " & myArray(i)
Next
msgBox msgString,0,"Contents of ceGetPut.txt"
file.Close
End Sub
Sub WriteUsingControl()
Dim myArray
ReDim myArray(10)
myArray(1) = Date
myArray(2) = "This is a string with a "" (quote)."
myArray(3) = True
myArray(4) = #11/16/34#
myArray(5) = 63.12
myArray(6) = "Text"
myArray(7) = Null
myArray(8) = ""
file.Open "ceWrite.txt", 2 'fsModeOutput
file.WriteFields myArray
file.Close
End Sub
Sub ReadUsingControl()
Dim myArray, msgString, i
file.Open "ceWrite.txt", 1 'fsModeInput
myArray = file.InputFields(10)
msgString = myArray(1)
For i = 2 To UBound(myArray, 1)
msgString = msgString & ", " & myArray(i)
Next
msgbox msgString,0,"Contents of ceWrite.txt"
file.Close
End Sub
Sub Writeline()
On Error Resume Next
file.Open "ceLine.txt", 2 'fsModeOutput
If Err <> 0 Then
MsgBox "Error in writeline: " & Err.Description
Err.Clear
End If
file.LinePrint "Hier ist unser erste Linie."
file.LinePrint "Hier ist unser zweite Linie."
file.Close
End Sub
Sub Readline()
file.Open "ceLine.txt", 1 'fsModeInput
dim sOut
sOut = file.LineInputString()
sOut =sOut & Chr(13) & file.LineInputString()
msgBox sOut,0,"Contents of ceLine.txt"
file.Close
End Sub