FAQ
FAMOS
シーケンス / 関数top
└ファイル関係
ID.s018
Q. LOADコマンドで読み込むとエラーになる
以下のように関数"DlgFileName"などを使ってファイルパスを取得して、このデータを"Load"コマンドで読み込もうとしましたがエラーになる場合とならない場合があります。
どのように対応すればよいでしょうか?
FilePath = DlgFileName( "", "", "", 0)
Load <FilePath>
A.
エラーになる場合に、パスにスペースや括弧などが含まれていませんか?
C:\My Doduments\data.dat
C:\Program Files\Common Files\Imc\Com\Experiments\Demo554\2001-12-04 13-50-21 (1)\Acc1 (01).RAW
関数"Load"はこれらのパスを受け付けません。
対策1
パス名をダブルコーテーションで囲ってください。
(NGの例題) : Load C:\test\data1.dat
(OKの例題) : Load "C:\test\data1.dat"
対策2
このようなパスを選択する可能性がある場合、関数グループ13の"ファイル関数"を使用してください。
以下にサンプルを示します。
;_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
;_/
;_/ ファイルパスにスペースや括弧が
;_/ 含まれたデータを読み込むことができません。
;_/
;_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
;ダイアログからデータファイルを選択します。
_FName = DlgFileName( "","","",0)
;------------------------------------------
;パスにスペースなどが存在する場合、
;Loadコマンドでは読み込めません。
;以下のコマンドはエラーになります。
;
;Load <FName>
;------------------------------------------
;------------------------------------------
;このような場合、以下のようにグループ13の
;ファイル関数を使用してください。
;------------------------------------------
_ID = FileOpenDSF( _FName, 0)
_Num = FileObjNum?( _ID)
_i=1
While _i<=_Num
_Name = FileObjName?( _ID, _i)
<_Name> = FileObjRead( _ID, _i)
_i=_i+1
End
_err = FileClose( _ID)
Delete _*