ADP
Programming Language ADP

English

Sourceforge.net

SourceForge.JP

Loading

ファイルアクセスライブラリ

ファイル操作関係の述語です。
ファイルの読み書き削除他、ディレクトリ作成・削除、CSVファイル読み込み等があります。

ファイルアクセスライブラリリファレンス

_temp_path (テンポラリファイルの作成)

形式
 _temp_path( $head, $path)
引数
  • $head: テンポラリパスの接頭辞
  • $path: 結果
完了時の動作
  • 常に次の述語を実行に移ります。バックトラックしません。
バックトラック時の動作
  • 常にバックトラックします。前の述語にバックトラックします。
説明
■Windows上での動作
 GetTempPath APIで取得されるテンポラリディレクトリに、GetTempFileName APIでテンポラリファイルを作成しパスを$pathへ返します。
$headはテンポラリファイルの接頭辞になります。

■Unix/Linuxでの動作
 環境変数TMPDIRで取得されるテンポラリディレクトリ(無ければ/tmp)に、mkstemp システムコールでテンポラリファイルを作成します。
$headはテンポラリファイルの接頭辞になります。mkstempに渡すときのファイル名で'XXXXXX'は自動的に付与される($head+'XXXXXX'が渡される)。

apachelog (apacheログファイルの読み込み)

形式
 apachelog($filepath,@result)
引数
  • $filepath:ログファイルパス
  • @result:ログ内容
完了時の動作
  • ログファイル内にログ(行)が存在する時:次の述語を実行に移ります。
  • ログファイル内にログ(行)が存在しない時:バックトラックします。
バックトラック時の動作
  • ログファイル内に次のログ(行)が存在する時:次の述語を実行に移ります。
  • ログファイル内に次のログ(行)が存在しない時:バックトラックします。
説明
apacheの標準のログ形式を読み込みます。
結果を配列で取得します。

コード例(lib/apache.p)
,apachelog@('access_log').csv.prtn,next;

実行例
D:\sample\lib>adp apache_log.p
::1,-,-,24/Apr/2011:06:25:06 +0000,OPTIONS * HTTP/1.0,200,-,-,Apache/2.2.9 (Debi
an) PHP/5.2.6-1+lenny9 with Suhosin-Patch (internal dummy connection)
192.168.1.100,-,-,24/Apr/2011:06:29:08 +0000,GET / HTTP/1.0,200,28251,-,Wget/1.1
1.4 Red Hat modified
192.168.1.101,-,-,24/Apr/2011:06:30:42 +0000,GET /doc.awp?PID=678 HTTP/1.1,200,3
548,-,Yeti/1.0 (NHN Corp.; http://help.naver.com/robots/)
192.168.1.102,-,-,24/Apr/2011:06:33:00 +0000,GET /?p=12 HTTP/1.1,200,3826,http:/
/www.google.co.jp/search?source=ig&hl=ja&rlz=1G1GGLQ_JAJP351&q=c%2B%2B+csv+%E8%A
A%AD%E3%81%BF%E8%BE%BC%E3%81%BF&aq=1&aqi=g10&aql=&oq=c%2B%2B+csv,"Mozilla/5.0 (W
indows; U; Windows NT 6.0; en-US) AppleWebKit/534.16 (KHTML, like Gecko) Chrome/
10.0.648.205 Safari/534.16"
192.168.1.103,-,-,24/Apr/2011:06:33:37 +0000,GET /robots.txt HTTP/1.1,404,321,-,
Yeti/1.0 (NHN Corp.; http://help.naver.com/robots/)

bload (ADPバイナリデータの読み込み)


形式
 bload( $filepath, $data)
引数
  • $filepath: バイナリデータファイル名
  • $data: バイナリデータ(結果)
完了時の動作
  • 常に次の述語を実行に移ります。バックトラックしません。
バックトラック時の動作
  • 常にバックトラックします。前の述語にバックトラックします。
説明
 $filepathで指定されたバイナリデータを読み込み、$dataに格納します。バイナリデータはあらかじめ、bsave述語で保存する必要があります。

コード例(lib/bload.p)
,$x = { '東京', '神奈川', '埼玉', '千葉'} ,bsave($x, 'bloadtest.adb');
,bload('bloadtest.adb').csv.prt;

実行結果
D:\sample\lib>adp bload.p
東京,神奈川,埼玉,千葉
D:\sample\lib>type bloadtest.adb
+ADP0040BIN_117                 

bsave (バイナリデータの書き出し)


形式
 bsave( $data, $filepath)
引数
  • $data: バイナリデータ
  • $filepath: バイナリデータファイル名
完了時の動作
  • 常に次の述語を実行に移ります。バックトラックしません。
バックトラック時の動作
  • 常にバックトラックします。前の述語にバックトラックします。
説明
$filepathで指定されたファイルに、$dataの内容をバイナリ形式で格納します。格納したデータは、bload述語を使うことにより読み込めます。

コード例(lib/bload.p)
,$x = { '東京', '神奈川', '埼玉', '千葉'} ,bsave($x, 'bloadtest.adb');
,bload('bloadtest.adb').csv.prt;

実行結果
D:\sample\lib>adp bload.p
東京,神奈川,埼玉,千葉
D:\sample\lib>type bloadtest.adb
+ADP0040BIN_117                 

err (標準エラーへの出力)

形式
 err ( $src, ...)
引数
  • $src: 出力する項(複数可)
完了時の動作
  • 常に次の述語を実行に移ります。バックトラックしません。
バックトラック時の動作
  • 常にバックトラックします。前の述語にバックトラックします。
説明
$srcで指定された項を標準エラーへ出力します。

コード例 (lib/err.p)
,err("This is error messages.");

実行例
D:\sample\lib>adp err.p
This is error messages.

errn (標準エラーへの出力)

形式
 err ( $src, ...)
引数
  • $src: 出力する項(複数可)
完了時の動作
  • 常に次の述語を実行に移ります。バックトラックしません。
バックトラック時の動作
  • 常にバックトラックします。前の述語にバックトラックします。
説明
$srcで指定された項を標準エラーへ出力します。最後に改行を出力します。

コード例 (lib/err.p)
,err("This is error messages.");

実行例
D:\sample\lib>adp err.p
This is error messages.

fappend

fappendn

fread

freadn

fwrite

fwriten

print (標準出力への出力)

形式
 print( $src, ...)
引数
  • $src: 出力する項(複数可)
完了時の動作
  • 常に次の述語を実行に移ります。バックトラックしません。
バックトラック時の動作
  • 常にバックトラックします。前の述語にバックトラックします。
説明
$srcで指定された項を標準出力へ出力します。

コード例 (lib/print.p)
,print("Hello, world.");

実行例
D:\sample\lib>adp print.p
Hello, world.

printn (標準出力への出力)

形式
 print( $src, ...)
引数
  • $src: 出力する項(複数可)
完了時の動作
  • 常に次の述語を実行に移ります。バックトラックしません。
バックトラック時の動作
  • 常にバックトラックします。前の述語にバックトラックします。
説明
$srcで指定された項を標準出力へ出力します。最後に改行を出力します。

コード例 (lib/print.p)
,print("Hello, world.");

実行例
D:\sample\lib>adp print.p
Hello, world.

prt (標準出力への出力)

形式
 prt( $src, ...)
引数
  • $src: 出力する項(複数可)
完了時の動作
  • 常に次の述語を実行に移ります。バックトラックしません。
バックトラック時の動作
  • 常にバックトラックします。前の述語にバックトラックします。
説明
$srcで指定された項を標準出力へ出力します。
print述語の省略形です。

コード例 (lib/print.p)
,print("Hello, world.");

実行例
D:\sample\lib>adp print.p
Hello, world.

prtn (標準出力への出力)

形式
 print( $src, ...)
引数
  • $src: 出力する項(複数可)
完了時の動作
  • 常に次の述語を実行に移ります。バックトラックしません。
バックトラック時の動作
  • 常にバックトラックします。前の述語にバックトラックします。
説明
$srcで指定された項を標準出力へ出力します。最後に改行を出力します。
printn述語の省略形です。

コード例 (lib/print.p)
,print("Hello, world.");

実行例
D:\sample\lib>adp print.p
Hello, world.

rcsvf

rcsvfh

remove (ファイルまたはディレクトリの削除)


形式
 remove( $path)
引数
  • $path: パス
完了時の動作
  • 常に次の述語を実行に移ります。バックトラックしません。
バックトラック時の動作
  • 常にバックトラックします。前の述語にバックトラックします。

説明
$pathで指定されたファイルまたはディレクトリを削除します。
内部的にはremoveシステムコール(Windowsの場合は、_remove Cライブラリ関数)を呼び出します。

rmdir (ディレクトリの削除)


形式
 rmdir( $path)
引数
  • $path: パス
完了時の動作
  • 常に次の述語を実行に移ります。バックトラックしません。
バックトラック時の動作
  • 常にバックトラックします。前の述語にバックトラックします。

説明
$pathで指定されたディレクトリを削除します。
内部的にはrmdirシステムコール(Windowsの場合は、_rmdir Cライブラリ関数)を呼び出します。

unlink (ファイルの削除)


形式
 unlink( $filepath)
引数
  • $filepath: ファイルパス
完了時の動作
  • 常に次の述語を実行に移ります。バックトラックしません。
バックトラック時の動作
  • 常にバックトラックします。前の述語にバックトラックします。

説明
unlinkシステムコール(Windowsの場合は、_unlink Cライブラリ関数)を呼び出す。


Powered by ADP.