2012-01-04 12 views
1

私は、ショッピングカートのエクスポートによって生成されたxmlファイルをVisual C#を使用してx12 850 EDI txtファイルに変更するファイル変換コンソールアプリケーションを作成しています。 1つずつインクリメントするために作成されたtxtファイルに1つの番号が必要です。次に、この新しい番号をアプリケーション自体に保存して、次のファイルを最後に作成したファイルよりも1つずつインクリメントします。これを達成するための過去の方法は何ですか?ありがとうございました。新しいファイルが作成されるたびに作成するファイルの番号を増やす方法を教えてください。

Tyrel

+2

何を試しましたか?何が難しいですか?この番号は再起動時に増分し続ける必要がありますか?サーバー間で? – Oded

+0

私はintとインクリメントメソッドを使用することを考えましたが、インクリメントされた最後の数値を保持する方法はわかりません。数値の文字列を増やしてみましたが、新しい変数を保持するために文字列を変更することはできません。はい、番号を再起動するたびに増分する必要があります。私はバッチ変換ファイルにタスクスケジューラでこのアプリケーションを呼び出すことを計画しています。サーバー間では、私はその質問を完全に理解していません。謝罪いたします。 –

+1

基本的に、複数のコンピュータでアプリケーションを実行しているかどうかを確認し、必要な場合は、この数を増やす必要があります。 – Oded

答えて

0

まあそれは多くのことに依存します。

主な問題は、効率の1つになります。

ファイルシステムウォッチャーMSDN HEREあなたに作成されたファイルのイベントを取得しますが、あなたは誰かが、複数のファイルのディレクトリ内のファイル、別のタイプの中に入れてのように、可能性のすべてのシナリオに対処する必要があります一度など。

私はそのようなことを設計していた場合、私はマルチスレッドのアプリケーションといくつかのキューイングを考えています。ファイルが作成されたとき

パート#2 ...

それは整数を変更することはありません、それはあなたに通知します/あなたはファイルそのものを追跡することができますこれらのイベントのカウントを維持するなど、削除。設定を維持するには、レジストリキーやディスクファイルなど、実行中のアプリケーションの外部に何かが必要です。ファイルシステムウォッチャーからのイベントをキューイングすることで、永続化されたファイルへのアクセスをきれいに整理し、ファイルの作成や削除のイベントだけでなく、常にその操作に対応することができます。

本質的に、アプリケーションのロード時にファイルから最後の値が取得されるたびに、操作プロセスがメモリ内の値を増減してそのファイルに書き戻すためです。 この値はメモリ内の整数で、++または - で指定します。詳細は次のとおりです。here

+2

OPは、彼らが達成しようとしていることの詳細がなくても、OPが「マルチスレッドのアプリケーションといくつかのキューイングを考慮する」べきであると示唆しているようです。 –

+0

私は、アプリの目的をよりよく反映するために元の質問を編集しました。 –

+0

あなたは何が起こるかを考えてみると完全に合理的です。 マルチスレッドキューを使用することで、プログラムは一括して追加されたファイルのアカウント、削除されている間に削除されたもの、処理の進行中のユーザーのフィードバックを提供する(保留中の操作と現在の操作)別のユーザーが更新しようとするとロックされ、リストが表示されます。 解決策や修正が必要なのかという疑問が生じます。 最初からベースをカバーするアプリケーションを書くことは、時間とコーディングのコストを節約します。 – Sabre

2

プログラムの1つのインスタンスを仮定し、アプリケーションの再起動時に値を保持する必要があるコンピュータが):あなたが使用してどのようなintかで(必要に応じて

  • があなたのカウンターのアプリケーションが起動
  • の現在の値を格納するファイルを使って、この値
  • インクリメントメモリ内の値を読みます)
  • アプリケーションが終了する前に、ファイルを新しい値で上書きする
+0

ご協力いただきありがとうございます。これは私が望むものを達成するでしょう。私はアプリのコード内にすべてそれを保持することを望んでいたが、それは可能ではない可能性があります。 –

関連する問題