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 _*


製品詳細はこちら

<< ファイル関係に関するFAQ一覧へ戻る