タイトル通りC#で、"CSVファイルよりデータを文字列配列に取り込むソース"を作成したいです。
元にC++で作成されていたソースがあり、それを参考になんとかここまではやってみました。
C++からC#に移行したばかりで、分からない中やってみました。
しかし、エラーを吐いてしまい自分で調べながらやってみたのですがその解決法が分かりません。
エラー内容のエラー箇所は太字にしてあります。ご教授ください。
もし元のC++のソースが見たい場合は即座に編集致します。
C#
1private int Csv_spread(FILE fp_csv, char[80][80] sAry) 2 { 3 int i; 4 int j; 5 int node_no = 0; 6 int cnt = 0; 7 int exit_flg = 0; 8 int rtn; 9 int len; 10 char pnt; 11 char pnt1; 12 char pnt2; 13 char[] str; 14 str = new char[512]; 15 char[] stemp; 16 stemp = new char[80]; 17 18 if (fgets(str, sizeof(char), fp_csv) == null) 19 { 20 return -1; 21 } 22 len = str.Length; 23 if (len < 5) 24 { 25 return -2; 26 } 27 pnt = strchr(str,'\r'); 28 29 if (pnt != null) 30 { 31 pnt = ','; 32 } 33 pnt = strchr(str, '\n'); 34 if (pnt != null) 35 { 36 pnt = ','; 37 } 38 exit_flg = 0; 39 cnt = 0; 40 pnt = str; 41 while (exit_flg == 0) 42 { 43 pnt1 = strChr(pnt, ','); 44 if (pnt1 != null) 45 { 46 pnt1 = null; 47 stemp = pnt; 48 pnt = pnt1.Substring(1); 49 } 50 else 51 { 52 stemp = pnt; 53 exit_flg = 1; 54 } 55 Pctab_suppress(ref stemp, 0); 56 Pctab_suppress(ref stemp, 1); 57 sAry[cnt] = stemp; 58 cnt++; 59 } 60 return (cnt); 61 }
エラー内容
①private int Csv_spread(FILE fp_csv, char**[80][80]** sAry)
...型または名前空間の名前'FILE'が見つかりませんでした。(usingディレクティブまたはアセンブリ参照が指定されていることを確認してください。
⇒C++ではFILEと宣言し、*が付きポインタでしたが、C#の場合のFILE宣言が分かりません。
...配列のサイズは変数宣言の中で指定できません('new'を使用して初期化してください)
⇒パラメータ内でnewを用いた二次元配列の宣言が分かりませんでした。
②if (fgets(str, sizeof(char), fp_csv) == null)
...現在のコンテキストに'fgets'という名前は存在しません。
⇒ファイルを読み込みたかったのですが、'FileStream'ではできませんか?
③ pnt = strchr(str,'\r');
...現在のコンテキストに'strchr'という名前は存在しません
⇒代用としてIndexOfが使用できる?
まだあるのですが、他は自力でもう一度やってみます。
上記は自分でもなんとかなりそうになかったため、ご教授頂きたいです。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/11/15 09:07