「どんなにくだらないC#プログラミングやVisual C#の使い方に関する質問でも誰かが優しくレスをしてくれるスレッド」です。
他のスレッドでは書き込めないような低レベルな質問、
質問者自身なんだか意味がよく分からない質問、
ググろうにもキーワードが分からないなど、勇気をもって書き込んでください。
内容に応じて他スレ・他板へ行くことを勧められることがあります。ご了承下さい。
なお、テンプレが読めない回答者、議論をしたいだけの人は邪魔なので後述のC#相談室に移動して下さい。
C#に関係の無い話題や荒らしの相手や罵倒レスはやめてください
>>980を踏んだ人は新スレを建てて下さい。
>>980が無理な場合、話し合って新スレを建てる人を決めて下さい。
■関連スレ
C#, C♯, C#相談室 Part95
http://mevius.5ch.net/test/read.cgi/tech/1508180530/
C#, C♯, C#相談室 Part93
https://mevius.5ch.net/test/read.cgi/tech/1492818720/
■前スレ
ふらっと C#,C♯,C#(初心者用) Part135
http://mevius.5ch.net/test/read.cgi/tech/1517749348/
■コードを貼る場合は↓を使いましょう。
http://ideone.com/
https://dotnetfiddle.net/
■情報源
https://msdn.microsoft.com/ja-jp/library/gg145045.aspx
https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/index
https://msdn.microsoft.com/en-us/library/gg145045.aspx
http://referencesource.microsoft.com/
-
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
探検
ふらっと C#,C♯,C#(初心者用) Part136
レス数が1000を超えています。これ以上書き込みはできません。
2018/03/03(土) 15:09:05.75ID:SBEkwl3H
960デフォルトの名無しさん
2018/04/04(水) 20:33:02.49ID:n4eM316R excelファイルを操作する必要があり、いろいろ調べたらclosedXMLを使うのが良さそうという
結論に達したのですが、詳しい解説のあるサイトや書籍はないでしょうか。
ファイルの開き方、セルの参照方法などは普通に見つかるのですが、提供されている
メソッドの一覧とか、発生する例外とか、実用上知っておくべきことを知りたいのです
(主にエラートラップをするためです)
公式ドキュメントがどこにあるかすら発見できなかった程度の英語力ですが、ドキュメントの
ありかを教えていただければ、辞書を引きながらでも調べてみます
結論に達したのですが、詳しい解説のあるサイトや書籍はないでしょうか。
ファイルの開き方、セルの参照方法などは普通に見つかるのですが、提供されている
メソッドの一覧とか、発生する例外とか、実用上知っておくべきことを知りたいのです
(主にエラートラップをするためです)
公式ドキュメントがどこにあるかすら発見できなかった程度の英語力ですが、ドキュメントの
ありかを教えていただければ、辞書を引きながらでも調べてみます
961デフォルトの名無しさん
2018/04/04(水) 20:50:20.08ID:K+0BZuJc Excel操作はCOM Automation以外には手を出すな
地獄を見ることになる
地獄を見ることになる
962デフォルトの名無しさん
2018/04/04(水) 20:53:47.86ID:Uk0C/m1f ClosedXMLはマジ大変
963デフォルトの名無しさん
2018/04/04(水) 21:05:58.11ID:Ft6CGKk+ 村の禁忌に触れたような言い様だなw
964デフォルトの名無しさん
2018/04/04(水) 21:27:26.09ID:mQqkiub7 泣く子はいねかー
965デフォルトの名無しさん
2018/04/04(水) 21:30:08.25ID:PCVfDfH6 ExcelのCOMオートメーションはサーバーでの動作保証が無い時点でゴミなんすよ
966デフォルトの名無しさん
2018/04/04(水) 21:32:26.97ID:BmbE00Mi >>960
https://github.com/closedxml/closedxml/wiki
使ったことないけどExcelDataReaderも速さの面ではいいってどっかの記事で見た
https://github.com/ExcelDataReader/ExcelDataReader
https://github.com/closedxml/closedxml/wiki
使ったことないけどExcelDataReaderも速さの面ではいいってどっかの記事で見た
https://github.com/ExcelDataReader/ExcelDataReader
967デフォルトの名無しさん
2018/04/04(水) 22:21:19.70ID:noE6VTyE エクセルファイルなんてグレープシティのスプレッド買えば一瞬で終わるだろ
968デフォルトの名無しさん
2018/04/04(水) 22:50:52.54ID:OrTn2AQm WPFってどういう用途なら使うべき?
文献やネット検索が少なくて使えん
文献やネット検索が少なくて使えん
969デフォルトの名無しさん
2018/04/04(水) 23:00:46.54ID:T8BktjHU EPPlus
970デフォルトの名無しさん
2018/04/04(水) 23:21:00.13ID:Lsgd0/8M971デフォルトの名無しさん
2018/04/04(水) 23:34:42.99ID:Lt0+eORa やたらElectron推す人いるけど、言うほどMSが勧めてるかなぁ
972デフォルトの名無しさん
2018/04/04(水) 23:42:42.72ID:9CBA0Lmr Electronは縦書きエディタすら作れない駄目なやつ
表示はどうにでも出来るが入力が機能的に絶対無理とか俺が費やした半日を返せよ
表示はどうにでも出来るが入力が機能的に絶対無理とか俺が費やした半日を返せよ
973960
2018/04/04(水) 23:46:48.80ID:n4eM316R974デフォルトの名無しさん
2018/04/04(水) 23:48:56.91ID:v0eOpRGB >>969
EPPlusは早いし使いやすいよね
EPPlusは早いし使いやすいよね
975デフォルトの名無しさん
2018/04/05(木) 02:05:31.70ID:G4evJUNh >>972
縦書きはWPFも非対応だろ
縦書きはWPFも非対応だろ
976デフォルトの名無しさん
2018/04/05(木) 08:55:29.27ID:3wDwo2/L MSがPWAに手を出したから、類似技術のElectronは始まる前にMSでは終わった
977デフォルトの名無しさん
2018/04/05(木) 10:13:54.51ID:c77DGTlb コンソールとフォームしか作ったことないけどまだまだいけますか?
978デフォルトの名無しさん
2018/04/05(木) 11:09:05.32ID:796HNo8s 趣味ならどうでもいい
職業ならWebできないと仕事ない
職業ならWebできないと仕事ない
979デフォルトの名無しさん
2018/04/05(木) 12:00:33.19ID:D2y+fK6k てっきり今後はWPFが主流になると思って使ってみたけど、
情報がネットに少なすぎてまいったわ
情報がネットに少なすぎてまいったわ
980デフォルトの名無しさん
2018/04/05(木) 14:16:56.73ID:+3oTwv9E 趣味で作ってるから問題ないわ
981デフォルトの名無しさん
2018/04/05(木) 21:48:57.38ID:2ZtD67QF 例外処理について教えてください
簡単な例で、キーボードから数字を入力させて処理するとして、非数字が入力されたら
数字が入力されるまで、正しい入力をするよう促したいとします
(これだけなら例外を使わなくても簡単ですが、あくまで例として)
bool flag = false;
string str;
int i=0;
while(flag != true)
{
try
{
Console.Write("enter a number = ");
str = Console.ReadLine();
i = Int32.Parse(str);
flag = true;
} catch
{
Console.WriteLine("incorrect number.");
}
}
Console.WriteLine("your number is : " + i);
こんな感じで、try-catchの間をループで囲んで、脱出フラグを用意するのが正攻法
なのでしょうか?
なんかもっとスマートな方法がありそうなのですが
簡単な例で、キーボードから数字を入力させて処理するとして、非数字が入力されたら
数字が入力されるまで、正しい入力をするよう促したいとします
(これだけなら例外を使わなくても簡単ですが、あくまで例として)
bool flag = false;
string str;
int i=0;
while(flag != true)
{
try
{
Console.Write("enter a number = ");
str = Console.ReadLine();
i = Int32.Parse(str);
flag = true;
} catch
{
Console.WriteLine("incorrect number.");
}
}
Console.WriteLine("your number is : " + i);
こんな感じで、try-catchの間をループで囲んで、脱出フラグを用意するのが正攻法
なのでしょうか?
なんかもっとスマートな方法がありそうなのですが
982デフォルトの名無しさん
2018/04/05(木) 21:57:03.35ID:dUUr3xK4983デフォルトの名無しさん
2018/04/05(木) 21:58:19.97ID:M7HPB+1x do while
int.TryParse
int.TryParse
984デフォルトの名無しさん
2018/04/05(木) 21:59:25.26ID:IVUDpQN0 var i = 0;
while (true) {
Console.Write("enter a number = ");
var str = Console.ReadLine();
try {
i = Int32.Parse(str);
break;
}
catch (FormatException) {
Console.WriteLine("incorrect number.");
}
}
Console.WriteLine("your number is : " + i);
while (true) {
Console.Write("enter a number = ");
var str = Console.ReadLine();
try {
i = Int32.Parse(str);
break;
}
catch (FormatException) {
Console.WriteLine("incorrect number.");
}
}
Console.WriteLine("your number is : " + i);
985デフォルトの名無しさん
2018/04/05(木) 22:04:19.96ID:IVUDpQN0 iを0で初期化するのもやめたほうが良かったな
986デフォルトの名無しさん
2018/04/05(木) 22:11:00.58ID:2ZtD67QF >>982
すいません、ピンポイントで課題に直面しているのではなくて、勉強中で疑問に思ったので
質問しました
例えばファイルオープンで存在しないファイル名を掴まされたとか、テキストファイルを想定
しているところにバイナリを噛まされたとか、そういうケースのリトライをどうやって実装するのかと
疑問に感じたのです
すいません、ピンポイントで課題に直面しているのではなくて、勉強中で疑問に思ったので
質問しました
例えばファイルオープンで存在しないファイル名を掴まされたとか、テキストファイルを想定
しているところにバイナリを噛まされたとか、そういうケースのリトライをどうやって実装するのかと
疑問に感じたのです
987981
2018/04/05(木) 22:19:06.91ID:2ZtD67QF988デフォルトの名無しさん
2018/04/05(木) 22:24:09.13ID:dUUr3xK4989デフォルトの名無しさん
2018/04/05(木) 22:36:19.31ID:7xCMhR6w 気持ちは分からんでもないが、抽象的な質問しても抽象的な答しか返ってこないと思うw
static void Main(string[] args)
{
var number = 0;
Func<bool> tryAskNumber = () =>
{
Console.Write("enter a number = ");
return int.TryParse(Console.ReadLine(), out number);
};
while (!tryAskNumber())
Console.WriteLine("incorrect number.");
Console.WriteLine($"your number is : {number}");
}
static void Main(string[] args)
{
var number = 0;
Func<bool> tryAskNumber = () =>
{
Console.Write("enter a number = ");
return int.TryParse(Console.ReadLine(), out number);
};
while (!tryAskNumber())
Console.WriteLine("incorrect number.");
Console.WriteLine($"your number is : {number}");
}
990デフォルトの名無しさん
2018/04/05(木) 22:36:33.86ID:796HNo8s991デフォルトの名無しさん
2018/04/05(木) 23:38:35.52ID:IVUDpQN0992981
2018/04/06(金) 06:10:19.26ID:e2Dy7HRM >>989
私の学習では、まだ
Func<bool> tryAskNumber = () =>
この書き方が理解できていないのですが、これでやっているのは例外の処理ではなくて
boolでメソッドの戻り値を評価して処理を繰り返しているのですね?
抽象的な質問だと言われればそのとおりなのですが、エラーが発生したときに例外を
返してくるメソッドを使っているときに、正常処理ができるようになるまで同じ処理を繰り返す、
というケースの質問でした
条件を変えるとかは本質的な話ではなくて、「例外が発生しなくなるまで繰り返す」という
処理フローそのものの質問です
>>984で、break文でtryの中からwhileブロックを抜ければよい、と理解できたので十分です
(tryブロックから、その外側のwhileを抜けられると思ってなかったので躓いてました)
数字入力を取り上げたのは、例として単純で、言わんとすることがすぐに伝わるかと思った
だけです
>>991
>>984
の var i=0; を var i; にしただけだとエラーになりましたが、int i; なら通るんですね
私の学習では、まだ
Func<bool> tryAskNumber = () =>
この書き方が理解できていないのですが、これでやっているのは例外の処理ではなくて
boolでメソッドの戻り値を評価して処理を繰り返しているのですね?
抽象的な質問だと言われればそのとおりなのですが、エラーが発生したときに例外を
返してくるメソッドを使っているときに、正常処理ができるようになるまで同じ処理を繰り返す、
というケースの質問でした
条件を変えるとかは本質的な話ではなくて、「例外が発生しなくなるまで繰り返す」という
処理フローそのものの質問です
>>984で、break文でtryの中からwhileブロックを抜ければよい、と理解できたので十分です
(tryブロックから、その外側のwhileを抜けられると思ってなかったので躓いてました)
数字入力を取り上げたのは、例として単純で、言わんとすることがすぐに伝わるかと思った
だけです
>>991
>>984
の var i=0; を var i; にしただけだとエラーになりましたが、int i; なら通るんですね
993デフォルトの名無しさん
2018/04/06(金) 11:09:07.04ID:iz5pUoek >>981
例外が出たらアプリケーションを止める
ファイルオープンだとしてもそれは変わらず、存在しなくてリトライしたいなら以下のような事前チェックをするべき
if(存在していない)continue;
ってのが理想だけどファイル系のエラーってたくさんあるし、確認しずらいのもあるからtry-catchを使わないのが現実的じゃないことも
メソッドが例外を出すのは使ってはいけない使い方をしているということなので、使っていい状態か確認してから呼び出すよう心がけるべきかな
例外が出たらアプリケーションを止める
ファイルオープンだとしてもそれは変わらず、存在しなくてリトライしたいなら以下のような事前チェックをするべき
if(存在していない)continue;
ってのが理想だけどファイル系のエラーってたくさんあるし、確認しずらいのもあるからtry-catchを使わないのが現実的じゃないことも
メソッドが例外を出すのは使ってはいけない使い方をしているということなので、使っていい状態か確認してから呼び出すよう心がけるべきかな
994デフォルトの名無しさん
2018/04/06(金) 11:31:23.65ID:KffLTaJD foreach(var a in XXX)
{
みたいなことを可能にするためには
XXX はどんなクラスを継承してないといけませんか?
(何が必要か)
たとえば、XXX がDataRowCollection 型だったら
foreach(DataRow a in XXX) とやらないと怒られてしまいます。
DataRow[] だったら、var が使えます。
この違いは一体なんだろう(なにが必要なのかと)、と
{
みたいなことを可能にするためには
XXX はどんなクラスを継承してないといけませんか?
(何が必要か)
たとえば、XXX がDataRowCollection 型だったら
foreach(DataRow a in XXX) とやらないと怒られてしまいます。
DataRow[] だったら、var が使えます。
この違いは一体なんだろう(なにが必要なのかと)、と
995デフォルトの名無しさん
2018/04/06(金) 11:39:53.65ID:QmpxvPzQ ジェネリックインターフェイスを実装してるから
996デフォルトの名無しさん
2018/04/06(金) 11:44:13.58ID:19AXhYIg IEnum〜だっけ
997デフォルトの名無しさん
2018/04/06(金) 11:54:13.71ID:KffLTaJD つまり、DataRowCollection は
IEnumerable を継承しているから、foreach の in に使えるけど
IEnumerable<T> は継承してないから foreach(var は許されない
ということですか
IEnumerable を継承しているから、foreach の in に使えるけど
IEnumerable<T> は継承してないから foreach(var は許されない
ということですか
998デフォルトの名無しさん
2018/04/06(金) 12:11:24.19ID:78uF6QEL >>992
ラムダ式を使わずに書くとこう
static void Main(string[] args)
{
var number = 0;
while (!TryAskNumber(out number))
Console.WriteLine("incorrect number.");
Console.WriteLine($"your number is : {number}");
}
static bool TryAskNumber(out int number)
{
Console.Write("enter a number = ");
return int.TryParse(Console.ReadLine(), out number);
}
プログラミングの基本は一気にすべてを解決しようとしないこと。
問題を小さな問題に分割すること。
「○○が成功するまで繰り返す」なら、○○の部分と成否を判定してリトライ
する部分は分けた方が基本的に分かりやすくなる
抽象的な質問に対して何か言えるのはこの程度だと思うけど....
ラムダ式を使わずに書くとこう
static void Main(string[] args)
{
var number = 0;
while (!TryAskNumber(out number))
Console.WriteLine("incorrect number.");
Console.WriteLine($"your number is : {number}");
}
static bool TryAskNumber(out int number)
{
Console.Write("enter a number = ");
return int.TryParse(Console.ReadLine(), out number);
}
プログラミングの基本は一気にすべてを解決しようとしないこと。
問題を小さな問題に分割すること。
「○○が成功するまで繰り返す」なら、○○の部分と成否を判定してリトライ
する部分は分けた方が基本的に分かりやすくなる
抽象的な質問に対して何か言えるのはこの程度だと思うけど....
999デフォルトの名無しさん
2018/04/06(金) 12:42:38.82ID:bxzO13cU1000デフォルトの名無しさん
2018/04/06(金) 15:01:40.67ID:Mgh91ASd へー
10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 33日 23時間 52分 35秒
新しいスレッドを立ててください。
life time: 33日 23時間 52分 35秒
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- 【東京】西東京市の住宅で親子4人死亡 母親名義のマンションで知人男性も死亡 いきさつや関連を捜査 警視庁 ★2 [ぐれ★]
- 日テレの男性記者と女性記者がカラオケBOXで行為に及び、NHK記者が動画撮影 動画が拡散するも女性記者は「泥酔していて記憶がない」★3 [Ailuropoda melanoleuca★]
- 【労働力不足】43万人、外国人「育成就労」で補完 27年度から新制度 特定技能制度と合わせて123万人まで受け入れ [ぐれ★]
- 高市内閣の若い世代の支持率は92.4% FNN世論調査★7 [♪♪♪★]
- 日テレの男性記者と女性記者が二次会のカラオケBOXでわいせつ行為 NHK記者が撮影、動画拡散 女性記者「泥酔していて記憶がない」★2 [Hitzeschleier★]
- ジャパネットたかた、売上高が過去最高に…2950億円の見込み [煮卵★]
- 高市政権、今後2年間で43万人の外国人受け入れ決定 [329271814]
- 【高市吉報】 TSMC熊本工場、4nmも飛ばして2nm製造となることが判明。後進国ジャップ、飛び級で世界最先端の国となるwwwww [197015205]
- 【高市悲報】小野田大臣(偏差値35)「アニメはテストの点数を上げる🤩るろ剣で日本史爆上がりした」 [359965264]
- 子供3人道連れに無理心中した母親が借りてたマンションの部屋で惨殺された若い男の遺体を発見 [342741319]
- 【悲報】浜辺美波さん、ガチでやらかしてるっぽい [455031798]
- 粘粘粘🏡
