問題タブ [filehelpers]
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.
c# - FileHelpers を使用して csv ファイルを書き込むためのレコードを作成する方法
Filehelpers を使用して、ファイルからデータベースをインポートしています。現在、逆のプロセスに取り組んでおり、データ オブジェクトからレコードを作成する方法がわかりません。
私が見つけることができるすべての例は、ファイル - >テーブル - >ファイルから行くことを示しています。ジェネリックとのインターフェイスを使用して変換しています。インバウンドコンバージョンでこれを使用します:
アウトバウンドには次のようなものを使用したいと考えています。
このクラスを使用して、CSV レコードを表します。
Filehelpers のドキュメントで TransformToRecordAttribute に出会いました
TransformToRecordAttribute クラス
この属性を使用すると、RecordClass 内のメソッドをマークして、指定されたものに変換することができます。
この属性を使用する例、またはレコード セットを作成して正しい方向に導く方法の例を誰かが持っていますか?
csv - FileHelpersを使用してCSVファイルを動的に作成する
FileHelpersは、実行時までレイアウトがわからない場合にCSVファイルをDataTableに読み込むことができる「RunTimeRecords」と呼ばれる機能をサポートしています。
FileHelpersを使用して、実行時に同じ方法でCSVファイルを作成することは可能ですか?
一部のユーザー入力に基づいて、作成する必要のあるCSVファイルには、実行時にのみ認識できるさまざまなフィールドがあります。読み取りセクションで説明されているように、FileHelperエンジンに必要なタイプを作成できますが、データを書き込むために必要な形式がわかりません。
編集
あるいは、実行時までフィールドを知らなくてもCSVファイルを作成できる優れたCSVライブラリを誰かが提案できますか?たとえば、DataTableからCSVファイルを作成します。
asp.net - Filehelpers Excel から Oracle データベースへ
ExcelデータをOracle DBにインポートしたい。Excel の部分については十分な助けが得られました。Oracle 側で助けてもらえますか?
filehelpers を使用してoracledbにインポートできますか? 参考までにサンプルコードを提供してください。
ありがとうディー
c# - 実行時にタイプが定義されているオブジェクトにどのようにアクセスしますか?
FileHelpersを使用して、次のコードを使用して構造が不明なCSVファイルを解析しています。
これは問題なく機能するようです。デバッガーを使用してステップスルーすると、レコードはImportClassタイプのオブジェクトであり、フィールドフィールドにはファイルのデータが正しく入力されます。
私が抱えている問題は、実際にそのデータをどのように抽出するかです。コンパイル時にそのタイプが不明であるため、レコードをImportClassにキャストできません。本当にリフレクションを使用する必要がありますか、それともこれを行うためのより簡単な方法がありますか?
.net - FileHelpers と CSV: レコードが無制限に水平方向に拡張できる場合の対処方法
FileHelpers を使用して、このタイプの CSV ファイルを解析しようとしています。
FileHelpers でこれを解析する方法がわかりません。私は次のようなことができるはずだと思います:
しかし、それは FileHelpers では可能ではないようです。私ができる最善のことはこれです:
次にValues
、各レコードの一連の値を取得するためにカンマで区切る必要があります。各レコードの一部を手動で解析する必要がある場合、FileHelpers を使用する意味はないようです。
何か不足していますか?docs/examples を調べましたが、自分のフォーマットの解決策が見つからないようです。Excel は私のフォーマットに問題がないので、既存の無料ライブラリ (FileHelpers またはその他のライブラリ) でそれを行う方法があると思います。何か案は?
c# - C#-FileHelper FieldConverterルーチンはレコード内の他のフィールドを参照できますか?
優れたFileHelpersライブラリを使用して、固定長の航空会社のスケジュールファイルを処理しています。
日付フィールドがあり、その後、レコードのいくつかのフィールドである時間フィールドがあります。
FileHelpersレコードクラスでこれらの両方を組み合わせたいのですが、カスタムFieldConverter
属性があることを知っています。この属性を使用して、フィールドデータを処理し、およびを実装するためのカスタム関数を提供しStringToField
ますFieldToString
。
私の質問は、他のフィールド(すでに読んだもの)をこの顧客にFieldConverter
も渡すことができるので、日付と時刻を組み合わせることができます。FieldConverter
カスタム処理クラスと「その他の文字列」の両方、またはオブジェクトの配列を参照できるようにする実装があります。しかし、これが属性定義で行われていることを考えると、私はこの以前のフィールドの参照にアクセスするのに苦労しています。
c# - 呼び出し元の engine.ReadNext() メソッドと readign engine.LineNumber プロパティの間の FileHelpers に関するスレッド ロックの問題
FileHelpers ライブラリでプロデューサー/コンシューマー パターンを使用して、複数のスレッドを使用して 1 つのファイル (巨大になる可能性があります) からデータをインポートします。各スレッドはそのファイルのチャンクをインポートすることになっており、インポートされた行の主キーとしてファイルを読み取っている FileHelperAsyncEngine インスタンスの LineNumber プロパティを使用したいと思います。FileHelperAsyncEngine には内部的に IEnumerator IEnumerable.GetEnumerator(); があります。これは engine.ReadNext() メソッドを使用して繰り返されます。内部で LineNumber プロパティを設定します (これはスレッドセーフではないようです)。
コンシューマーには、Consumer インスタンスの内部にある DataTable のコレクションを反復処理する IDataReader 実装を使用する SqlBulkLoad クラスを介してそれらを消費するコンシューマーに DataTable を提供するプロデューサーが関連付けられます。の各インスタンスには、1 つの SqlBulkCopy インスタンスが関連付けられます。
スレッドロックの問題があります。以下は、複数の Producer スレッドを作成する方法です。各スレッドのあとがきを開始します。プロデューサ インスタンスの Produce メソッドが呼び出され、入力ファイルのどのチャンクが処理されるかが決定されます。engine.LineNumber はスレッドセーフではないようで、データベースに適切な LineNumber をインポートしていません。engine.LineNumber が engine.ReadNext() と呼ばれる別のスレッドに読み込まれ、engine.LineNumber プロパティが変更されたようです。並列性が失われるため、入力ファイルのチャンクを処理することになっているループをロックしたくありません。このスレッドの問題を解決するためにコードを再編成するにはどうすればよいですか?
ありがとうラド
c# - .NET匿名型の列挙からcsvを出力する方法は?
FileHelpersを使用してクラスを装飾し、[DelimitedRecord(",")]
そのタイプのオブジェクトの列挙を CSV として出力しようとしていました。しかし、私のクラスは から継承しているため、うまくいきませんでしたActiveRecordLinqBase<T>
。これにより、いくつかの問題が発生しました。
そのため、匿名型の列挙を選択して、それからファイルヘルパーに csv を生成させることができるかどうか疑問に思っていました。FileHelpers が csv を出力するためだけにクラスを定義する必要はありません。
私は別のcsvライブラリを使用することにオープンですが、FileHelpersは証明されています.
編集
@Foovanadil:これは私がやろうとしているようなものです:
あなたにあげる:
.net - FileHelpersでCSVファイルを書き込むときに、日付の出力形式をどのように制御しますか?
FileHelpers 2.0ライブラリを使用して、ClassBuilder
クラスを使用してレコードタイプを生成するCSVファイルを作成しています。
私のデータには日付が含まれているので、タイプのフィールドを作成しDateTime
ますが、ファイルが生成されると、日付値は、たとえばでddmmyyyy
はなく、形式で出力されます。dd/mm/yyyy
28042000
28/04/2000
クラスのDateFormat
プロパティをに設定しましたが、役に立ちません。CsvOptions
"dd/MM/yyyy"
レコードタイプを生成するコードは次のとおりです。
c# - 部分的に完全なデータに対して FileHelpers を使用して、完全に設定されたオブジェクトを返す方法は?
次の構造の CSV ファイルがあるとします。
対応するFileHelpers
定義クラスで
FileHelpersを使用して、各オブジェクトが完全に読み込まれるようにオブジェクトを返すにはどうすればよいですか?
はっきりさせておきますが、現在、使用の結果はengine.ReadFile
行 2 と行 5 から完全に入力されたオブジェクトのみを生成します。これは、フィールドが空白であるため意味があります。ただし、3 行目と 4 行目のオブジェクトも1 行目と同じID
とを持つ必要があります。各行のフィールドはそのままにしておく必要があります。データの正しい用語はわかりませんが、「部分的に正規化」されているようです。Description
Value
これを解決するための現在のアプローチは、AfterRead
イベントを使用して次のとおりです。イベント、イベント ハンドラー、デリゲートなどについてよく理解していないため、FileHelpers を使用してこれを実現する別の方法を探しています。また、非常に不格好に見えます。