問題タブ [textwriter]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
.net - テキストが書き込まれた場合にイベントを発生させる TextWriter 子クラスはありますか?
aTextWriter
を引数として受け入れるメソッドを作成しました (通常は Console.Out ですが、必ずしもそうとは限りません)。
このメソッドを呼び出すと、進捗情報が TextWriter に書き込まれます。ただし、このメソッドは長時間実行される可能性があるため、UI をステータス情報で更新したいと考えています。
現在、私はを使用してStringWriter
いますが、イベントはありません。したがって、メソッドから初めて結果を取得するのStringWriter
は、メソッドが完了した後です。
TextWriter
現在、TextChanged イベントなどを継承して発生させるクラスを探しています。これを実装するのはそれほど難しいことではないことはわかっていますが、CLR チームが既に実装してくれているに違いありません。適切なクラスが見つからないだけです。
asp.net - TextWriter とベース フォルダー ファイル
ローカルページのフォームから取得した文字列を含めるためにテキストファイルをプロジェクトに追加しました-つまり、文字列をテキストフィールドに入力し、ボタンを押すと、文字列がTextWriterでentries.txtに書き込まれます私がいつも C# で行っていた方法です。問題は、「entries.txt」を引数として指定すると、問題の *.aspx ファイルがある同じフォルダー (つまり、プロジェクトのフォルダー) にある entrys.txt にデータが保存されないことですが、いくつかの奇妙な場合C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE に新しい txt ファイルを作成します。したがって、ファイルへのフルパスを指定する必要があると思います。別のコンピューターで開く必要があるため、HDD 上のプロジェクトへのパスを指定することはできません。そのため、*.aspx ファイルのアドレスに基づいて @"localhost:2439/WebSite1/entries.txt" を試しました。しかし、うまくいきません。コードを含むファイルと同じフォルダーにあるファイルには、どのパスを指定すればよいですか?
c# - HttpWebRequest で TextWriter ストリームを使用するとメモリ不足になる
Web サービスのファイルをストリーミングするためのコードで見られる OOM (メモリ不足) の問題に対する素晴らしい提案をありがとうございます。[もう少し詳細を提供する別のスレッドを開始しても問題ないことを願っています。] 提案から、ファイルからの読み取りに使用されるバッファーサイズを縮小しました。 OOM の問題です。この問題は、ファイル サイズが 5MB ほどの小さいサイズでも見られます。10 倍の大きさのファイルを処理したい可能性があります。
私の問題は、TextWriter の使用にあるようです。
次のようにリクエストを作成します [コードを縮小するためにいくつか編集します]:
ルーチンを呼び出すのは次のとおりです。
コンテンツが大きくなる可能性があるため、TextWriter 以外のものを使用する必要がありますか? リクエストのペイロード全体を作成できるのは非常に便利です。
これは完全に間違ったアプローチですか?非常に大きなファイルをサポートできるようにしたい。
c# - メモリにテキストファイルを書き込み、savefiledialogで保存する
メモリ内にテキストファイルを作成し、それにいくつかの行を追加して、最後にファイルをテキストファイルに保存しようとしています。savedialogの部分は処理できますが、メモリからテキストファイルを取得する方法がわかりません。ヘルプとヒントが適用されます。
私がこれまでに行っていることは次のとおりです。
tw.WriteLine()を呼び出して、さまざまな場所に行を追加することに注意してください 。これをプログラムの最後に保存します(したがって、これは、using {}のようにラップする必要があります)。
アップデート
StringBuilderは、これを行うためのより信頼性の高いオプションのようです。MemoryStreamを使用してテキストファイルを作成すると、奇妙な切り抜きが表示されます。
ありがとう。
c# - 複数のファイル検索反復に 1 つのメモリストリームを使用する
次の操作では、入力として前の操作の結果が必要な場合に、それぞれ操作をテキストファイルに適用するいくつかのメソッドがあります。
Operation_1 のコード:
operation_2 のコード:
operation_3 のコード:
問題は、各中間結果をハードディスク上の物理txtファイルに保存し、そのファイルを次の操作に使用するのと同じ結果が得られないことです。数行とファイルの末尾が欠落しています。
また、これは非常にクリーンで一般的な方法ではないようです。
したがって、私の質問です。中間結果に MemoryStream を使用すると結果が異なるのはなぜですか?これを行うためのよりクリーンで柔軟な方法はありますか? (中間結果を保存するかどうかを選択できる場合は、解決策に取り組みたいと思います)。
.net - MS Exam 70-536 Prep: Efficient use of TextWriter - 模擬試験の答えは間違っています (と思います)。
試験 70-536 の模擬試験を受けています。以下はスクリーンショットです。黄色で強調表示されている部分は、試験で正解と示されているものです。ラジオボタンが選択されているものが、私が思っていた答えです。
ステートメントを含む下部の説明に注意してください。
オブジェクトを作成するには、 のインスタンスなど
StreamWriter
、既存のオブジェクトを使用する必要があります。Stream
FileStream
私が選んだ答えが最も効率的な使い方だと思いますし、説明の文言は間違っていると思います。明らかに、選択した回答のコードが正常に機能したためです。
誰が正しいですか????
c# - C# での Unix スタイルのテキスト ファイルの作成
C# プログラムで Unix スタイルの改行を含むテキスト ファイルを書き込もうとしています。
何らかの理由で、次のコードは機能しません。
これもありません:
どちらの場合も、'\n' は '\r\n' に置き換えられていますが、これは望ましくありません。これを 16 進エディタで確認したところ、0x0D0A で終わる各行が表示されました。
何か案は?
ありがとう!
編集:
皆さんごめんなさい、誤警報!
説明させてください...
私の TextWriter は、SharpZLib を使用して tar アーカイブに追加されていた MemoryStream に書き込んでいました。WinZIP を使用してテキスト ファイルを抽出すると、\n のすべてのインスタンスが \r\n に置き換えられたことが判明しました。同じ tar アーカイブを Ubuntu マシンにコピーして展開すると、そこには \n しかありません。変!
誰かの時間を無駄にしてごめんなさい!ありがとう!
c# - AppendAllText と TextWriter のロック
「既に使用中」のエラーの防止に関して、複数のクライアントから複数回呼び出された場合、最初のコード スニペットが潜在的に危険であるかどうかを尋ねたいですか? それとも、両方のコード ブロックが同じように安全ですか?
私が質問しているのは、2 番目のコードニペットが close メソッドを呼び出しており、これがより安全に聞こえる破棄も行うためです。
c# - C#Windowsサービステキストライター
LocalSystemアカウントを使用する標準のWindowsサービスを作成しました。ログファイルの場合、テキストライターを使用して、C:\ Users\useraccountディレクトリ内の指定されたファイルに書き込みます。問題は、LocalSystemでサービスとして実行しているときに、ファイルを作成したり、ファイルに書き込んだりすることをまったく望まないことです。
ご覧のとおり、ディレクトリはハードコーディングされているため、LocalSystemがSystem32またはそのような性質で起動するため、ベースディレクトリの競合は発生しません。フォルダーのアクセス許可により、システムアカウントはフォルダーに完全にアクセスできます(Windows 7)。なぜそのファイルを作成/書き込みできないのですか?
ご入力いただきありがとうございます。
編集:
どうやら、ロギングプログラムスレッドはLocalSystemとしても実行されているようですが、実際に標準ユーザーとして実行する必要がある場合です。では、サービスからスレッド化されたプロセスを実行して、LocalSystemではなくローカルユーザーアカウントで実行するにはどうすればよいですか。
Thread.new(process)を使用します。ここで、processは追加のプログラムです。プロセスプログラムは、何かを書き込む前に入力を受け取る必要がありますが、アカウントが間違っているため、入力を受け取っていません。これをどのように修正しますか?
c# - 閉じた TextWriter に書き込めません
txt ファイルにテキストを書き込もうとしています。最初の書き込み後、エラーでアプリケーションがクラッシュします
閉じた TextWriter に書き込めません
私のリストには、ブラウザーが開くリンクが含まれており、それらすべてを txt ファイル (ログなど) に保存したいと考えています。
私のコード: