ときには、
String またはファイルのいずれかからデータを読み取る必要が生じます。たとえば、プログラムがコマンド ライン引数を取る場合、処理されるデータを格納するファイルをユーザーが指定するというオプションを提供するか、またはコマンド ライン上の文字列でデータを指定できるようにするでしょう。通常は、処理されるデータを読み取るために 2 つのルーチンを書く必要があります。1 つはファイルからデータを読み取るルーチン、もう 1 つはリテラル文字列を解析するルーチンです。
この代わりに、Curl 言語の文字列ファイルを使用して文字列を読み取り可能なストリームに即時に変換することができます。これにより、ファイルからデータを読み取るのに使用するのと同じコードで文字列からデータを読み取ることができます。
指定された文字列は
curl://string ディレクトリ内の任意のファイルとして扱われ、読み取られる
String がファイル名になります。結果として
TextInputStream に
String が格納されます。
文字列ファイルを簡単に作成できるように、Curl 言語では
string-url プロシージャを提供しています。これは、ストリームから読み取るテキストを含む
String を引数とし、
curl://string ディレクトリで解析された
Url をストリームとして開ける状態にして返します。
| 例:
string-url プロシージャ |
 |
{value
|| create a string to be read as a stream
let mystring:String = "This is some data I want to read"
|| Construct a Url under the curl://string directory, using the
|| string we want to read as the filename.
let myurl:Url = {string-url mystring}
|| Now, read from it as if it were a normal file.
let myinput:#TextInputStream
let result:StringBuf = {StringBuf}
{try
set myinput = {read-open myurl}
{until myinput.end-of-stream? do
{result.concat {myinput.read-one-line}}}
finally {if-non-null myinput then {myinput.close}}
}
result
}
| |
ユーザーがファイル名ではなくリテラル文字列を指定した場合は、これが認識されるのが普通です。次に必要なステップは、curl://string ディレクトリのファイルとして識別するための Url を作成し、String をファイル名として使用することです。このステップが完了したら、この Url はテキスト ファイルを開いて読み取りを実行するためのメソッドまたはプロシージャに渡せるようになります。
Copyright © 1998-2023 SCSK Corporation.
All rights reserved.
Curl, the Curl logo, Surge, and the Surge logo are trademarks of SCSK Corporation.
that are registered in the United States. Surge
Lab, the Surge Lab logo, and the Surge Lab Visual Layout Editor (VLE)
logo are trademarks of SCSK Corporation.