• ベストアンサー

VisualC#でデータの読み込み

VisualC#の超初心者でプログラミングも初めてです。 文字や数値(整数や小数点あり)の大量データ(テキストファイル)から最大値や最小値等を求めるプログラムを作りたいのですが、まずデータの読み込みがよくわかりません。 Cの本やVisualC#の本を買って読んでいますが、いまひとつ理解できません。 また、CとC#の違いもよくわかりません。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.2

#1さんの回答のように StreamReaderでファイルを開いて処理といった格好になるでしょう 例 # データファイルの中の各データのセパレータが1つの半角スペース # だと仮定してコーディングしてあります  // 各変数の宣言  ArrayList lstF = new ArrayList();  ArrayList lstH = new ArrayList();  ArrayList lstD = new ArrayList();  string sBuf;  string[] sData;  // ファイルのオープン  TextReader rd = new StreamReader("ファイル名")  // 終端まで繰り返し  while ( rd.Peek() <> -1 )  {   // 1行読み込み   sBuf = rd.ReadLine();   // データの分解   sData = sbuf.Split( new char[] { ' ' } );   // 各データの格納   lstF.Add( double.Parse(sData[4]) );   lstH.Add( double.Parse(sData[5]) );   lstD.Add( double.Parse(sData[6]) );  }  // ファイルをクローズ  rd.Close();  // 要素の最大数を取得  int nItem = LstF.Count - 1;  // 降順に並べ替え  lstF.Sort();  lstH.Sort();  lstD.Sort();  // 各項目の最大値 最小値を表示  Console.WriteLine("MaxF{0} MinF{1}", lstF[0], lstF[nItem] );  Console.WriteLine("MaxH{0} MinH{1}", lstH[0], lstH[nItem] );  Console.WriteLine("MaxD{0} MinD{1}", lstD[0], lstD[nItem] ); # 字下げは全角スペースです # 潮位にの最大最小の求め方不明につき計算省略

imoko0701
質問者

お礼

ありがとうございました。 大変参考になりました。 なかなか、本を読んで独学でやっていますが、難しいです。 他にもやりたいことはたくさんあるのですが、挫折しそうになりましたが、また少し明るくなりました。

imoko0701
質問者

補足

データがタブ区切りの時の読み込みは、どのようにしたらいいのか、よくわかりません。そのデータの中味は文字列もあれば、整数もあれば、実数もあり、いろいろです。

その他の回答 (1)

  • nep0707
  • ベストアンサー率39% (902/2308)
回答No.1

個人的には、ことC#に関しては本よりインターネットの情報のほうが有用なことが多いような気がします。 MSの出しているハンドブックくらいなら本でも役に立つんでしょうけど、あきれるほど高いですし(2万円以上しなかったかな)。 >まずデータの読み込みがよくわかりません。 テキストファイルから情報を読み取りたい、ということですよね? 具体的にどういうことを考えていてどこまで出来てどこで躓いているのかわからないので 一般論的な回答になりますが、このあたりが参考になればと思います。 http://msdn2.microsoft.com/ja-jp/library/system.io.streamreader(VS.80).aspx これ以外にも、.NETプログラミングをやるなら、 MSDNは何かにつけて使うことの多いサイトだと思いますよ。 >また、CとC#の違いもよくわかりません。 CとC#は全く別の言語と理解するのがいいと思います。

imoko0701
質問者

お礼

即答ありがとうございます。 具体的な内容ですが、たとえば以下のようなファイルから最大周期、最大潮位、最小周期、最小潮位などを求めたいと思います。 年月日時  周期    波高    水深         1997 619 2   0.310  2.800  113.310 1997 619 3  0.190  2.560  135.870 1997 619 4   0.160  1.960  131.910 1997 619 5  0.170  1.670  114.010 1997 619 6  0.180  1.650  109.480 1997 619 7  0.190  1.690  109.750 1997 619 8  0.190  1.730  111.060 1997 619 9  0.190  1.750  112.750 1997 61910  0.200  1.770  114.100 以下データ数としては大量にあるとします。 このようなデータを読み込んで処理をしたいと思っています。 >CとC#は全く別の言語と理解するのがいいと思います。 ということは、VisualC#で作成したいと思っていますが、C言語の本やC言語のHPを見ても参考にはならないということでしょうか。 重ね重ねよろしくお願いします。

関連するQ&A

専門家に質問してみよう