外部リソースについて
- ファイル
- ディスク
- ネットワーク上
- メモリ
-
別のプログラムあるいはプロセス
Curlはありとあらゆるファイル(テキスト、バイナリ、イメージ)・Webページなどのリソースに対しデータの読込・書込を行うことができます。
ファイルシステム内にある場合はファイルの削除や名前の変更など、一部データリソースを操作することができます。
テキストファイルの読込
テキストファイルを読み取るにはTextInputStreamオブジェクトを作成する必要があります。TextInputStreamオブジェクトはリソースから一連のデータを取り表すストリームクラスの1つです。ちなみにローカルディスク上のファイルの読み取りと、ネットワークまたは他のソース上のデータのストリームからの読み取りは同じです。ただし、ネットワークリソースと対話(Httpのpostメソッドやgetメソッドなどを使用して)する場合はCurlからリクエストデータおよび返却データを受け渡しする必要があるので少し変わってきます。そちらについては「逆引きリファレンス-サーバー連携」を参照してください。
{curl 5.0, 6.0 applet} {pre {read-from {url “business.txt”}}} |
上記の例ではpreマクロを使用して読込み結果を表示しています。
テキストファイルの一行づつの読み取り
以下に1行づつ読み込むサンプルを紹介します。
{curl 5.0, 6.0 applet} {value {with-open-streams in = {read-open location} do let display:VBox = |
上記のサンプルは少し複雑ですが以下にポイントを説明します。
- 文字列の配列を作る(これはコンテンツから読み込んだ1行づつの内容を保持するためです。)
- read-openプロシージャを使用してTextInputStreamオブジェクトを生成する。
-
TextInputStreamクラスのread-one-lineメソッドを使用して一行ずつ読込み、最終行(EOF)まで1の文字列の配列に格納していく。
イメージの読込み
以下にImageテキストプロシージャを使用したサンプルをご紹介します。
{image source = {url “sample-image.gif”}, ||– 下の幅(width)と高さ(height)を設定すると指定したサイズになります。 ||– 指定してない場合はイメージのサイズが適用されます。 ||– width = 500pixel, ||– height = 500pixel, tooltip = {Tooltip “画像の説明を記述したりします。”} } |
- GIF
- JPG
- BMP 4、8、24、または32 ビット深度
- PPM
- PNG 8 ビット深度の透過度をサポート
TIFF 複数イメージのファイルの最初のイメージのみ。なお、追加のイメージにアクセスするには、ImageDataクラスを使用する必要があります。
書込について
詳しくは「Curl開発者ガイド→外部リソースとの対話→ファイルやその他のリソースへのアクセス→テキストファイルの読み取りと書き込み →テキストファイルへの書き込み」を参照してください。
その他の形式へのアクセスおよび方法
また同期読み取りだけでなくAjaxなどで注目された非同期読み取りももちろん可能です。
サンプルコードのダウンロード
関連ヘルプドキュメント