問題タブ [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# - FileHelper ライブラリを使用した n レベル階層の位置記録ファイルの解析
テキスト ファイルの解析に FileHelper ライブラリを使用しようとしています。最終的にデータはデータベースに保存されます。テキスト ファイルに位置レコードが含まれています。レコードの最初の 2 文字は、レコードの階層内の位置を定義します。ファイルは次の順序で並べられています。
- 10個の共通データ(10~19個はすべて同じレベル)
- 20 第 2 レベル データ (20 ~ 29 は同じレベル)
- 30 第 3 レベルのデータ (30 ~ 39 は同じレベル)
- 40 第4レベルデータ
- 50 レベル 5 のデータ
- 60 最終レベルデータ
- 60 最終レベルデータ
- 50 レベル 5 のデータ
- 60 最終レベルデータ
- 60 最終レベルデータ
- 50 レベル 5 のデータ
- 40 第4レベルデータ
- 50 レベル 5 のデータ
- 60 最終レベルデータ
- 60 最終レベルデータ
- 50 レベル 5 のデータ
- 60 最終レベルデータ
- 60 最終レベルデータ
- 50 レベル 5 のデータ
- 40 第4レベルデータ
- 30個の第3レベルデータ
- 40、50、60 の繰り返しシーケンス。
- 30 第 3 レベルのデータ (30 ~ 39 は同じレベル)
- 20 第 2 レベルのデータ
- 20、40、50、60 の繰り返しシーケンス...
- 20 第 2 レベル データ (20 ~ 29 は同じレベル)
今、私は FileHelper の Master-Detail コンセプトを使用しようとしていますが、Master-Detail の 1 つのレベルでしか機能しないと思います。関連するテーブルを埋めるために使用できるデータの階層を作成するために使用できますか? レコードはすべて固定長レコードなので問題ありません。
注意: レコード間に主キーと外部キーの関係はありません。位置とレコード番号は、誰が親 (マスター) で、誰が子供 (詳細) であるかを示します。
サンプルの日付を以下に示します。
FileHelper または他のライブラリまたはアルゴリズムを使用してこれを解析する方法を教えてください。これで XML を使用すると、ファイル サイズが非常に大きい (100 Mb) ため、問題になる可能性があるため、XML ベース以外のアプローチを好みます (以前のアプローチは XML ベースであり、アーキテクトによって拒否されました)。
前もって感謝します。
c# - FileHelpersでカスタム検証をどのように行いますか?
有効なメールアドレスを取得するまで続行したくないため、無効なメールアドレスがあることを示す例外をスローしたいと思います。これは私がやりたい場所ですか?もしそうなら、どのように?
c# - 空ではなく必須の列でファイルヘルパーを設定するにはどうすればよいですか
ファイルヘルパーのドキュメントを調べてきましたが、列の空の値を処理するものはないようです。すべての列に「空でない」文字列属性を設定できるようにする必要があります。
誰かが私を正しい方向に向けることができますか?
c# - CSVファイルを書く
C#で記述し、FileHelpers属性で装飾したクラスがあります
次に、CSVライターに電話します
次のエラーが発生します。
フィールド:'k__BackingField'のタイプ:ICollection`1はシステムタイプではないため、このフィールドにはCustomConverterが必要です(詳細については、ドキュメントを確認してください)。
基本的に次のようなファイルを書きたい
お気に入りのコレクションは、10〜50レコードの深さで、ファイルに基づいて変更される可能性があります。
このファイルを読む必要はなく、書くだけです。
上記のクラスを使用してCSVを生成するにはどうすればよいですか?(クラス構造を変更できます)
visual-studio-2010 - Nugetを介して`MarcosMelis Filehelpers`を追加しましたが、理解できない警告が表示されます。これはどういう意味ですか?
基本的に、MarcosMeliのFileHelpersをVisualStudioプロジェクトに追加しましたが、次の警告が表示されます。
アセンブリ'x:\ y \ packages \ FileHelpersによって作成されたアセンブリへの間接参照のため、埋め込み相互運用機能アセンブリ' x:\ y \ packages \ FileHelpers.2.0.0.0 \ lib\Interop.Excel.dll'への参照が作成されました.2.0.0.0 \ lib \FileHelpers.ExcelStorage.dll'。いずれかのアセンブリの「EmbedInteropTypes」プロパティを変更することを検討してください。
これはどういう意味で、それを修正するために何をする必要がありますか(どちらかといえば、それは単なる警告であり、エラーではありません)?resharperを使用していますが、これがresharperの警告なのかVisualStudioの警告なのかわかりません。
ありがとう
c# - FilehelpersのCSV解析。FieldQuoted属性の使用方法は?
次のようなCSVがあります。
属性で区切られたクラスの2番目のフィールドをマークしています:
しかし、3行目はまだ「b、c」が2つの別々の値として解析されています。
私が何を間違っているのか分かりますか?
ありがとうございました
c# - FileHelpers:引用符で囲まれていないCSVのオプションフィールド
FileHelpersを使用してCSVファイルからデータをインポートしています。問題は、CSVファイルのバージョンによっては他のバージョンよりも多くのフィールドがあることです。
そのため、欠落している可能性のあるフィールドをオプションとしてマークしましたが、これは、フィールドが欠落している場合に無視するのではなく、常に最後の文字を切り刻んでいるように見えます。存在する最後のフィールド。
例えば...
- 「ABC、DEF、GHI」(引用符なし)を含む行は、「ABC」、「DEF」、「GHI」としてインポートされます
- 「ABC、DEF」を含む行(ここでも引用符はありません)は、「ABC」および「DE」としてインポートされます
私のレコードフォーマットは次のように定義されています...
誰かが私が欠けているものを提案できますか?
ありがとう。
c# - FileHelpers を使用して、アップロードされた Excel ファイルからレコードを抽出する方法
バンドルされているFileHelpersの例の 1 つは、次のように、Microsoft Excel ワークシートから/へレコードを抽出および挿入する方法を示しています。
入力 Excel ファイルの列に対応するメンバーを持つクラスを定義します
次に、次のように ExcelDataStorage を使用してレコードを抽出します。
問題は、入力 Excel ファイルがなく、入力がアップロードされたファイル (たとえば HttpPostedFileBase から) からの入力ストリームとしてのみ利用できる場合です。入力ストリーム? ソリューションで ExcelDataStorage 以外のクラスを使用しても問題ありません。
c# - FileHelpers:固定幅のテキストを読み取る最初と最後の行をスキップする方法
以下のコードは、ASP.NETMVC2のFileHelpersを使用して固定幅のアップロードされたファイルコンテンツテキストファイルを読み取るために使用されます
最初と最後の行の長さが短く、ReadStreamが原因で例外が発生します。他のすべての線は適切な固定幅を持っています。最初と最後の行をスキップする方法、または例外なくデータを読み取る他の方法はありますか?
c# - FileHelpers は、変換されたフィールドを宛先配列にマップできません
私は次の記録を持っています(簡潔にするために縮小しています):
コンバーターコード:
したがって、レコードの例は次のようになります: John, Smith, 1|2|3|4
値 1、2、3、4 が展開され、TestProperty 配列が満たされることが期待されます。ただし、次の例外が発生します。
ソース配列の少なくとも 1 つの要素が、宛先配列型にキャストできませんでした。
私はコードにデバッグしようとしましたが、関数から戻ろうとする FieldBase.cs 内の ExtractFieldValue() 関数で爆発するようです。次の行が原因のようです。
「res」変数が目的の型の配列であることを期待しているようですが、配列自体の要素が 1 つ含まれています。
私がこれを間違っているのか、それとも可能な修正をしているのか、誰かが提案できますか?