2009-04-28 8 views
0

Scripting.FileSystemObject TextStreamオブジェクトは、WindowsスタイルのUnicodeと、システムコードページによって変更された 'プレーンテキスト'をサポートしますが、UTF8をサポートしていないようです - しかし、IISログファイルなど、書き込みロックされたUTF8ファイルのストリーミングを許可するDCOM公開オブジェクトがありますか?

ADODB.Streamは、UTF-8(または生のバイナリ)をサポートしていますが、メモ帳などでファイルを開くことができるにも関わらず、更新がロックされているファイルはありません。 (エラーの結果:ADODB.Streamファイルを開くことができませんでした。エラーコードは0x800a0bbaです) - ストリームを「読み取り」モードまたは「共有」モードで開こうとしているにもかかわらず。サーバー側のCOMオブジェクトが実際に要求するよりも多くのロックを要求しているかのように見えます。

他の選択肢はありますか?私はDCOM経由でこれらを遠隔から起動していますが、ホストシステム自体をテストしても同じ動作になります。

理想的には、ストリーム(つまりシークメカニズムのサポート)として動作し、生のバイト(バイナリ)をストリームしたり、プレーンテキスト、Unicode、UTF-8を処理できるコンポーネントがあり、書き込みのために開いています。誰でもそのような獣を知っていますか?

答えて

0

これはあなたが探しているものではありませんが、独自のサーバーサイドストリーマーを構築することができます。IPipeByteをご覧ください。これはwin2k以降に存在するインターフェイスで、クライアントとサーバーの間でバイトを簡単にストリームできるようになります。あなたがファイルから実際の読書をしているので、許可の問題はOSがあなたに課すものだけになるでしょう。もちろん、テキスト形式はまったく問題にはなりません。

パイプの使用に関する良い記事は、hereです。サンプルコードはありませんが、おそらくオフラインMSDNにあります。

+0

私はこれを見て、感謝します。理想的には、既存のオブジェクト/コンポーネントを使用しますが、自分でロールバックする必要がある場合は、これが非常に役に立ちます。 –

+0

パイプを使用してからしばらくしていますが、IIRCのサンプルコードはそのまま使用する準備ができており、スイートに変更することでニーズは非常に簡単になります。パイプ配管が行われます。これによりファイル処理のものだけが残ります。 – eran

+0

私はパイプを使用して終了しませんでしたが、ストリームオブジェクトを自己ラッピングし、DComを介して公開して、必要な処理を実行しました。ライト・ロック・ファイルとユニコードまたはUTF-8で同様に機能するリモート・アクセス可能な「公式の」ストリーム・インプリメンテーションを見つけることはできませんでした。 –

関連する問題