Aspose.TeXの入力インターフェイス| C ++
I/O実装の正式な定義については、C++ 用の Aspose.TeX api参照を参照してください。
入力ディレクトリの概念
Tex言語のI/O Primitivesはファイル名のみを扱うことができるため、C++ 用の Aspose.TeXは、ディレクトリを名前とデータのバルクのマッピングとして定義します。データの大部分は、ファイル、ストリーム、配列などであるはずです。APIにより、入力および出力作業ディレクトリを個別に指定できます。一般的な iinputworkingdirectoryインターフェイスを提供します。これは、ユーザーが独自の目的で実装できる。また、独自の実装も提供します。これについては、以下で説明します。インターフェイスは getFile()メソッドを定義します。これは、データストリームを返してファイルのフルネームを決定しますが、仮説的に異なる名前を最初の引数として使用します。実際、マッピングキーです。
ディスクファイルシステムからファイル入力を取得します
これが私たちがそれをする方法です:
1// Create conversion options instance.
2...
3// Specify a file system working directory for input.
4options->set_InputWorkingDirectory(System::MakeObject<InputFileSystemDirectory>(RunExamples::InputDirectory));
このユースケースは非常に簡単なので、もうそれに集中する必要はありません。
ZIPアーカイブからファイル入力を取得します
また、入力ファイルをZIPアーカイブに配置して、入力ディレクトリと見なすこともできます。この場合、次のように進める必要があります。
1 // Open a stream on a ZIP archive that will serve as the input working directory.
2 System::SharedPtr<System::IO::Stream> inZipStream = System::IO::File::Open(System::IO::Path::Combine(RunExamples::InputDirectory, u"zip-in.zip"), System::IO::FileMode::Open);
3
4 // Create conversion options instance.
5 ...
6 // Specify a ZIP archive working directory for input.
7 options->set_InputWorkingDirectory(System::MakeObject<InputZipDirectory>(inZipStream, u"in"));
最初に、zipファイルを含むストリームを作成します。次に、変換オプションを作成した後、 inputzipdirectoryクラスのインスタンスになるように inputWorkingDirectoryオプションを設定します。コンストラクターの2番目の引数は、アーカイブ内のベースパスです。アーカイブ全体を入力ディレクトリにしたい場合は、空の文字列を渡す必要があります。
入力端子の概念
さて、端子入力もあることを覚えておく時が来ました。これについては、C++ 用の Aspose.TeXは、 textreader実装インスタンスを返すプロパティが1つだけある一般 iinputterminalインターフェイスを定義します。実装を以下で説明します。
コンソールから端子入力を取得します
これを行うには、 inputConsoleterminalクラスのインスタンスになるには、 Terminalinオプションを設定する必要があります。
1// Create conversion options instance.
2...
3// Specify the console as the input terminal.
4options->set_TerminalIn(System::MakeObject<InputConsoleTerminal>()); // Default. Not necessary to specify.
しかし、真実を伝えるために、これはオプションのデフォルト値であるため、指定する必要はありません。 :-)この事実のため、および他の実装がない限り、このセクションはデモンストレーションのみを提供します。
理論的には、予測可能な動作を備えたインタラクティブなTEXファイル(またはスクリプト)がある場合、TEXエンジンの要求に応答するための補完的なスクリプトを含む入力端子のバージョンを実装することをお勧めします。時間があるときは手を試してみてください!