お世話になっています。VB.NET+CSVに関する質問です。
現在VB.NETで、CSVから読み込んだレコードをある項目を基準に並び替え、一覧にして画面に表示するというプログラムを作っています。
こういう場合のCSVから読み込んだデータの保持の方法と、その並び替えの方法にはどういうやり方がありますか?
いくつかのパターンがあると思いますが、教えてください。
以下はCSVの情報です。
・1行が1件のレコード
・項目1を昇順で並び替える
・CSV項目:項目1(半角英数字)項目2(タブ)項目3(半角・全角文字)
・CSV件数:1000行以下
No.5
- 回答日時:
No.1です。
ADO.NETが使えない制約って結構つらいですね。
では別解。
・SortedDictionary<string, List<string>>にデータを格納する。
第一引数が項目1の値で、List<string>にCSV項目を格納。
・VS2008ならList<string>にCSVデータを格納してLINQでSortする。
これでどうしょうか?
参考URL:http://www.atmarkit.co.jp/fdotnet/dotnettips/429 …
No.4ベストアンサー
- 回答日時:
すみません、ANo.3です。
もうちょっと書いておいた方が良いかもしれませんね。
私が書いている方法では、まずは、例えば構造体の配列等にCSVの内容を入れておきます。
で、IComparerを持つクラスの中で、比較したい構造体の「メンバを指定」しつつ
(ここが単純なSortメソッドでは不可能)比較し、大小関係を <0、=0、>0 で
指定してやれば良いです。
但しその際、Compareメソッド内で、比較する2値(Object型)を、該当の構造体に
変換してからでないと、比較できません。
CTypeかDirectCastで変換は可能かと思います。
…このぐらい書いておけば大丈夫かな?
回答ありがとうございます。
IComparerとても参考になりました。
ただ結局DataGridViewとDataTableの組み合わせで作ることになりました。
No.3
- 回答日時:
下のURLなんかが参考になるかもです。
配列のソート方法を自分で設定する方法です。
2値の比較方法をIComparerインターフェイスを持つ自作クラスに定義し、
そのインスタンスをArray.Sortメソッドの第2引数にする事で、
自由にソート方法を定義できます。
ヘルプからも、ある程度の情報は取得できると思いますので、参照してみてください。
参考URL:http://www.atmarkit.co.jp/fdotnet/dotnettips/215 …
No.1
- 回答日時:
私ならADO.NETで処理すると思います。
SQLで取得していたら並び替えが楽だと思います。
集計関数を使えるのもメリットになるでしょう。
VB.NETで処理しているサイトのリンクを張っておきます。
ご参考に。
参考URL:http://park5.wakwak.com/~weblab/selectTextFile.h …
回答ありがとうございます。
大変参考にななりました。ただ書き忘れていたんですが、
今回のプログラムではADO.NETを使うことができません。
それ以外の方法を教えてもらえると助かります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) PowerQueryに詳しい方教えてください(Office365) 1 2022/07/24 21:11
- システム CSVファイルのマッピング処理の省力化 1 2022/11/24 00:01
- Visual Basic(VBA) マクロを教えてください。 7 2023/06/01 19:47
- その他(Microsoft Office) VBA CSV出力について 3 2023/04/19 14:14
- その他(プログラミング・Web制作) Windowsのバッチファイルについてご教示ください 5 2023/07/25 20:23
- その他(プログラミング・Web制作) Pythonで、データファイルと列名ファイルを1つのファイルにしたいです。 1 2023/07/27 20:29
- Ruby pandasでsqlite3にテーブル作成・追加・読み出しでindexの取り扱い方教えてください 5 2023/03/08 09:57
- その他(プログラミング・Web制作) Sikulix2.0.5(Jython2.7.3)でcsvを読込WEB検索条件にpasteで文字化け 1 2023/03/31 11:02
- Excel(エクセル) PowerQueryで行数の指定はできますか? 2 2022/08/26 11:13
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Java初級 引数に適用できません
-
public static void main (Stri...
-
レコード件数の表示
-
StringBufferからStringへキャ...
-
VBAで新規ファイル名
-
abstract と static を一緒に付...
-
C# でメソッドに送られてきたOb...
-
不要なstaticメソッドの見分け...
-
Java初心者です、エラーの意味...
-
Google Apps Script で getRang...
-
String.containsの反対機能はあ...
-
親の親のメソッドを呼ぶには?
-
リストボックスの並べ替え (VB...
-
djUnit コンストラクタがpriva...
-
なぜprotected overrideなのか
-
戻り値の異なるメソッドの多重...
-
return new使用時
-
JComponentを継承して処理をJBu...
-
【C#】WebBrowser上で表示され...
-
Javaの初期化メソッドについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Java初級 引数に適用できません
-
public static void main (Stri...
-
レコード件数の表示
-
abstract と static を一緒に付...
-
なぜprotected overrideなのか
-
C# 点の描き方をおしえてくだ...
-
コマンドライン引数のチェック
-
String.containsの反対機能はあ...
-
Google Apps Script で getRang...
-
StringBufferからStringへキャ...
-
Java初心者です、エラーの意味...
-
javaに"search"という関数 or ...
-
C# でメソッドに送られてきたOb...
-
YYYYMMDD書式の日付に対する適...
-
メソッド宣言の戻り値の型にク...
-
return new使用時
-
readLine()ではじめから読み直...
-
シェルスクリプトからのJavaメ...
-
Fileの読み取り専用の解除
-
親の親のメソッドを呼ぶには?
おすすめ情報