1

私には興味深い仕事があります。Redmonと呼ばれるプログラムからの入力をキャプチャするプログラムを作成することです。これは基本的に、出力をプログラムにリダイレクトする仮想プリンターです。

Redmonをインストールし、出力をキャッチするためのwinformsアプリケーションを作成しました。しかし、私はここで立ち往生しています。プログラムが何を受け取るかを確認しましたが、パラメーターレベルでは何もありません(メイン引数のstring []は空です)。

Redmonは私のプログラムを開始しましたが、その後停止しています。プログラムに送信しているコンテンツをどうにかして読むべきだと思いますが、どうすればよいでしょうか。

4

1 に答える 1

3

Redmonがstdinにストリームすることを想定します。この場合、入力ストリームから読み取る必要があります。Console.In(文字ベースの場合)またはConsole.OpenStandardInput(生のバイナリストリームアクセスの場合)のいずれかを使用します。

stdinから読み取るものの簡単な例として(テキスト行を読み取り、それぞれを逆にします):

static void Main() {
    WriteReversedLines(Console.In);
}
static void WriteReversedLines(TextReader reader) {
    string line;
    while ((line = reader.ReadLine()) != null) {
        char[] chars = line.ToCharArray();
        Array.Reverse(chars);
        Console.WriteLine(chars);
    }
}

明らかに、バイナリデータを少し異なる方法で処理する必要がありますが、概念的には似ています。

于 2009-04-15T11:19:02.267 に答える