• 締切済み

C#について質問です。

C#でCSVファイルからAとBとCというデータを読み取りそれぞれの画面で表示して変更があった場合は保存するというプログラムを作っています。 それでAとBとCのそれぞれの画面でデータを保持するよりもstaticなクラスを作って読み込みも保存もそこを通してやるのがいいと聞いたのですが実際にどうやればいいかわかりません。 つたない質問ですがわかる方がいましたら教えてください。 できればサンプルコードもあるとありがたいです。 よろしくお願いします。

みんなの回答

  • oboroxx
  • ベストアンサー率40% (317/792)
回答No.4
全文を見る
すると、全ての回答が全文表示されます。
  • tatsu99
  • ベストアンサー率52% (391/751)
回答No.3

1つの例です。 CsvFileControlというクラスを作ります。 データA,B,Cをそのクラスのメンバの変数にします。 メソッドread(ファイルからの読み込み) メソッドsave(ファイルへの書き込み) を定義します。(メソッドの名前はあなたの好みで好きなように読み替えてください) データA,B,Cは、クラスの外部から参照/更新できるようにします。 (データA,B,Cを操作するメソッドは、今回は作らない) 以下がその実装例です。 ------------------- using System; using System.Text; namespace ConsoleTest1 { static class CsvFileControl { //実際は変数の集まりであるA,B,Cだがここではint型のa、b、cとする static public int a; static public int b; static public int c; //読み込み //エラーケースは考慮していない為、void型(成功か失敗を返すならbool型にする) static public void read() { //実際はCSVファイルから読み込んで以下の変数にセットする a = 10; b = 20; c = 30; } //書き込み //エラーケースは考慮していない為、void型(成功か失敗を返すならbool型にする) static public void save() { //変数、a,b,cの内容をCSVファイルに書き込む } } class Program { static void Main(string[] args) { //CSVファイルから読み込む CsvFileControl.read(); //読み込んだ内容を表示(実際はもっときれいに画面に表示) Console.WriteLine("{0}{1}{2}", CsvFileControl.a, CsvFileControl.b, CsvFileControl.c); //画面上でデータを更新したつもり CsvFileControl.a = 100; CsvFileControl.b = 200; CsvFileControl.c = 300; //そのデータを保存(したつもり) CsvFileControl.save(); } } } --------------------- 確認の為、コンソールアプリケーションで作りました。

had13340
質問者

お礼

ありがとうございます。 大変参考になりました。

全文を見る
すると、全ての回答が全文表示されます。
回答No.2

> データ管理のクラスを作ってそこでデータを保持したいのですがそのクラスでどこまでどのように処理をすればいいのかわからず悩んでいます。 イッパツで決めようと思わず、いくつかこしらえて落としどころを探ればいいんじゃありません? 「作りながら学ぶ」のも大事ですよ。

had13340
質問者

お礼

いろいろやってみます。

全文を見る
すると、全ての回答が全文表示されます。
回答No.1

現時点では正直イメージ浮かびませんね。 あなたの思うとおりに作って呈示してもらえば、 改良点モロモロのアドバイスもできるでしょうが。

had13340
質問者

補足

今はStreamReaderでCSVファイルを読んでカンマ区切りで配列にして表示する、という一連の動作をすべてA,B,Cそれぞれのフォームで処理しています。 これをデータ管理のクラスを作ってそこでデータを保持したいのですがそのクラスでどこまでどのように処理をすればいいのかわからず悩んでいます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • C言語でcsvファイル入出力に関する質問です。

    data.csvオープン、data.csvのデータを読み込んで、a>b>cの優先順位で昇順にソートし、result.csvに書き込み、result.csvクローズです。 手順自体はわかっていますが、なにせC言語の初心者なので、ネットでソースコード見てもちんぷんかんぷんです。ソートも一次配列だけなら自力でできるが、優先順にソートするプログラムはどう書いたらよいでしょうか? ご教授お願いします。 C言語の初心者です、助けてください。 以下が例です:

  • C++のクラス設計について

    Webや書籍をあたってみたのですが、なかなか解決しないので こちらで相談させいただこうと思い立ちました。 C++で書かれたプログラムを解析しているのですが、 ドキュメントは外部仕様書のみであとはソースコードだけ、という状態です。 コメントもほとんど書かれていないコードについて、リバースエンジニアリングを する必要があり、手始めにクラス図を作成してみました。 すると、複数のクラスでメンバ変数が重複しているのです。 クラスAに、クラスB・C・Dの変数の一部が宣言されていて、 クラスAとクラスBの間で重複している変数はすべてどちらのクラスもprotectedのstatic、 クラスAとクラスC・Dの間で重複している変数はクラスAではprotectedのstatic、 C・Dではprivateです。 クラスBとC・Dは継承関係にありますが、メンバ変数の重複はありません。 クラスAと他クラスは継承関係がなく、メンバ変数が多数重複しています。 クラスAの変数は20個ほどありますが、9割以上がB・C・Dで宣言されている変数と 重複している状態で、かつstaticのprotectedです。 Cはわかるのですが、C++はほとんど書いたことがありません。 アンチパターンなどもあたってみたのですが、上記のような設計についての記述は 見つけられませんでした。こういったクラス間での変数重複は「あり」なのでしょうか? これで情報が足りているかわかりませんが、何卒よろしくお願い致します。

  • C++にて

    C++にて C++にてCSVファイルを読み込み、CSVファイル中のデータを修正するプログラムを作りたいのですが、どのようにすればよいのか分かりません。 解説をお願いいたします。

  • セッションにはどんなデータを保存するべきか

    セッションにどんなデータを保存していいのかよくわかりません。 私はセッションというのはプログラムでいうところのstatic変数みたいな物かと考えているのですが、 この認識であっているでしょうか? 具体的にはセッションにはユーザID等のWebシステム上全体で保持するべき値のみが許されて、A,B,Cの3つの画面間でのみ共有するような値はセッションに保存してはいけないという具合です。 抽象的な質問ですが、よろしければご回答下さい。

  • CSVファイルを読み込み、ファイル名を変更。

    CSVファイルを読み込み、ファイル名を変更。 使用言語はperlです。perlは初心者です。 アルゴリズムが、 CSVファイルを読み込み→2次元配列に格納→ファイル名変更 という流れになっているプログラムを作成中です。 CSVファイルの中身は あ.txt , a.txt い.txt , b.txt う.txt , c.txt です。 CSVファイルを読み込み2次元配列に格納するプログラムは以下のようにしました。 ----------------------------------- $i= 0; open IN, "sample.csv"; while (<IN>) { my @data = (); @data = split (/,/); for (0..@data) {$jdata[$i][$_] = "$data[$_]";} $i++; } close IN; ---------------------------------------- 「あ.txt」を「a.txt」に変更しようとして、この中に rename $jdata[0][0] , $jdata[0][1] ; と書いてみましたが、変換されません。 どう書けばよいのでしょうか。よろしくお願いします。

    • ベストアンサー
    • Perl
  • excel 2010 VBAについて質問です

    複数(約2000ファイル)のcsvファイルのC列だけを抽出してまとめるVGAコード? をしりたいのですがなにか方法はないでしょうか。 例 ファイル名が1.csv~100.csvのファイル 1.csvのc1~c100をa1~a100 2.csvのc1~c100をb1~b100 100.csvのc1~c100をn1~n100 に抽出するようなことをしたいです。 1.csv 2.csv 抽出されたファイル.csv ABCDEF ABCDEF ABCDEF 111 112 12 121 122 12 131 132 12 ・・・ ・・・ 12 ・・・     ・・・ ご回答よろしくお願いいたします。

  • Cで他のソフトを操作して多数のファイルの格式を変更する

    Cで他のソフトを操作して多数のファイルの格式を変更する 問題:試験データA1.kdlをA1.csvに変更しようとする場合、あるソフト(例えばBB.exe)を使う。 このソフトは主に二つの作業、一つは変更前のファイルの読み取り「参照」というボッタン、もう一つは ファイル式変換用の「変更」というボッタン。一回は一つファイルしか変更できない。今は手元にたくさん 用変更のファイルがあって、A1.kdl~A100.kdl、Cコードで一回で全部自動的に変更できるような プログラムを作れませんかと考えてます。何方か分かれば教えてくださいませんか

  • CSVファイルの特定列を新たなCSVファイルに変換

    ruby 初心者の50代のサラリーマンです。 若い人にrubyがいいだろうと言われて挑戦していますが、なかなか分かりません。 どなたか、教えてください。 大きなCSVファイルがあって、 1行目は項目名が入っていて不要です。 2行目以降、 各行2列目にレコード名、 各行8列目に欲しいデータが入っています。 データは29行毎に1レコード分になっています。 レコード名は各行で重複しています。つまり、 試験日,サンプルA,***,・・・・・,観測値1,・・・・・・ 試験日,サンプルA,***,・・・・・,観測値2,・・・・・・ 試験日,サンプルA,***,・・・・・,観測値29,・・・・・・ 試験日,サンプルB,***,・・・・・,観測値1,・・・・・・ 試験日,サンプルB,***,・・・・・,観測値2,・・・・・・ 試験日,サンプルB,***,・・・・・,観測値29,・・・・・・ というデータです。 それを、 サンプルA,観測値1,観測値2,・・・・・,観測値29 サンプルB,観測値1,観測値2,・・・・・,観測値29 サンプルC,観測値1,観測値2,・・・・・,観測値29 と直してcsvファイルに保存し直したいのです。 どなたか、rubyプログラムの書き方を指南して下さい。

    • ベストアンサー
    • Ruby
  • C言語 CSVファイルの読み込み

    C言語でCSVファイルから数字を読み込み、それを計算するというプログラムを作りたいのですが、CSVファイルについて全く知識が無く、加えてCSVファイルを利用したプログラムを作るのが初めての為、勝手がわかりません。 まずCSVファイルというのは、 1.2,2.3,3.4 4.5,5.6,6.7 7.8,8.9,9.0 といった数字(文字列)をカンマで区切ったテキストファイルですよね? それをどのようなプログラムで読み込むのでしょうか? 例えば、上記の数字を読み込み、 a. 1.2+4.5+7.8=x b. 8.9-5.6-2.3=y c. 3.4*6.7*9.0=z と計算する場合のプログラムを教えていただきたいです。 よろしくお願いします。

  • javaでcsvファイル処理

    プログラミング初心者の者です。 以下の様なデータの入ったcsvファイルを、javaで処理しなければならなくなりました。 #1 #2 #3 B 00 00 00 A 00 00 00 C 00 00 00 B 00 00 00 A 00 00 00 D 00 00 00 C 00 00 00 A,B,C,Dそれぞれのデータを、#1,#2,#3それぞれのテーマで集計 したいのですが、どういったプログラムを書けばいいのかよくわかりません。 csvファイルを読み込んで、吐き出す事だけはできているので、 間にどんなプログラムを書けば良いのか、ヒントを頂ければ幸いです。 宜しくお願い致します。