ニートです1からプログラミングを教えてくれるat PROG
ニートです1からプログラミングを教えてくれる - 暇つぶし2ch50:takasi
15/12/26 18:38:35.76 .net
VSは日本語です
どちらもあります!

51:takasi
15/12/26 18:47:54.32 .net
C#を起動するんでしたね。しかし色んなテンプレートがあって混乱しますURLリンク(i.gyazo.com)
C#を選択するとAndroidやiOSの項目が出てくるのですがC#でこれらのアプリも作れるんですかねえ

52:片山博文MZ ◆T6xkBnTXz7B0
15/12/26 18:48:53.61 .net
C#のコンソールアプリを作ってみろ。名前はMyFirstConsoleAppで。

53:takasi
15/12/26 18:51:22.17 .net
できました
URLリンク(i.gyazo.com)

54:片山博文MZ ◆T6xkBnTXz7B0
15/12/26 18:55:09.02 .net
Mainの内部に
「Console.WriteLine("こんにちは世界");
Console.WriteLine("Enterを押してね");
Console.ReadLine();」
と入力して「ビルド」しろ。
成功したら「デバッグを開始」せよ。

55:takasi
15/12/26 19:02:33.39 .net
URLリンク(i.gyazo.com)
できました!これで大丈夫ですかね?
なんか”とか関数?とか勝手に入力してくれるんですがこれでプログラミング上達するんですかね

56:片山博文MZ ◆T6xkBnTXz7B0
15/12/26 19:06:59.52 .net
Mainの中身を
「String str = "変数の中身";
Console.WriteLine("「" + str + "」");
Console.WriteLine("Enterを押してね");
Console.ReadLine();」 にして「デバッグを開始」せよ。

57:takasi
15/12/26 19:12:25.41 .net
URLリンク(i.gyazo.com)
できました!

58:片山博文MZ ◆T6xkBnTXz7B0
15/12/26 19:14:42.17 .net
>>55
インテリセンスと言う入力支援機能だよ。
文字を少し入力してCtrl+Tabで補完ができる。

59:片山博文MZ ◆T6xkBnTXz7B0
15/12/26 19:18:39.53 .net
Stringとか" "で囲まれたものは文字列だ。
+という演算子で文字列どうしを連結できる。
文字列をConsole.WriteLineという関数に渡すと
その文字列を画面に出力する。

60:片山博文MZ ◆T6xkBnTXz7B0
15/12/26 19:23:18.67 .net
「Console.Write("文字列を入力してね: ");
String str = Console.ReadLine();
Console.WriteLine("【"+str+"】");
Console.WriteLine("Enterを押してね");
Console.ReadLine();」にして開始しろ。

61:takasi
15/12/26 19:24:26.08 .net
なるほど!ReadLineは変数を指定せずにWriteLineで書き込んだ文字列をすべて表示してくれるんですね!

62:片山博文MZ ◆T6xkBnTXz7B0
15/12/26 19:27:15.50 .net
次はforループだ。
「for (int i = 0; i < 10; ++i) {
Console.WriteLine("【"+(i + 1).ToString()+"】");
}
Console.WriteLine("Enterを押してね");
Console.ReadLine();」にして開始しろ。

63:片山博文MZ ◆T6xkBnTXz7B0
15/12/26 19:32:37.27 .net
intとか0とか10というのは整数を意味してる。
「for (int i = 0; i < 10; ++i)」というのは、おおざっぱにいうと
「int i;
for (i = 0; i < 10; i = i + 1)」と同じだ。
i.ToString()はiを文字列にした結果を返す。

64:takasi
15/12/26 19:33:39.95 .net
できました!
>>60 URLリンク(i.gyazo.com)
>>62 URLリンク(i.gyazo.com)

65:takasi
15/12/26 19:37:39.27 .net
変数に文字を入れるときはString、数値を入れるときはintを付けるんですね!

66:片山博文MZ ◆T6xkBnTXz7B0
15/12/26 19:38:20.70 .net
整数とか文字列といったデータの種類のことを「型」という。
intとかStringというのは型名だ。
C#で変数を使うには、型名と変数名を指定しないといけない。
関数に渡すパラメーター(引数;ひきすう)には指定できる型が決まっている。
型の不一致はエラーになる。

67:片山博文MZ ◆T6xkBnTXz7B0
15/12/26 19:42:46.27 .net
C#で利用できるすべての型について調べなさい。

68:片山博文MZ ◆T6xkBnTXz7B0
15/12/26 20:01:29.72 .net
URLリンク(ufcpp.net)

69:片山博文MZ ◆T6xkBnTXz7B0
15/12/26 20:07:14.93 .net
演算子について
URLリンク(ufcpp.net)

70:片山博文MZ ◆T6xkBnTXz7B0
15/12/26 20:10:29.91 .net
制御フローについて
URLリンク(ufcpp.net)
基本的なことは、このサイトに全部書いてあるな。

71:片山博文MZ ◆T6xkBnTXz7B0
15/12/26 20:29:10.28 .net
課題12.BMIを計算するプログラムを作れ。
ヒント: Console.ReadLineで文字列を読み込み、文字列変数に代入。
文字列をSystem.Single.Parseでsingle型に変換。
BMIを計算する公式を使う。
計算結果を文字列にしてConsole.WriteLineで出力。

72:takasi
15/12/26 20:37:01.10 .net
まだ読んでるので少し時間がかかります
申し訳ありません!!!!!

73:片山博文MZ ◆T6xkBnTXz7B0
15/12/26 20:41:29.86 .net
時間制限はない。かまずに飲み込むよりも、むしろ噛み砕く時間が重要だ。気長にやりたまえ。

74:片山博文MZ ◆T6xkBnTXz7B0
15/12/26 21:18:00.17 .net
行き詰まったら何なりと質問してくれ。
あと、プロジェクトは1つだけでなく何個も作ることができるぞ。
目的に応じてプロジェクトを分けておくと再利用しやすい。
プロジェクトの名前の付け方は十年後のことも考えて命名したまえ。

75:takasi
15/12/26 21:19:02.85 .net
URLリンク(i.gyazo.com)
できました!
数値を入れる型についてなのですが、int使うならlong使えばいいじゃん!byte?いらないよ!と思ったのですが
これは型に入れる数に関わらず型自体にサイズ?があって、たくさんコードを書くプログラムを作るときに動作が重くなるから使う型を分けているのでしょうか?
例えば、
byte a = 1;

int a = 1;
は入ってる数は同じですが、型のサイズが違うので数値の範囲が決まっているのならbyteの方が節約できるということですか?
文章へったくそなので僕のイメージを伝えます
おちょこ=Byte
ジョッキ=Int
おちょことジョッキを用意して同じ分量水を入れて人間の手で運びます
おちょこは小さいのでたくさん運べる!(プログラムが軽快)
ジョッキは大きいので少しずつしか運べない!(プログラムが重い)

76:takasi
15/12/26 21:24:02.62 .net
詰まった部分書きます
System.Single.Parse(taiju)
System.Single.Parse(shincho)
Console.WriteLine( taiju / (shincho*2) );
としようとしたらできませんでした
あとReadLineを最後の行に入れないとプログラムが待機状態にならないで終了してしまうんですね

77:片山博文MZ ◆T6xkBnTXz7B0
15/12/26 21:37:38.79 .net
型によってデータサイズや処理速度が異なる。
サイズが大きいとメモリーを圧迫したり、遅くなったりする。またintより小さくても遅くなる。
Parseの結果は値として返される。それをsingle型の変数に代入せよ。

78:takasi
15/12/26 21:39:46.51 .net
>>75の続きです。
なら小さいプログラム作るときはlongでもいいね。とはならないのは、大きなプログラム作るときになったらサイズ節約しなきゃならんしやりかた統一しようぜ!ってことですか?
それとよく例文とかの小さい整数を入れる際にint型を使うのは、値は小さいけどbyte以上の値扱うかもしれないしそこまで大きい値扱わないからintでいっかーみたいなノリでしょうか?
すべて僕の見当違いでしたら忘れて下さい!

79:takasi
15/12/26 21:44:33.83 .net
分かりましたありがとうございます
こうすればよかったんですね
URLリンク(i.gyazo.com)

80:片山博文MZ ◆T6xkBnTXz7B0
15/12/26 21:46:17.44 .net
電卓を使って計算結果が正しいかどうか確認しなさい。

81:takasi
15/12/26 21:46:42.44 .net
>>76と言ってることが違かった!
Single taiju2 = System.Single.Parse(taiju)
Single sincho2 = System.Single.Parse(sincho)
Console.WriteLine( taiju2 / (shincho2*2) );

82:片山博文MZ ◆T6xkBnTXz7B0
15/12/26 21:54:14.64 .net
よし、これで君も素人C#プログラマだ。
課題13.じゃんけんゲームを作りなさい。
ヒント:利用者の手を整数で入力(1:グー、2:チョキ、3:パー)。コンピューターの手を乱数で生成。ifで条件分岐(3×3通り)。勝ち負けを表示。

83:takasi
15/12/26 21:55:38.73 .net
>>80
計算式が違ってました!グーグルで調べたのに!!
正しくはこちらです
URLリンク(i.gyazo.com)
かなり無理やりやった感あります

84:片山博文MZ ◆T6xkBnTXz7B0
15/12/26 22:11:12.58 .net
お休み。

85:takasi
15/12/26 22:35:31.87 .net
んほおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおお

86:takasi
15/12/26 22:36:44.77 .net
おやすみなせい

87:仕様書無しさん
15/12/26 22:43:10.61 .net
URLリンク(dorakuehoshi.hatenablog.com)
ゲーム攻略ブログで儲ける方法。

88:takasi
15/12/26 22:52:42.77 .net
ちょっと疲れたので休憩後再開
URLは見てないですが、ブログで儲ける方法ってすんごーい数のブログ作りまくればちりつもで儲けられるんじゃないですか

89:片山博文MZ ◆T6xkBnTXz7B0
15/12/26 23:41:30.86 .net
新しく別のプロジェクトを作る場合は、ファイルメニューから
「ソリューションを閉じる」を選んでから、新規作成→プロジェクトを選ぶ。
ソリューションとは、1個以上のプロジェクトをまとめたものだと考えるといい。

90:片山博文MZ ◆T6xkBnTXz7B0
15/12/26 23:51:11.98 .net
知的労働者は頭脳を酷使する。考えることや覚えることは案外エネルギーを消費する。
ハチミツ、チョコレート、コーヒーを適量摂取することをお薦めする。また、タンパク質やカルシウムも大切だ。
子どもの頃を思い出して規則正しい生活を心掛けよ。
睡眠時間と睡眠の質は頭の働きにかかわる。

91:片山博文MZ ◆T6xkBnTXz7B0
15/12/27 00:12:28.45 .net
変数名に型情報を含めれば、変数の命名が楽になり、変数名を見るだけで型がわかる。
(int型なら変数名の頭にiを付けるなど)
このような規則をハンガリアン記法という。

92:片山博文MZ ◆T6xkBnTXz7B0
15/12/27 00:21:07.31 .net
//乱数を生成する準備。
Random cRandom = new System.Random();
//1~3の乱数を生成する。
int iResult1 = cRandom.Next(3) + 1;

93:片山博文MZ ◆T6xkBnTXz7B0
15/12/27 00:30:07.31 .net
if (iPlayerTe == 1) {
if (iComputerTe == 1) {
//あいこ
...
}
if (iComputerTe == 2) {
//あなたの勝ち
...
}
if (iComputerTe == 3) {
//あなたの負け
...
}
}

94:片山博文MZ ◆T6xkBnTXz7B0
15/12/27 01:20:00.02 .net
BMI計算のプロジェクトをConsoleBmiKeisanという名前で保存してくれ。
じゃんけんゲームのプロジェクト名はConsoleJankenGameでいいだろう。
簡単なテスト用にConsoleTestというプロジェクトも作っておけ。

95:片山博文MZ ◆T6xkBnTXz7B0
15/12/27 01:55:27.63 .net
拡張子が.slnのファイルがソリューションで、拡張子が.csのファイルがC#のソースファイルだ。
中身はテキストファイルだから、どちらもテキストエディタで開けるはずだ。
保存されたソリューション(プロジェクト)をVSで開きたいときは.slnファイルをダブルクリックする。

96:片山博文MZ ◆T6xkBnTXz7B0
15/12/27 03:18:58.62 .net
変数を使うときは型名を指定しないとダメと言ったが、あれはウソだ。
型が明らかなときは型名の代わりにvarと書くことができる。
var eSincho = System.Single.Parse(str);

97:takasi
15/12/27 06:07:10.58 .net
すみませんサボってました!
なんか長ったらしくもっと簡単にできそうなのでまた書き直します・・・
URLリンク(i.gyazo.com)
URLリンク(i.gyazo.com)
URLリンク(i.gyazo.com)
今まで作ったプログラムは消して上書きしてしまいました
ジャンケン2で新しくプロジェクト作って命名します!
あまりレス読めてませんが起きたら読みます!

98:takasi
15/12/27 06:11:44.29 .net
プロジェクト名が変わらない・・・明日考えよう

99:takasi
15/12/27 06:15:35.08 .net
ああああああああああああああああああああああああ
前回作ったプログラムを見ながら新たに書き直したいのにウィンドウ増えない・・・明日考えよう

100:takasi
15/12/27 06:24:57.71 .net
>>97
あ、これループ前に変数に乱数を代入してるので相手がどの手をだすか2回め以降わかっちゃいますね

101:takasi
15/12/27 06:27:55.59 .net
あ~~~~~~寝る!!

102:takasi
15/12/27 20:28:06.17 .net
おはようございます
続きをやります

103:takasi
15/12/27 20:42:59.45 .net
なるほど頭に型の名前付ければ分かりやすいですね
cRamdomのcってなんでしょう rRamdomとはならないのでしょうか
じゃんけんゲームで詰まったところはあいこになった際の繰り返しです
ifを使うことを指定されていたので悩みましたがifじゃ無理なきがする・・・と思いグーグルで検索してWhileを使ってみました

104:片山博文MZ ◆T6xkBnTXz7B0
15/12/27 20:43:36.36 .net
他のソリューションにある.csファイルもVSで開けるはずだ。Mainの内部をコピペしろ。

105:takasi
15/12/27 20:48:49.73 .net
先生おはようございます
最初に作ったプロジェクト「MyFirstConsoleApp」ですべてのプログラムを書いていたのですが、色々いじってslnファイルの名前をConsoleJankenにしたのですが、フォルダ名はMyFirst~のママです。
これは直接フォルダ名を手打ちで変更してもいいものでしょうか?他のファイルに影響出ませんか?

106:takasi
15/12/27 20:51:57.20 .net
あと>>97で短く書き直すと言ったのですが、正直言います。面倒くさい!なので
>>100で言っていた部分を直しcpuHand = rnd.Next(1, 4); をwhileの中に移動しました

107:片山博文MZ ◆T6xkBnTXz7B0
15/12/27 21:01:45.50 .net
>>105
.slnや.csprojの中にもソリューション名やプロジェクト名の情報が入ってるから、
ファイル名を変えただけだと、不具合になるかもしれない。
面倒でもプロジェクトを一から作ることから始めるのがいいと思う。
汚い方法ならフォルダーまるごとコピーってのもあるけどプロジェクト名がかぶることになる。

108:片山博文MZ ◆T6xkBnTXz7B0
15/12/27 21:09:14.52 .net
ソリューションのフォルダーの中に「bin」というフォルダがある。
その中に「Debug」フォルダがある。
中を見ると拡張子が「.exe」のファイルがあるはずだ。
実行可能ファイル、通称「エグゼファイル」。
このファイルは、コマンドプロンプトからコマンドと同じように実行できる。

109:片山博文MZ ◆T6xkBnTXz7B0
15/12/27 21:17:50.74 .net
もちろん、プログラムが使用するバージョンの.NET Frameworkがインストールされていないと、
プログラムが開始しないでエラーになる。ユーザーにframeworkをインストールするように説明しないといけない。

110:takasi
15/12/27 21:17:50.98 .net
面倒なので新しく作りプログラム内容をコピペしました
他のファイル、フォルダはすべて削除しました
exeファイルでコマンドプロンプトからプログラムを実行デキルことを確認しました!

111:片山博文MZ ◆T6xkBnTXz7B0
15/12/27 21:24:43.71 .net
コマンドプロンプトは、昔のMS-DOSを引き継いでいる。
基本的な使い方と見た目はMS-DOSとあまり変わっていない。
キーボードで文字ベースの画面に文字列を入力して操作する操作系をCUIとかコンソールなどという。

112:片山博文MZ ◆T6xkBnTXz7B0
15/12/27 21:28:31.26 .net
BMI計算プログラムの計算結果を小数点以下第二位で四捨五入させて表示させよ。

113:片山博文MZ ◆T6xkBnTXz7B0
15/12/27 21:35:10.42 .net
>>103
クラス(class)のcだ。
クラスとはデータと、そのデータに対する処理を行う関数をまとめたものを扱うための型だ。
クラスの中の関数をメソッドという。
ソースをよく見るとclassが見つかるだろう?

114:片山博文MZ ◆T6xkBnTXz7B0
15/12/27 21:49:06.20 .net
失礼、staticのついた関数はインスタンスとは無関係でメソッドではない。
class Programの中にMainというstaticな関数がある。
Mainの引数はコマンドラインで渡された文字列の配列である。
コマンドラインは空白区切りである。

115:片山博文MZ ◆T6xkBnTXz7B0
15/12/27 21:54:52.60 .net
staticな関数を作ってみよう。
class Programの中に
「static int add(int x, int y) {
int z = x + y;
return z;
}」
と書きましょう。これは足し算する関数addです。returnは値を返します。
Mainでこのadd関数を呼び出すことができます。試してみよう。

116:takasi
15/12/27 22:06:25.15 .net
できました
static void Main(string[] args)
{
//BMI= 体重kg ÷ (身長m)^2
double dBmi;
double dWeight;
double dHeight;
Console.WriteLine("BMI計算プログラム");
Console.WriteLine("体重を入力して下さい(kg)");
//入力された文字列をfloat型に変換
dWeight = double.Parse(Console.ReadLine());
Console.WriteLine("身長を入力して下さい(m)");
dHeight = double.Parse(Console.ReadLine());
dBmi = dWeight / Math.Pow(dHeight, 2);
dBmi = Math.Round(dBmi, 2);
Console.WriteLine("あなたのBMIは" + dBmi);
Console.ReadLine();
}

117:takasi
15/12/27 22:08:39.46 .net
躓いたところは、変数に入れる値が低いのでfloat型にしようとしたのですが、Math.PowがDouble型の変数にしか対応していなかったのでやむなくDouble型にしました

118:片山博文MZ ◆T6xkBnTXz7B0
15/12/27 22:10:02.35 .net
メソッドを作ってみよう。class Programの中に
「int m_i = 0;
int f(int x){return m_i + x;}

とかいて、Main関数の中に
「var cMain = new Program();
cMain.m_i = 3;
Console.WriteLine(cMain.f(2).ToString());」
と書いて実行してみよう。予想通りに動いたかな? fはメソッドです。cMainはProgram型のインスタンスです。

119:takasi
15/12/27 22:17:22.07 .net
>>115
こんな感じで大丈夫でしょうか
class Program
{
static void Main(string[] args)
{
Console.WriteLine(add(100, 200));
Console.ReadLine();
}
static int add(int x,int y)
{
int z = x + y;
return z;
}
}

120:片山博文MZ ◆T6xkBnTXz7B0
15/12/27 22:20:17.08 .net
インスタンスは型を指定したnewによって作成され、メモリーにインスタンスのデータが格納されます。
インスタンスはメモリー上に複数存在することができます。

121:仕様書無しさん
15/12/27 22:21:27.01 .net
>>119
ok

122:takasi
15/12/27 22:23:58.07 .net
スタティックとかインスタンスとかよく分かってませんができました!
class Program
{
int m_i = 0;
int f(int x)
{
return m_i + x;
}
static void Main(string[] args)
{
var cMain = new Program();
cMain.m_i = 3;
Console.WriteLine(cMain.f(2).ToString());
Console.ReadLine();
}
}

123:takasi
15/12/27 22:26:19.76 .net
var cMainはインスタンスが入った変数ってことでしょうか

124:takasi
15/12/27 22:27:34.54 .net
メモリーが何なのかどこに存在するのかどのくらいの容量なのかわかりませんがそこはまだ追求しなくてもいいレベルですかね!頭がツアkれます!

125:takasi
15/12/27 22:28:33.42 .net
単語の意味は分かっていませんが、なぜこういう動作をするのかは一応分かりました

126:仕様書無しさん
15/12/27 22:33:06.12 .net
>>123
はい

127:takasi
15/12/27 22:35:14.68 .net
あと型varについてですが、型が明らかな時varを使うと仰っておりましたが、どこで明らかになっているかわかりません!
代入する値で判断しているのでしょうか?
例えば、
var i = 10 ←これは整数値だからint型だ!とコンピュータが判断
と、なればもう全てvarでもコンピュータの判断に任せることができるのではないでしょうか!
文章ヘッタクソなのでおかしなこと言っていたらごめんなさい!

128:takasi
15/12/27 22:36:45.84 .net
>>126
ありがとうございます先生!
クラスをNEWすると分身(インスタンス)ができるんですね

129:片山博文MZ ◆T6xkBnTXz7B0
15/12/27 22:40:46.21 .net
代入以外にもvarで型が決まるのはいろいろあるが、
代入の場合は右辺の型で決まる。
規則に従って型を推論する。
型推論というらしい。

130:takasi
15/12/27 22:44:06.96 .net
なるほど、推論ということは作り手の思ったものと違う型が作られてしまう場合もあるので”明らか”な時に使うのですね!
でも僕は確実にこれはこの型!ってはっきりしている方がいいのでvarを使うのは何か不安ですね
考えすぎですかね??

131:片山博文MZ ◆T6xkBnTXz7B0
15/12/27 22:45:43.98 .net
インスタンスを2個作って何かを試してみよ。

132:片山博文MZ ◆T6xkBnTXz7B0
15/12/27 22:53:20.60 .net
配列を作ってみよう。

int[] array = {12,34,56};
foreach(var item in array) {
Console.WriteLine(item);
}」

133:片山博文MZ ◆T6xkBnTXz7B0
15/12/27 22:59:21.03 .net
コマンドライン引数を表示してみよう。
「for(int i=0;i<args.Length;++i){
Console.WriteLine(i + ": " + args[i]);
}


134:片山博文MZ ◆T6xkBnTXz7B0
15/12/27 23:03:01.89 .net
お休み。

135:takasi
15/12/27 23:05:18.39 .net
>>131
できましたURLリンク(i.gyazo.com)

136:takasi
15/12/27 23:12:52.67 .net
>>132
できました
URLリンク(i.gyazo.com)
>>133
何も表示されませんでした・・・
URLリンク(i.gyazo.com)
おやすみなさい

137:takasi
15/12/27 23:15:22.84 .net
今日は余り進まなかった
単純なこと考えるだけなのに勝手にあたまがこんがらがるうううううううううう

138:仕様書無しさん
15/12/27 23:42:02.64 .net
>>114
修飾子がstaticのものはメソッドではないだとwww

139:takasi
15/12/28 00:35:39.58 .net
先生こんばんは
staticとは何なのかお教え下さい

140:takasi
15/12/28 01:02:08.57 .net
他に先生はいらっしゃいませんか!夕方8時に起きたので寝れないのです!
言語は問いません、なんでもやります僕はたまごっちです!

141:takasi
15/12/28 01:06:38.66 .net
言語は問わないと言いましたが、環境を用意するのが楽な言語が好ましいです・・・
Web開発とかアプリ開発に興味があります
偏差値40前後の高校を卒業後約10年ほぼニートでした
頭のできは良くありません!やる気もあまりありません!
今更自己紹介です!と、いうか違う言語を平行して勉強しないほうがいいですね!黙っときます!

142:仕様書無しさん
15/12/28 01:07:50.41 .net
>>141
違う言語を並行して学習するのは全然悪くないよ。

143:takasi
15/12/28 01:11:52.03 .net
>>142
そうなんですか先生
たしかにこのスレを立てる前にスプリクト言語?のUWSCというのをちょろっといじってましたがC#と似てる部分がありましたね
他の言語も似てるのでしょうかね?今ある言語はC言語の兄弟みたいなことを聞いたことあるのでたぶん似ているのでしょうね・・・
まあ僕に平行して勉強するような器用なことができるかはわかりませんが。。。
何か僕にやらせたい言語有りますか?すっごい他人任せですが

144:仕様書無しさん
15/12/28 05:58:51.88 .net
>>143
paizaに登録してスキルテストでまずはDランク問題全てクリアしなさい。C#も使えるよ

145:takasi
15/12/28 17:18:48.12 .net
おはようございます
paiza登録しました今から殺ります

146:takasi
15/12/28 19:22:26.76 .net
yesかnoを7回入力し、何回noを入力したかを出力するプログラムを書いているのですが
class Program
{
static void Main(string[] args)
{
int yukyu = 0;
for(int i = 1; i > 7 + 1; ++i)
{
String d_i = System.Console.ReadLine();
System.Console.WriteLine(d_i);
if(d_i == "no")
{
++yukyu;
}
}
System.Console.WriteLine(yukyu);
}
}
これでうまく動作しませんでした
エラーにもならないのですが、どこか問題あるのでしょうか。。。

147:takasi
15/12/28 19:24:52.27 .net
ReadLineが作動しないのです
forの外にあるReadLineは動作するのですが、for内のReadLineは動かないのでしょうか

148:片山博文MZ ◆T6xkBnTXz7B0
15/12/28 21:13:06.72 .net
i > 7 + 1

149:takasi
15/12/28 21:31:23.64 .net
アッ・・・

150:仕様書無しさん
15/12/28 23:27:17.27 .net
こうなってるのか?
(i>7)+1

151:takasi
15/12/29 00:19:33.58 .net
正 i < 7 + 1
誤 i > 7 + 1
でした

152:takasi
15/12/29 02:21:53.24 .net
今日はサボってしまいました申し訳ございません

153:takasi
15/12/29 21:46:23.67 .net
おはようございます
さっさとpaizaの課題を終わらせます

154:片山博文MZ ◆T6xkBnTXz7B0
15/12/29 21:55:38.35 .net
Main関数のargsは、実行時に渡されるコマンド引数を表す。
コマンドプロンプトでスペース区切りで渡すことができる。
プロジェクトのプロパティでもデバッグ時のコマンド引数を指定できるぞ。

155:片山博文MZ ◆T6xkBnTXz7B0
15/12/29 21:58:30.19 .net
コマンド引数によって処理を変えることはコンソール(CUI)ではよくある。
指定したファイルを開いて処理したい場合などに便利だ。

156:takasi
15/12/29 23:17:51.73 .net
>>10あたりで勉強したコマンドですね、覚えておきます
paizaの問題D002で1時間以上掛かってしまいました
適性が無いと感じ泣きそうになります

157:takasi
15/12/30 01:49:38.62 .net
8/32まで終わりました 残りも頑張ります
先生方に質問です。VSで引数"()"の"("を入力するとインテリセンス機能?で")"が入力されますが
文字入力位置は"("と")"の間に有り、引数が要らないReadLine()などですと
末尾に移動するのにアローキーの→を押すか、Endキーを押さなくてはならなくて指の移動が辛いです!
先生方はどのように移動させていますか?我慢して→かEndを押さねばならないのでしょうか?
冬で手がかじかみ誤打を頻発させています・・・

158:片山博文MZ ◆T6xkBnTXz7B0
15/12/30 07:48:28.06 .net
>>157
そのまま)を入力する。
手がかじかむなら暖房を掛ければ?

159:takasi
15/12/30 20:56:53.90 .net
おはようございます
それは)を入力して自動入力された)を削除でしょうか?
もしくは()の自動入力をOFFにしているので)をそのまま入力ということでしょうか?
後者であればその()の自動入力をOFFにする方法を教えていただきたいです!
他の自動入力機能は便利なので()だけOFFにするっていうのはできませんかね?

160:片山博文MZ ◆T6xkBnTXz7B0
15/12/30 21:18:50.47 .net
「ツール」→「オプション」から自分で探せ

161:仕様書無しさん
15/12/31 20:56:03.54 .net
応援してるよ!がんばって

162:takasi
15/12/31 21:36:11.04 .net
>>160
ありがとうございます
>>161
ありがとうございます
ありがとうございます
ありがとうございます
良いお年を

163:片山博文MZ ◆T6xkBnTXz7B0
16/01/01 00:16:42.73 .net
明けましてすみません。

164:takasi
16/01/02 05:35:53.62 .net
明けましておめでとうございます。今年もよろしくお願い致します。
課題の続きをします
このところ課題しかやってる気がしないのですがこれでいいのでしょうか
たぶんいいのでしょうねまずはコード書くことに慣れること
果てしてシンプルなメモ帳と自動シャットダウンタイマーを作れるところまで成長するのでしょうか、続くのでしょうか・・・
スマホアプリなんかも作ってみたいと思うようになってきましたそんな2016年

165:takasi
16/01/02 08:52:04.12 .net
配列のインデックス番号は0から始まりますよね
例えば配列に5つの要素を入れたい場合は0から始まるので、
要素1.[0]
2.[1]
3.[2]
4.[3]
5.[4]
new int[4]となるはずですが
int[] s = new int[4];
for (int i = 0; i < 5; ++i)
{
s[i] = int.Parse(Console.ReadLine());
}
としたところエラーがでました
しかし、宣言でint[5]にしたところエラーにならず、要素も5つ入れることができました
int[5]だと要素が6つ入るのでは?????????
????????状態です

166:takasi
16/01/02 08:55:46.04 .net
ああ、馬鹿だあああああああ
そりゃループ回数が5回だから要素が6つも入るわけ無いですよね
と、いうことは↑s[5]は何も要素が入ってないことになりますよね
わざわざ空の要素を用意しないといけないのでしょうかああわからない

167:takasi
16/01/02 08:58:50.57 .net
MSのガイドを見たら
int[] array = new int[5];

array[0]~[4]の要素しかないんですね
間違って覚えてた!!!!!!!!!!!!!

168:takasi
16/01/02 08:59:17.84 .net
ややこしい!!!!コンニャロう!!

169:片山博文MZ ◆T6xkBnTXz7B0
16/01/02 14:10:34.05 .net
int NUM = 5;
int[NUM] a;
for (int i = 0; i < NUM; ++i) {
a[i] = i;
}

170:仕様書無しさん
16/01/02 15:19:44.76 .net
>>1
ニートには100%無意味だから無駄な時間を使うべきではない。

171:仕様書無しさん
16/01/02 16:50:25.39 .net
バッチファイル厨嫌いじゃない

172:片山博文MZ ◆T6xkBnTXz7B0
16/01/02 17:25:39.25 .net
次はファイル入出力だ。
九九の表をテキストファイルに出力してみよ。

173:片山博文MZ ◆T6xkBnTXz7B0
16/01/02 17:30:02.02 .net
ファイルを入出力する前にオープン(開く)という操作が必要だ。
入出力が終わったらクローズ(閉じる)しないといけない。

174:仕様書無しさん
16/01/02 20:18:53.09 .net
あけおめ
なにこれ、マジスレ?

175:仕様書無しさん
16/01/02 20:33:29.78 .net
>>174
マジスレだよ。たかしは本気だ。

176:片山博文MZ ◆T6xkBnTXz7B0
16/01/02 20:40:42.77 .net
コマンドプロンプトで「notepad」と入力するとメモ帳が起動する。
メモ帳のファイル名が「notepad.exe」で、システムに登録されているからだ。
「notepad "(パスファイル名)"」を入力すればメモ帳でファイルが開かれる。試して見なさい。

177:片山博文MZ ◆T6xkBnTXz7B0
16/01/02 20:59:53.53 .net
コマンドを探しだす方法は、「サーチパス」、すなわちPATHという環境変数によって指定する。
詳しくは「Windows サーチパス」で検索。
環境変数にはシステムの環境変数と、プロセスの環境変数の二種類ある。
プロセスはプログラムのインスタンスである。
また、Windowsはサーチパス以外にもAppPathというレジストリーからの情報も使ってコマンドを検索することがある。
AppPathに登録していれば、Win+Rからコマンドを起動できる。

178:takasi
16/01/02 21:39:22.76 .net
おはようござざいます
ファイルの入出力やってみます
このスレはマジですけどやる気はマジではないかもしれません

179:片山博文MZ ◆T6xkBnTXz7B0
16/01/02 22:13:13.55 .net
「C:\Program Files」はプログラムと、変更しないデータを格納するためのシステムフォルダである。
このフォルダにプログラムを格納したい場合、「インストーラ」を使う。
このフォルダは管理者権限なく、勝手に変更してはならない。
よってこのフォルダに設定ファイルを書き込んではいけない。
設定を書き込みたい場合は、AppDataかレジストリを使う。

180:takasi
16/01/02 22:16:00.36 .net
九九の表できた・・・!
class Program
{
static void Main(string[] args)
{
int num;
for(int i = 1; i < 10; ++i)
{
num = i;
for(int n = 1; n < 10; ++n)
{
if (n == 9) Console.WriteLine(num * n);
else if (n == 1) Console.Write(i + "の段 " + num * n + " ");
else Console.Write(num * n + " ");
}
}Console.ReadLine();
}
}
嬉しいので報告だけしました

181:片山博文MZ ◆T6xkBnTXz7B0
16/01/02 22:18:44.87 .net
バイナリファイルの読み書きができたら、Windows Forms (WinForms) に進んでもいいぞ。

182:片山博文MZ ◆T6xkBnTXz7B0
16/01/02 22:22:42.12 .net
>>180
それをテキストファイルに書き込めばいい。
URLリンク(ufcpp.net)

183:片山博文MZ ◆T6xkBnTXz7B0
16/01/02 22:33:33.05 .net
数値の出力において桁をそろえたい場合はString.Formatメソッドを使う。
Stringクラスはよく使うので、ひまなときはStringのメソッドを眺めておきなさい。

184:takasi
16/01/02 23:07:56.26 .net
できました!これでよかでしょうか
URLリンク(i.gyazo.com)

185:takasi
16/01/02 23:10:45.17 .net
質問です。今C#を勉強していますが、このままC#を勉強すればCは勉強しなくても良いでしょうか

186:takasi
16/01/02 23:14:46.30 .net
と、いいますかC#の基本を理解すれば他の言語への学習もすんなり活きますか?

187:片山博文MZ ◆T6xkBnTXz7B0
16/01/02 23:24:22.88 .net
>>184
水平位置がそろっていないように見える。
九九の表ではそろえないといけない。
数値をそろえるためのstatic関数を作ってみろ。
String.Formatが使えるはず。
OSを作りたいならCは必須だが、C#の後でいい。

188:片山博文MZ ◆T6xkBnTXz7B0
16/01/02 23:35:49.30 .net
お休みなさい

189:takasi
16/01/02 23:37:53.66 .net
>>184
↑のすでに記述されたコードはいじらずに関数の追加だけでyそうか?

190:takasi
16/01/02 23:39:18.32 .net
おやすみなさい!!

191:takasi
16/01/03 03:39:37.95 .net
>>144先生!やっと終わりました!URLリンク(i.gyazo.com)
>>184の訂正は明日やりますおやすみなさい

192:仕様書無しさん
16/01/03 10:57:18.83 .net
>>191
なかなか飲み込み早いな!

193:片山博文MZ ◆T6xkBnTXz7B0
16/01/03 13:51:52.10 .net
九九の表の「データの流れ」(data flow)について考えよう。
九九のそれぞれの数はintであった。それが単一行Stringになり、WriteLineに渡される。
実は、改行文字は"\n"で表せる。これをWriteに渡せば勝手に改行してくれる。
改行文字を使うと、九九の表は複数行文字列で表せる。
データの流れは次のようにできる。
int→単一行文字列→複数行文字列⇒Write

194:takasi
16/01/03 15:01:40.20 .net
おはようございます続きやります

195:仕様書無しさん
16/01/03 15:07:11.52 .net
プログラムは役に立たせるためにあるの。
ニートは人が困ってるのを理解できてないからやれることなの。
人が困っているのを理解できない奴は役に立つプログラムは組めないの。
よって無駄。

196:takasi
16/01/03 15:19:40.58 .net
static関数を作って水平位置を揃える方法が分からなかったので
すでに記述されたコードをいじれば簡単にできそうだったのでやりました!
URLリンク(i.gyazo.com)
それはプログラムだけではなく全ての事に言えますね!
なら僕は自分がやりたいことだけやります!!

197:片山博文MZ ◆T6xkBnTXz7B0
16/01/03 15:27:53.06 .net
今度は、そのテキストファイルをいっぺんに読み込んで画面に出力してみろ。

198:takasi
16/01/03 15:53:05.90 .net
できました
URLリンク(i.gyazo.com)
質問です。結果を確認するためにはReadLineで画面に出力して確認するしか無いのでしょうか?

199:片山博文MZ ◆T6xkBnTXz7B0
16/01/03 16:07:45.16 .net
>>198
デバッグ機能にステップ実行がある。少しずつ実行しながら、下の「自動変数」などの画面で変数の内容を確認できる。
また、右下の画面で呼び出し履歴が見られるし、指定したブレークポイントでデバッグ実行を止めることができる。
ただし、プログラムがDebug versionじゃないといくつかの機能は使えないかもしれない。

200:takasi
16/01/03 16:11:30.02 .net
ReadLineで画面出力の方が手っ取り早いから使っているんですねわかりましたありがとうございます

201:片山博文MZ ◆T6xkBnTXz7B0
16/01/03 16:12:37.06 .net
Release versionはデバッグ情報がない分、プログラムサイズが小さく、実行が速くなる。
だから、一般にプログラムを配布する場合はReleaseを使う。

202:片山博文MZ ◆T6xkBnTXz7B0
16/01/03 16:15:27.34 .net
ReadLineは入力だぞ。出力ではない。

203:片山博文MZ ◆T6xkBnTXz7B0
16/01/03 16:19:06.40 .net
次はバイナリファイルの読み書きだ。
int[] aに適当なデータを入れてその内容をバイナリファイルに書き込め。

204:片山博文MZ ◆T6xkBnTXz7B0
16/01/03 17:22:59.63 .net
改行コードを含むテキスト文字列を一気に読み込む場合はFile.ReadAllTextを使う。
逆に一気に書き込みたい場合はFile.WriteAllTextを使う。

205:片山博文MZ ◆T6xkBnTXz7B0
16/01/03 17:39:21.25 .net
ReadAllTextやWriteAllTextにはオープンが必要ない。

206:片山博文MZ ◆T6xkBnTXz7B0
16/01/03 18:21:12.82 .net
バイナリ形式ファイルは、16進数の00~FFを1バイトとして、n個のバイトが並んだものと考えることができる。
このバイト数がファイルサイズである。ただし、どんなファイルでもバイナリとして読み込める。
通常、慣習としてテキストファイルではないものをバイナリファイルという。

207:仕様書無しさん
16/01/03 18:43:28.81 .net
今Fラン文系大卒職歴30歳営業なんですが
昔からプログラマーに憧れていまして
今から未経験でプログラマー関連の仕事に就きたい思っています
ですが35歳定年説なんてのも聞きますし
流石にこの歳からプログラマーは厳しいでしょうか?

208:片山博文MZ ◆T6xkBnTXz7B0
16/01/03 18:58:52.60 .net
>>207
未経験はベクターとかストアなどで職歴を作れ。
中途は実力と職歴があれば就職できる。

209:仕様書無しさん
16/01/03 19:24:30.27 .net
>>208
ありがとうございます
30歳からでもプログラマーを目指す事は可能なんですね
ただ未経験なので、知識や実力がないので、まずは仕事しながら勉強をして
その後、職業訓練校のC言語やマイコンなど勉強するコースに入りプログラマー系の仕事につけるようにガンバリマス

210:片山博文MZ ◆T6xkBnTXz7B0
16/01/03 19:54:27.31 .net
少し補足しておくと、日本企業は体裁を重んじるから注意が必要だ。
学歴はもちろん、体臭・口臭がひどかったり、受け答えが障害者っぽかったり、
マナーやエチケットを守らなかったりすると、落とされる可能性が高くなる。
就職活動にもマナーというものがあり、事前に本などを読んで把握しておかないといけない。
履歴書が手書きじゃないと受け付けない企業さえある。

211:片山博文MZ ◆T6xkBnTXz7B0
16/01/03 20:21:02.27 .net
ニートになってしまったなら、これまでの親の教育を全部疑わないといけない。
何かが世間体と違うのではないか?
なぜいつも軍隊っぽいのかとか。
キャッチボールもサッカーもしたことがないのはなぜなんだ、とか。

212:片山博文MZ ◆T6xkBnTXz7B0
16/01/03 20:28:55.64 .net
お前は旧日本軍なのか?

213:片山博文MZ ◆T6xkBnTXz7B0
16/01/03 20:47:07.01 .net
洗顔料やインターネットの存在も知らないような毒親の教育を受けたら最悪だぞ。

214:片山博文MZ ◆T6xkBnTXz7B0
16/01/03 20:48:59.42 .net
で、毎晩酒を飲んで悪酔いして、からんでくるんだぞ

215:片山博文MZ ◆T6xkBnTXz7B0
16/01/03 21:13:43.37 .net
やつらは体裁やら面子などを重んじて、子どもの生活など、1つも考えてはいない。
そんな奴等は地獄を見て滅んでしまえばいい。

216:takasi
16/01/03 22:11:00.40 .net
おはようございます
今から始めます

217:takasi
16/01/03 22:39:41.36 .net
できました
URLリンク(i.gyazo.com)
バイナリファイルとはテキストファイル以外を言うんですね、初めて知りました。
質問です。Streamクラス?を使うには一番上にあるusing System.IOを追加しないと使えませんでした
はじめから記述されていないのはファイルサイズやプログラムの実行速度に影響があるからでしょうか?
と、すると綺麗なコードを書くにはすでに記述されているLinqやTextも消したほうが良いですか?

218:takasi
16/01/03 22:44:10.99 .net
なんかあまり理解できていません
インスタンス?の作成のusing使う時と使わない時の違いとか
usingだと短く書けるからでしょうか
というか基本を全然理解できていない感
本とか読んだほうがいいですかねえ

219:片山博文MZ ◆T6xkBnTXz7B0
16/01/03 23:19:47.41 .net
バイナリ形式のnバイトの整数データを書き込むときに、上位バイトと下位バイトのどちらを
先に書き込むのかは、システムによって異なる。
C#では下位バイトを先に書き込む。このようなデータ形式をリトルエンディアンという。
バイナリデータの読み書きにおいてはデータサイズを常に意識しないといけない。

220:片山博文MZ ◆T6xkBnTXz7B0
16/01/03 23:25:19.57 .net
>>218
usingは記述を少なくして楽をするために使う。
重複した長いコードを何度も記述すると、コードを読むのも書くのも疲れるだろう。

221:片山博文MZ ◆T6xkBnTXz7B0
16/01/03 23:41:47.25 .net
お休み。次はお待ちかねのWinFormsをやるぞ。

222:takasi
16/01/03 23:52:49.05 .net
下位バイトとか上位バイトとかその他にも専門的な用語が散見されてこれはもう本買って読んだほうが良いかもしれませんね ついて行けてない感
ありがとうございましたおやすみなさい

223:片山博文MZ ◆T6xkBnTXz7B0
16/01/03 23:55:14.54 .net
.exeファイルもテキストファイルではないからバイナリである。
.csファイルはテキストファイルだから、バイナリファイルではない。
バイナリファイルをテキストエディタで開くと文字化けすることがある。

224:takasi
16/01/03 23:57:05.92 .net
文字もバイナリデータの集まりでは無いのでしょうか?

225:片山博文MZ ◆T6xkBnTXz7B0
16/01/04 00:19:47.33 .net
>>224
人間は動物だが、人間のことを動物呼ばわりすると失礼だろ。慣例だよ、慣例。

226:takasi
16/01/04 00:33:15.96 .net
そういうものなのですね
こういう性格なので飲み込みが遅いです・・・

227:takasi
16/01/04 00:35:52.82 .net
WinFormsはGUIを持ったプログラムなんですね!
アプリ制作に一歩近づきますね

228:仕様書無しさん
16/01/04 04:58:07.33 .net
どんなアプリ作りたいの?

229:takasi
16/01/04 17:26:48.96 .net
目下の目標はwindowsアプリの自動シャットダウンタイマーと最前面表示できるテキストエディタですね

230:takasi
16/01/04 17:29:23.69 .net
おはようございます

231:片山博文MZ ◆T6xkBnTXz7B0
16/01/04 17:41:18.88 .net
Windowsフォームアプリを作るよ。ファイルメニューからプロジェクトを新規作成。
Visual C#のWindowsフォームアプリケーションを選択してOK。
フォームのデザインが表示される。

232:片山博文MZ ◆T6xkBnTXz7B0
16/01/04 17:46:27.36 .net
1つ注意点がある。デザインのために自動生成されるコードには直接触らない。
編集する前にコメントを読んで自動生成コードじゃないか確認。
下手に編集するとデザインが変更できなくなる。

233:片山博文MZ ◆T6xkBnTXz7B0
16/01/04 17:53:48.61 .net
Form1のデザインでフォームを右クリックしてプロパティを選べ。
フォームのプロパティが表示される。
Textプロパティを「こんにちはWinForms」に変更してEnterキー。
TopMostというプロパティを探し出してTrueにしろ。

234:片山博文MZ ◆T6xkBnTXz7B0
16/01/04 17:57:14.76 .net
デザインが変わったのを確認してデバッグ開始。これでWinFormsアプリができた。
次にVS画面の右側に縦書きで「ツールボックス」という項目があるだろう。クリックしてみよ。

235:片山博文MZ ◆T6xkBnTXz7B0
16/01/04 18:02:08.20 .net
すべてのWindowsフォームをクリックして展開。ボタンを追加するぞ。
Buttonをクリック。デザインフォーム上をドラッグ。これでボタンができた。
ボタンを右クリックしてプロパティ。Textに「終了」と入力してEnter。
さらにボタンをダブルクリック。

236:片山博文MZ ◆T6xkBnTXz7B0
16/01/04 18:06:23.24 .net
button1_ClickメソッドがForm1クラスに追加される。
そこで「this.Close();」と入力する。デバッグ実行せよ。

237:片山博文MZ ◆T6xkBnTXz7B0
16/01/04 18:15:36.71 .net
課題。デザインフォームにいくつかLabelとTextBoxを追加して
BMIを計算するアプリを作れ。
ヒント:Textプロパティに文字列をセット

238:takasi
16/01/04 18:20:20.49 .net
おはおうございます
今から始めます

239:片山博文MZ ◆T6xkBnTXz7B0
16/01/04 18:39:03.30 .net
つまずいたら質問したまえ

240:片山博文MZ ◆T6xkBnTXz7B0
16/01/04 18:55:12.12 .net
どうした?

241:takasi
16/01/04 19:15:10.35 .net
できました!URLリンク(i.gyazo.com)
すべてのWindowsフォームが見つからずつまづきました
テキストボックスやラベルの縦のサイズは変更できないんですかね?

242:片山博文MZ ◆T6xkBnTXz7B0
16/01/04 19:20:13.65 .net
>>241
複数行(multiline)にするプロパティがあるはずだ。
TopMostプロパティはフォームを最前面に保つ働きをする。

243:片山博文MZ ◆T6xkBnTXz7B0
16/01/04 19:24:49.22 .net
Form1はクラスだから、1プロセスに複数のインスタンスを作ることができる。
ソースコード全体がどうなってるか把握しなさい。

244:takasi
16/01/04 19:32:25.17 .net
マルチライン見つけました
ソースコード把握しあした

245:片山博文MZ ◆T6xkBnTXz7B0
16/01/04 19:34:57.02 .net
「ボタンを押す」という出来事(イベント)に対してメソッドで処理を行う。
典型的なイベント駆動型プログラミングだね。
プロパティとイベントの使い方をマスターすれば、さまざまなアプリを作れるだろう。

246:takasi
16/01/04 19:36:52.54 .net
はいい!

247:片山博文MZ ◆T6xkBnTXz7B0
16/01/04 19:52:07.73 .net
新しいアプリを作成しよう。フォームのTopMostをTrueにする。フォームのAutoSizeModeをGrowAndShrinkにする。
TextBoxを配置。TextBoxを複数行に。TextBoxのDockをFillに。デバッグ開始。

248:takasi
16/01/04 20:03:22.86 .net
できました!URLリンク(i.gyazo.com)
Textに入力する文字は改行できないのでしょうか?

249:takasi
16/01/04 20:06:06.13 .net
右の↓をクリックしたら入力幅が広がって改行できるようになりました

250:takasi
16/01/04 20:08:19.79 .net
メモ:プロパティのTextの右側の↓クリック
URLリンク(i.gyazo.com)

251:片山博文MZ ◆T6xkBnTXz7B0
16/01/04 20:08:20.64 .net
>>248
AcceptsReturnプロパティ。昔はEnterキーのことをReturnキーと言っていた。
このフォームにメニューを付ければテキストエディタに見えるだろう。

252:takasi
16/01/04 20:13:32.06 .net
もしかしてwin純正のメモ帳もTextBoxを画面いっぱいに表示して作られてるんですか?
C#で作られてるかはワカリマセンが

253:片山博文MZ ◆T6xkBnTXz7B0
16/01/04 20:16:02.92 .net
テキストボックスがフォーム全体に広がっているからフォームを右クリックできない。
こんなときは「プロパティ」ウィンドウの上側のコンボボックスで切り替える。
プロパティウィンドウのカミナリアイコンをクリックするとすべてのイベントが見れるぞ。

254:片山博文MZ ◆T6xkBnTXz7B0
16/01/04 20:24:12.46 .net
>>252
メモ帳はC/C++で作られている。C/C++のテキストボックスはEDITというウィンドウクラスから
作られており、C#のそれとは多少違う。フォームのサイズが
変更されたらWM_SIZEメッセージを受け取り、テキストボックスのサイズを
合わせるといった原始的なことをやっている。

255:takasi
16/01/04 20:30:27.61 .net
C#でも純正メモ帳と全く同じようなものを作れるのでしょうか?
またC/C++でシンプルなメモ帳を作る人がいたらその理由は何でしょうか?
C#の方が楽に作れる気がするのですが
C/C++にもwinformsみたいなのがあって楽に作れるんですかね

256:片山博文MZ ◆T6xkBnTXz7B0
16/01/04 20:33:38.76 .net
そのサイズを合わせるのもSetWindowPosとかMoveWindowといったAPI関数呼び出しで
しなきゃいけない。プロパティは使わない。
なんというか、C/C++は生産性が低く、スマートではない。

257:片山博文MZ ◆T6xkBnTXz7B0
16/01/04 20:36:55.39 .net
C#は.NETという枠組みで動くが、C/C++はそれより外側の、OSに近い低レベルなところで動く。
.NETがなかった頃はVBやC/C++などしかなかった。

258:片山博文MZ ◆T6xkBnTXz7B0
16/01/04 20:42:57.76 .net
実行環境に.NETがないと動かない。これが最大のデメリット。

259:takasi
16/01/04 20:44:09.57 .net
わかったようなわからないような
C/C++は細かいところをいじれる と、いうか細かくしかいじれない感じですね

260:takasi
16/01/04 20:46:04.98 .net
.NET FREAMWORKSでしたっけ?あれがなきゃC#を動かせないんですか ふむふむ
WINマシンでしか動かせないんでしょうか?

261:takasi
16/01/04 20:46:48.59 .net
汎用的に動かせるのがC/C++という認識で良いでしょうか

262:takasi
16/01/04 20:51:18.05 .net
お風呂へ入ってきます

263:片山博文MZ ◆T6xkBnTXz7B0
16/01/04 21:28:34.66 .net
C++は基本的に自由だからフレームワークがいくつもある。
GTK+、Qt、Tcl/Tk etc.
しかしどれも決定的なものはなく、
インテリセンスが満足に動かない開発環境がほとんどだ。
迷路に迷うのも自由。避難指定地域へ行くのも自由。こめかみを撃ち抜くのも自由。
技術者の迷い道しかない。

264:片山博文MZ ◆T6xkBnTXz7B0
16/01/04 21:40:53.25 .net
LinuxにはMonoというフレームワークがあり、これが.NET Framework互換になっている。
だからC#で作ったゲームをLinuxで動かすということもある程度できる。

265:片山博文MZ ◆T6xkBnTXz7B0
16/01/04 21:44:47.77 .net
このようなゲーム作りに興味があるなら、「Unity C#」を検索したまえ。
Unityは今、もっとも熱いゲームエンジンだ。

266:仕様書無しさん
16/01/04 22:09:53.21 .net
おまえら、おれは吊り、自演じゃないと信じて応援すっけど、スカイプとかメールでやりとりしたほうが早くねえか?w

267:片山博文MZ ◆T6xkBnTXz7B0
16/01/04 23:01:30.52 .net
おやすみ

268:takasi
16/01/05 00:48:16.91 .net
なるほど、とりあえず今は何も考えずにC#やりますね
おやすみなさい
>>266
釣りとか自演の類に見えますかね??
いやあ色んな人から教わりたいですし、こういうところで経過報告した方が続くかなと思いまして
別に片山さんとマンツーマンでやってるわけでもなく>>144さんから出された課題もこなしてるので
僕に教えたいことがあればなんでも言って下さい
僕は>>5なので

269:takasi
16/01/05 11:47:55.24 .net
おはようございます
何やればいいかわからないのでpaizaCランク全部やります

270:takasi
16/01/05 12:02:05.14 .net
難易度がぐっとあがった・・・
本借りてきます

271:仕様書無しさん
16/01/05 12:48:08.14 .net
>>270
Cランカーなめんなw

272:takasi
16/01/05 13:05:06.06 .net
1週間の勉強じゃ足りないでしょうか?
何やればいいですかねえ、自分で課題探すのすごく苦手です

273:takasi
16/01/05 13:06:35.55 .net
模範解答を見てみたんですが、見たことのない関数が使われていたので
全ての関数が列挙された本とか買えばいいですかね

274:仕様書無しさん
16/01/05 14:05:15.20 .net
逆引き系ならポケットリファレンスかな?基礎学びたいなら独習C#。
この辺は片山先生の意見を待ってみたらいいかもしれない。

275:takasi
16/01/05 14:14:02.02 .net
とりあえず検索で出てきた勉強サイトで基礎を復習しつつ演習解きまくってみます

276:takasi
16/01/05 15:16:07.30 .net
ポケットリファレンスですか、本屋でどんなものか見てきあmスね

277:takasi
16/01/05 15:20:23.33 .net
本にしろサイトでの勉強にしろ結局は自分でどこまでやるか目標決めなくてはならないので
今の授業スタイルはこれをやれ、と指定された明確な目標があるからやりやすいですね
自分で勉強できない人間は独学というのは難しい・・

278:takasi
16/01/06 20:53:45.88 .net
おはようございます!!!!!!!センセーーーーーーーーー!!!!!!!

279:片山博文MZ ◆T6xkBnTXz7B0
16/01/06 21:03:10.86 .net
今日はメニューとダイアログをやろう。
ツールボックスのMenuStripをダブルクリックしてフォームに追加。
デザインフォームのメニューを右クリックして標準項目を追加。
ファイルメニューの終了をダブルクリックして終了コードを書き込む。
ツールメニューに「テスト(&T)」を追加。それをダブルクリック。

280:片山博文MZ ◆T6xkBnTXz7B0
16/01/06 21:05:51.24 .net
MessageBox.Show("テストです", "テスト", MessageBoxButtons.OKCancel);
というコードを追加。

281:片山博文MZ ◆T6xkBnTXz7B0
16/01/06 21:10:04.76 .net
ユーザーはコンピュータと対話するためにダイアログボックスというものを使う。
メッセージボックスは、ボタンを押すだけのシンプルなダイアログだ。
コモンダイアログは、「ファイルを開く」「印刷」などのよく使う共通のダイアログである。

282:片山博文MZ ◆T6xkBnTXz7B0
16/01/06 21:16:57.15 .net
ダイアログは「OK」「キャンセル」などのボタンが押されるか、Escキーが押されるまで
コントロール項目へのデータ入力を待つ。「OK」が押されるとダイアログ上の
コントロール項目のデータを読み込んでアプリに反映させて、ダイアログが閉じられる。
「キャンセル」やEscキーだとダイアログが閉じられるだけだ。

283:片山博文MZ ◆T6xkBnTXz7B0
16/01/06 21:25:02.30 .net
メニューはコマンドを選択するだけでなく、コマンドに関する現在の
状態や、ショートカットを表示したりできる。

284:片山博文MZ ◆T6xkBnTXz7B0
16/01/06 21:29:03.68 .net
デザインを間違ったときは、Ctrl+Zで1つ元に戻すことができる。
Ctrl+Yはその逆で1つ進めることができる。

285:takasi
16/01/06 21:48:43.25 .net
おはようございます今から始めます

286:片山博文MZ ◆T6xkBnTXz7B0
16/01/06 22:02:40.71 .net
独自のダイアログを作りたいなら、プロジェクトに新しいフォームを追加して
まずはMaximizeBox、MinimizeBox、ShowInTaskbarをFalseにする。
URLリンク(www.atmarkit.co.jp)
これを読んでテストがクリックされたら、自作のダイアログを表示するようにしなさい。

287:takasi
16/01/06 22:04:53.53 .net
>>284まで終わりました続けます

288:片山博文MZ ◆T6xkBnTXz7B0
16/01/06 22:21:45.11 .net
フォームの追加は、プロジェクトから追加→新規項目から行う。
モーダルダイアログの表示は次のようなコードになる。
var form2 = new Form2();
form2.ShowDialog(this);

289:takasi
16/01/06 22:24:03.28 .net
質問です>>286ではフォームの最大化、最小化ボタンの無効化をコードで記述していますが
これはフォームデザインのプロパティでFalseを選択してることと同じで記述する必要はありませんよね?

290:片山博文MZ ◆T6xkBnTXz7B0
16/01/06 22:26:13.47 .net
>>289
その通り。それらのプロパティはデザイン時でも実行時でも変更できる。

291:片山博文MZ ◆T6xkBnTXz7B0
16/01/06 22:37:00.92 .net
これを参考に、「ファイルを開く」コモンダイアログを使ってみなさい。
URLリンク(www.atmarkit.co.jp)

292:takasi
16/01/06 22:39:03.61 .net
できましたURLリンク(i.gyazo.com)
難しいコードが記述されてましたが>>288だけで充分だったのですね
続きやります

293:片山博文MZ ◆T6xkBnTXz7B0
16/01/06 23:01:15.03 .net
コモンダイアログはパラメータがたくさんあって大変難易度が高い。
最適なパラメータを選ぶのはプロでも難しい。

294:takasi
16/01/06 23:20:58.46 .net
てっきり新しいフォームを作って、それをコモンダイアログにするかと思い躓いていました
実際はメインフォームの開くスイッチにコード記述するだけで単純でした
URLリンク(i.gyazo.com)

295:takasi
16/01/06 23:22:34.52 .net
お風呂入ってきます

296:takasi
16/01/06 23:27:52.83 .net
ああああああああああ新しいフォームからもできますねこれ

297:takasi
16/01/06 23:31:58.87 .net
ああ、やってみたらコモンダイアログと新しいフォームが2つ立ち上がってしまい失敗ですね
>>294で正しかったです

298:片山博文MZ ◆T6xkBnTXz7B0
16/01/06 23:44:45.61 .net
おやすみなさい

299:takasi
16/01/07 00:35:50.07 .net
ありがとうございましたおやすみなさい

300:仕様書無しさん
16/01/07 18:42:04.30 .net
おなようございます
独習か猫でもわかるを買ってきます。

301:片山博文MZ ◆T6xkBnTXz7B0
16/01/07 18:53:19.03 .net
課題。最前面表示のテキストエディタを作れ。
【要件】
・ファイルメニューからテキストファイルが開ける。保存できる。
・複数行のテキストを編集できる。
・フォームのサイズを変えると中のテキストボックスもフィットする。
・常に最前面に表示される。

302:片山博文MZ ◆T6xkBnTXz7B0
16/01/07 19:06:43.87 .net
ReadMe.txtとLicense.txtというファイルを追加すること。
Git for Windowsをインストールせよ。
.gitignoreというファイルを追加して無視すべきファイルを除外するようにしておくこと。
Gitレポジトリとしてコミットせよ。
完成したプログラムはGitHubにアップロードせよ。
ライセンスはNew BSD Licenseとする。

303:たかし
16/01/07 19:50:01.19 .net
おはようございます
猫でもわかるを買ってきました。
帰宅してから始めます

304:仕様書無しさん
16/01/07 20:07:21.98 .net
>>302
ちょwなんかいきなり難易度高くなってません?

305:takasi
16/01/07 20:31:18.47 .net
おはようございます今から初めます

306:takasi
16/01/07 20:37:58.91 .net
質問です、VSでプロジェクトが異なるファイルを別のタブで開くことはできますか?
例えばプロジェクト1のAファイルをプロジェクト2の作業中に開くことです。
コード内容を見比べたり参考にしたいのです
開けないとしたら見比べるのに良い方法は有りますか?別のテキストエディタを起動して読み込ませる方法しかないでしょうか

307:片山博文MZ ◆T6xkBnTXz7B0
16/01/07 20:44:25.67 .net
>>306
ファイルメニューの「開く」→「ファイル」で開けるぞ。
ファイルタブを右クリックして、「タブグループの新規作成」で比較ができる。

308:片山博文MZ ◆T6xkBnTXz7B0
16/01/07 20:52:18.61 .net
訂正。
AutoSizeModeはGrowOnlyのままでいい。

309:片山博文MZ ◆T6xkBnTXz7B0
16/01/07 21:01:42.30 .net
GUI項目の名前は、(Name)プロパティで指定できるが、
デザインした後に編集する裏技を紹介しよう。
編集メニューの「検索と置換」→「フォルダを指定して置換」を選んで
「すべて置換」。
プロジェクト名の場合はさらにプロジェクトの「名前の変更」と「プロパティ」、
ファイルメニューの「名前を付けて保存」を行う。

310:片山博文MZ ◆T6xkBnTXz7B0
16/01/07 21:13:56.20 .net
もう気付いてると思うが、変数や関数の名前に日本語が使える。
日本語のGUIについては、英語にこだわる必要はない。

311:takasi
16/01/07 21:25:25.26 .net
質問です。この授業ではネット上にあるオープンの既存のコードをコピペで使用して良いのでしょうか?
もちろん自分なりに添削し改良をしました。
それともコードを1から書かなければいけませんか?今の僕の知識と技術ではコピペしないとできそうにありません

312:takasi
16/01/07 21:27:02.65 .net
コード内容もきちんと読みどういう動作をしているかを考えて使っています

313:片山博文MZ ◆T6xkBnTXz7B0
16/01/07 21:32:17.51 .net
>>311
ライセンス上、著作権上の問題なければ使っても構わない。
中には使用条件のあるコードがあるかもしれないので、気を付けて。

314:takasi
16/01/07 21:35:09.02 .net
ありがとうございます。
>>301の要件のみを満たしたテキストエディタ完成しました
Git for Windowsをインストール中です

315:片山博文MZ ◆T6xkBnTXz7B0
16/01/07 21:35:38.05 .net
誰が書いても同じようになるコードには著作権はない。
アルゴリズムには著作権はない。
短いコードには著作権はない。

316:takasi
16/01/07 21:37:25.25 .net
Git for Windowsが何かもコミットと言葉の意味もワカリマセンがとりあえずやってみます

317:takasi
16/01/07 21:40:15.07 .net
Gitをどのコマンドラインで使うか聞かれたのですが
デフォルトで選択されているGit Bashで良いでしょうか

318:片山博文MZ ◆T6xkBnTXz7B0
16/01/07 21:40:35.79 .net
メールアドレスは持っているか?
GitHubにアップするためにはGitHubでアカウント作成が必要で、
アカウント作成にはメールアドレスが必要だ。

319:takasi
16/01/07 21:41:06.37 .net
GitHubのアカウント作成してきます

320:片山博文MZ ◆T6xkBnTXz7B0
16/01/07 21:42:44.18 .net
>>317
Git BashでOK。これはLinux風の端末だ。これを使うとLinuxの勉強にもなる。

321:takasi
16/01/07 21:42:46.26 .net
GitHubには学習で作った実用性の無いアプリもアップロードして良いのですか?
ゴミをアップするなとか怒られないでしょうか

322:片山博文MZ ◆T6xkBnTXz7B0
16/01/07 21:50:50.40 .net
>>321
実用性がなくても教育目的で役に立つかもしれない。
全く役に立たないと思ったら、後でprivateにしたり削除したりできる。
今は気にしないでいい。

323:takasi
16/01/07 21:51:01.42 .net
GitHubのアカウント取得、Gitのインストール完了しました
使い方が全くわからず困っています

324:takasi
16/01/07 21:52:47.46 .net
えーまずReadMe.txtとLicense.txtの追加をしたいのですが、これはVSから追加するのでしょうか?
形だけで内容を書かなくても良いでしょうか

325:片山博文MZ ◆T6xkBnTXz7B0
16/01/07 21:53:52.22 .net
まず、プロジェクトフォルダを右クリックしてGit Bashを選ぶ。
次に「git init」を入力する。これでローカルレポジトリができる。

326:片山博文MZ ◆T6xkBnTXz7B0
16/01/07 21:56:44.02 .net
>>324
フォルダのエクスプローラから新規作成で作成する。
ReadMe.txtはプロジェクトの内容を記述する。
License.txtにはNew BSD Licenseを記載する。

327:takasi
16/01/07 21:59:58.37 .net
ローカルレポジトリが何のことか分かりませんが git init しました masterってのが表示されました
フォルダはプロジェクトフォルダの事でしょうか?そのフォルダにReadMe.txtとLicense.txtを作成すれば良いですか?

328:片山博文MZ ◆T6xkBnTXz7B0
16/01/07 22:00:58.60 .net
さらに.gitignoreファイルをテキストエディタなどで作成する。
「C# .gitignore」で検索。

329:仕様書無しさん
16/01/07 22:01:43.42 .net
>>327
はい

330:片山博文MZ ◆T6xkBnTXz7B0
16/01/07 22:10:32.40 .net
【メモ帳で.gitignoreを作る方法】
メモ帳に「bin
obj
.vs」と書き込み、
ファイルメニューから名前を付けて保存。
ファイルの種類を「すべてのファイル」に変更。
プロジェクトフォルダに移動して「.gitignore」で保存。

331:takasi
16/01/07 22:14:23.27 .net
ファイル名は何でも良いですか?空白はできないとの警告があります
内容はこれでよいでしょうかURLリンク(i.gyazo.com)

332:片山博文MZ ◆T6xkBnTXz7B0
16/01/07 22:15:02.75 .net
次はレポジトリにファイルを追加する。
Git Bash上で
「git add *.cs *.sln *.csproj *.resx」
「git add .gitignore App.config」
「git add Properties/*」
と入力。
「git status」で追加したファイルを確認。

333:takasi
16/01/07 22:15:28.14 .net
>>330で作り直します

334:takasi
16/01/07 22:16:32.63 .net
>>331全てのファイルから保存を選んだらファイル名無しでも保存できました

335:片山博文MZ ◆T6xkBnTXz7B0
16/01/07 22:17:33.13 .net
>>331
名前を付けて保存のときに二重引用符をつけた「".gitignore"」で試してみなさい。

336:takasi
16/01/07 22:19:49.25 .net
>>332
これでよいでしょうかURLリンク(i.gyazo.com)

337:片山博文MZ ◆T6xkBnTXz7B0
16/01/07 22:21:18.27 .net
次はコミットだ。
「git commit -m "first commit"」
その次はGitHubにログインして「New Repository」を作れ。

338:片山博文MZ ◆T6xkBnTXz7B0
16/01/07 22:23:18.36 .net
>>336
untracked filesが追加されてない

339:takasi
16/01/07 22:26:24.19 .net
>>337
できました
>>338
何をすればよいでしょうか?
>>332をもう一度入力しますか?

340:takasi
16/01/07 22:28:19.38 .net
ああ、赤字のファイルが存在しないってことですかね

341:片山博文MZ ◆T6xkBnTXz7B0
16/01/07 22:29:52.65 .net
>>339
「git add (追加したいファイル)」で追加して、
「git commit -m "second commit"」でコミットだ。
できたらGitHubで作った場所をブラウズせよ。

342:片山博文MZ ◆T6xkBnTXz7B0
16/01/07 22:31:41.47 .net
その場所には何が書かれている?

343:takasi
16/01/07 22:38:08.21 .net
addしてstatusで赤字が無いことを確認し、セカンドコミットしました
GitHubで作った場所をブラウズせよで躓いていますURLリンク(i.gyazo.com)

344:片山博文MZ ◆T6xkBnTXz7B0
16/01/07 22:39:55.13 .net
>>343
右上のアイコンつついてプロフィールに移動して

345:takasi
16/01/07 22:40:59.64 .net
移動しました
URLリンク(i.gyazo.com)

346:片山博文MZ ◆T6xkBnTXz7B0
16/01/07 22:43:56.11 .net
レポジトリがないようだ。ボタン押してレポジトリを作成。名前は「CSharpTest」でいい。

347:takasi
16/01/07 22:46:22.64 .net
設定はどういたしましょうかURLリンク(i.gyazo.com)

348:片山博文MZ ◆T6xkBnTXz7B0
16/01/07 22:48:51.33 .net
>>347
optionalだから入力しなくていい。そのまま。

349:takasi
16/01/07 22:52:48.03 .net
ここからどう進めばよいでしょうかURLリンク(i.gyazo.com)

350:片山博文MZ ◆T6xkBnTXz7B0
16/01/07 22:53:12.06 .net
おやすみ

351:takasi
16/01/07 22:54:21.54 .net
ありがとうございましたおやすみなさい

352:片山博文MZ ◆T6xkBnTXz7B0
16/01/07 22:56:14.64 .net
そこに書いてある
git remote add ...
git push ...
の二行。

353:takasi
16/01/07 23:01:35.13 .net
できました

354:片山博文MZ ◆T6xkBnTXz7B0
16/01/07 23:06:48.25 .net
リモートレポジトリのURLをここに貼れ。

355:takasi
16/01/07 23:08:49.56 .net
これでしょうか?URLリンク(github.com)

356:片山博文MZ ◆T6xkBnTXz7B0
16/01/07 23:16:53.95 .net
空っぽだ。何かBashにエラーメッセージが表示されなかったか?
Gitの設定ができていない可能性がある。

357:takasi
16/01/07 23:21:25.49 .net
>>336の赤字以外特にエラーはありませんでした
URLリンク(i.gyazo.com)
ここでメールアドレス教えろ言われてますけどこれですかね?

358:片山博文MZ ◆T6xkBnTXz7B0
16/01/07 23:26:12.21 .net
>>357
それだ。書かれた通りにgit configしてエラーが出たところからやり直せ。
Gitの鍵の設定は終わってるか?

359:takasi
16/01/07 23:32:03.81 .net
できました
鍵の設定は何のことやら分かりません

360:takasi
16/01/07 23:34:34.80 .net
URLリンク(i.gyazo.com)
これのことでしょうか?これはユーザーネームを入力するのですか?それともログインパスでしょうか

361:片山博文MZ ◆T6xkBnTXz7B0
16/01/07 23:35:09.83 .net
URLリンク(monsat.hatenablog.com)

362:片山博文MZ ◆T6xkBnTXz7B0
16/01/07 23:44:44.49 .net
もう寝なさい
妖怪「めのしたクマー」にならないように

363:takasi
16/01/07 23:52:51.29 .net
あと少し付き合って下さいお願いします!!!
>>360まで終わりましたまたgit remote add origin URLリンク(github.com)
git push -u origin masterを入力すれば良いのでしょうか

364:takasi
16/01/07 23:54:34.96 .net
適当にいじってたらできました!!!!!!!
URLリンク(github.com)

365:takasi
16/01/07 23:56:23.54 .net
ここまでやりましたがGitHubが何なのかGitが何なのかコミットの言葉の意味とかよくわからないなまま色々入力しましたがとりあえずは休憩しますありがとうございました

366:takasi
16/01/07 23:58:56.27 .net
なんか個人情報とか漏れてませんよね色々入力したりアップしたので心配です

367:仕様書無しさん
16/01/08 00:47:26.91 .net
たかしってもしかして飲み込み速いんじゃね!!

368:仕様書無しさん
16/01/08 07:39:34.66 .net
すげえ!!

369:仕様書無しさん
16/01/08 11:45:21.90 .net
案外みんな優しいのな
イチが総攻撃されるスレかと思ってきてみたら

370:仕様書無しさん
16/01/08 16:23:36.44 .net
あげ

371:takasi
16/01/08 17:48:17.50 .net
おはようございます
ありがとうございます
今日は体調が優れない為お休みさせて頂きます
おやすみなさい

372:仕様書無しさん
16/01/08 18:31:24.30 .net
職業訓練3年前いったけどなかなか良かったよ
仕事やめて2年ニートして行ったんだが、まず生活習慣変えるのがきつかった
毎月10万もらえるんだが、遅刻欠席に異様に厳しくて1回でも理由ない遅刻欠席したら0円
もう必死に通ったよ
授業も二進数とかネットワークの仕組みとか本当基礎から初めてくれてありがったかった
1日が9:30~16:00だったから放課後にちょっと勉強して、卒業するときには応用情報取って、技術的にはJavaでWEBアプリケーション作れるようになってた
就職先も斡旋してくれて、面接の練習もしてくれてなんとか就職できた
最近ようやく設計にも関われるようになった

373:仕様書無しさん
16/01/08 22:14:15.50 .net
>>366
全てのファイルを見たけど個人情報はなかったよ
ちょっぴり漏れるのを期待してたんだけどな

374:仕様書無しさん
16/01/08 22:21:30.24 .net
差分がデカすぎる
殺人的プルリクが早速合って少しワロタ

375:仕様書無しさん
16/01/09 00:23:00.42 .net
片山さんもtakashiさんもすごいな。
片山さんやさしい。
寝なさいとかいってくれる上司がほしい。
働けとはいうけど寝なさいとか言ってくれる上司はいないからなーー

376:仕様書無しさん
16/01/09 13:24:06.83 .net
自演だろ

377:takasi
16/01/09 13:39:06.40 .net
おはようございます
職業訓練は今考えています、給付金は頂けないと思いますが
休み明けにでもハロワに行ってきます
差分がでかすぎるとは何か余計なものまでアップしちゃいましたかね
先生から直しを頂いたのですが後で保存の仕方調べておきます
半分ノリで建てた部分もあるんですが、まさかここまで熱心に教えてもらえるとは思いませんでした
なので僕も頑張りたいです
自演にしろ自演でないにしろ僕が勉強してることは事実なので生暖かく見守って下さい
ちょいと久しぶりの外出をして帰宅後に猫でも分かる~を読んで勉強したいと思います
先生が来たら授業の続きを受けたいと思いますそれではさようなら

378:仕様書無しさん
16/01/09 13:56:49.72 .net
たかしは何歳なの?

379:仕様書無しさん
16/01/09 14:41:21.62 .net
URLリンク(internet2020.s3-website-ap-northeast-1.amazonaws.com)

380:仕様書無しさん
16/01/09 14:43:49.49 .net
>>377
> 差分がでかすぎるとは何か余計なものまでアップしちゃいましたかね
"katahiromz"って人からのPull Request(通称プルリク)があるでしょう
その"改良してみたよ"のコミットがデカすぎるwと、>>374で書いただけ
アナタの"second commit"には何の問題もないよ

381:takasi
16/01/09 18:45:54.99 .net
おはようございます
僕は26です
問題なかったですか良かったです

382:片山博文MZ ◆T6xkBnTXz7B0
16/01/09 18:55:46.50 .net
GitHubのレポジトリを開いてプルリクの内容を確認してmergeしてみて。

383:takasi
16/01/09 19:17:11.94 .net
おはようございます
今からやります

384:takasi
16/01/09 19:22:06.94 .net
mergeしました自分がなにやってるかわからないんですけど大丈夫ですかね

385:片山博文MZ ◆T6xkBnTXz7B0
16/01/09 19:26:22.74 .net
Gitとは分散型のバージョン管理システムだ。
GitHubはGitリモートレポジトリを管理するウェブサービスだ。
レポジトリとはソフトウェアの格納庫のようなものであり、
主にパッケージやライブラリのソースを保管する。

386:片山博文MZ ◆T6xkBnTXz7B0
16/01/09 19:30:09.79 .net
今度は、ローカルレポジトリにpullしてみなさい。
pushは押す、pullはその反対の引き出す。
タンスの引き出しを連想するといい。

387:片山博文MZ ◆T6xkBnTXz7B0
16/01/09 19:36:38.32 .net
すまない、初心者はpullを使わなくてもいい。代わりにcloneしてみてくれ。
適当なフォルダで
git clone URLリンク(github.com)(以下略)
を実行してみてくれ。

388:takasi
16/01/09 19:43:05.59 .net
できました フォルダにファイルがDLされました

389:片山博文MZ ◆T6xkBnTXz7B0
16/01/09 19:45:52.12 .net
そのローカルリポジトリでもバージョン管理されているのを
確認するために「git log」を実行してみてくれ。

390:takasi
16/01/09 19:49:08.98 .net
プログラムの変更履歴みたいなのが出てきました

391:片山博文MZ ◆T6xkBnTXz7B0
16/01/09 19:50:33.80 .net
viというエディタが起動する。矢印キーやPgDnキーでスクロールできる。
viの終了にはqを押す。

392:takasi
16/01/09 19:52:06.90 .net
ログは出てきましたけどエディタは起動していません

393:片山博文MZ ◆T6xkBnTXz7B0
16/01/09 19:55:19.53 .net
そこに出てきたのはコミットした記録だ。
git commit -m "(メッセージ)"
で指定したメッセージがタイトルになる。
複雑な文字列はハッシュだ。これがコミットのIDである。
コミットとは確定とか確約などの意味があるが、日本語には適当な訳語はない。
Gitはすべてのコミットを記録する。

394:片山博文MZ ◆T6xkBnTXz7B0
16/01/09 20:00:37.58 .net
ログが短いときはviは起動せずコンソールに出力されるだけだ。

395:takasi
16/01/09 20:00:54.25 .net
なるほどなんとなくわかってきました
さっきのpullはgitでプロジェクトフォルダ上でpullしろって事だったんですね
そうすれば新しいバージョンにプログラムが更新されると

396:片山博文MZ ◆T6xkBnTXz7B0
16/01/09 20:04:45.33 .net
課題。編集メニューを追加し、「切り取り」「コピー」「貼り付け」
「削除」「すべて選択」ができるようにしなさい。
さらに変更ファイルをgit statusで確認、git addしてコミットしなさい。

397:takasi
16/01/09 20:08:16.36 .net
始めます

398:片山博文MZ ◆T6xkBnTXz7B0
16/01/09 20:35:44.62 .net
わかったかな?
textBox.Cut();
textBox.Copy();
textBox.Paste();
textBox.SelectedText = "";
textBox.SelectAll();

399:takasi
16/01/09 20:40:17.93 .net
今からコミットします

400:片山博文MZ ◆T6xkBnTXz7B0
16/01/09 20:44:56.76 .net
引き出しを押してリモートに保管しなさい。
おまじないは「git push origin master」だ。

401:takasi
16/01/09 21:00:59.38 .net
同じレポジトリ?にコミットする場合は以前コミットしたフォルダでコミットしなければなりませんか?
先ほどクローンしたプログラムのフォルダの名前が以前のと違っていたので
クローンのプログラムに手を加えてaddしてコミットしたんですが、いくつかのファイルが無いってエラーがでました

402:片山博文MZ ◆T6xkBnTXz7B0
16/01/09 21:01:56.05 .net
Gitのその他、役に立つコマンドを紹介する。
「git diff」でコミット後の変更点を見る。
「git diff (ファイル名)」でコミット後のファイルの変更点を見る。
「git checkout (ファイル名)」でファイルをコミット直後の状態に戻す。

403:takasi
16/01/09 21:02:58.49 .net
最初にレポジトリを作成した時のフォルダはTextEditer301で今回はCSharpTextをコミットしようとしました

404:片山博文MZ ◆T6xkBnTXz7B0
16/01/09 21:05:15.21 .net
>>401
「git status」の結果を見せて

405:片山博文MZ ◆T6xkBnTXz7B0
16/01/09 21:07:20.01 .net
「git mv (旧ファイル名) (新ファイル名)」は名前の変更。
「git rm (ファイル名)」はファイルの削除。

406:takasi
16/01/09 21:08:39.84 .net
status URLリンク(i.gyazo.com)

407:片山博文MZ ◆T6xkBnTXz7B0
16/01/09 21:11:13.30 .net
>>406
エラーメッセージは?

408:takasi
16/01/09 21:15:09.60 .net
error: pathspec 'second commit' did not match any file(s) known to git.
です

409:片山博文MZ ◆T6xkBnTXz7B0
16/01/09 21:18:14.74 .net
git commit -m "4th commit"

410:takasi
16/01/09 21:20:01.25 .net
できました!!
-m が無かったのが原因です失礼しました

411:takasi
16/01/09 21:22:31.79 .net
GitHubに無事反映されました

412:takasi
16/01/09 21:25:21.78 .net
赤は変更前で緑が変更後だと思うんですが、いじってないところもハイライトされてるので見辛いですね
こういう仕様なんですかね

413:片山博文MZ ◆T6xkBnTXz7B0
16/01/09 21:26:20.15 .net
ローカルリポジトリの記録は「.git」という隠しフォルダに記録される。
コミット内容を消したい場合は.gitを削除すればいい。

414:片山博文MZ ◆T6xkBnTXz7B0
16/01/09 21:28:01.78 .net
>>412
無視したいファイルは.gitignoreに相対パスで指定する。

415:片山博文MZ ◆T6xkBnTXz7B0
16/01/09 21:31:38.11 .net
ソースファイル(*.cs)はコンパイルされてオブジェクトファイル(*.obj)が出力される。
オブジェクトファイルとライブラリを組み合わせて.exeファイルにする処理をリンクという。
一連のコンパイルとリンクのことをビルドという。

416:takasi
16/01/09 21:34:56.60 .net
ファイルというか中身のコードですねURLリンク(i.gyazo.com)
Form1.csは138行以降から新規にコードが記述されましたが1-27は何も変更していないのにハイライトされてるので
どこが違うんだ~と探しちゃいますね

417:片山博文MZ ◆T6xkBnTXz7B0
16/01/09 21:36:26.85 .net
>>416
おそらく改行コードの違いだろう。

418:takasi
16/01/09 21:39:41.14 .net
ああそういえば先生のプログラムに手を加えるときに書式がなんたらかんたら言われて適当に押した覚えがあります
それですね

419:takasi
16/01/09 21:41:58.25 .net
ここまで把握しました

420:片山博文MZ ◆T6xkBnTXz7B0
16/01/09 21:42:39.60 .net
URLリンク(qiita.com)

421:takasi
16/01/09 21:51:05.60 .net
そこを見てgit config --global core.autoCRLF falseをしました
statusで確認したらcore.autocrlfが2つあって3行目のcore.autocrlfはtrueで
最後の行のcore.autocrlfはfalseでちゃんと設定できたかよく分かりませんね

422:takasi
16/01/09 21:54:28.50 .net
いじってみたら最後の行だけ変わるみたいですね、この問題は自分で調べておきます

423:片山博文MZ ◆T6xkBnTXz7B0
16/01/09 21:57:42.32 .net
まだ時間あるな。
「編集」→「元に戻す」(undo)と「ヘルプ」→「バージョン情報」を実装せよ。

424:片山博文MZ ◆T6xkBnTXz7B0
16/01/09 22:01:57.56 .net
終わったら試しに「git diff」してみて。
それからadd, commit, pushだ。

425:片山博文MZ ◆T6xkBnTXz7B0
16/01/09 22:22:38.35 .net
「バージョン情報」というフォームを作って
バージョン情報をそこに記載する。
それをモーダルダイアログとして表示する。

426:takasi
16/01/09 22:30:09.24 .net
git diffしました
文字が出続けてるんですが終わるまで待てばいいですか?

427:takasi
16/01/09 22:33:04.48 .net
なかなか終わらないんでエンター押しっぱなしにしたらENDになったんですが
閉じようと思ったらまだプロセスが動いてると警告出ました
時間かかりますかね?

428:片山博文MZ ◆T6xkBnTXz7B0
16/01/09 22:33:46.52 .net
>>426
矢印キーやPageUp/PageDownキーを押してみて。
終わるにはqを。

429:片山博文MZ ◆T6xkBnTXz7B0
16/01/09 22:38:48.96 .net
お困りですか?

430:takasi
16/01/09 22:39:35.70 .net
5thコミット完了しましたURLリンク(github.com)

431:takasi
16/01/09 22:41:19.72 .net
core.autoCRLF falseちゃんと機能してました

432:片山博文MZ ◆T6xkBnTXz7B0
16/01/09 22:45:02.86 .net
おやすみなさい

433:takasi
16/01/09 22:45:50.93 .net
本日もありがとうございましたおやすみなさい

434:片山博文MZ ◆T6xkBnTXz7B0
16/01/10 03:43:22.75 .net
【今後の予定】
プルリクの方法
GUIデザイン
マルチメディア
データベース
ネットワーク

435:片山博文MZ ◆T6xkBnTXz7B0
16/01/10 20:44:55.02 .net
勇者はおらんのか?

436:takasi
16/01/10 22:45:42.75 .net
申し訳ありません!!!!!!!!!
なかなか寝付けず今起きました
明日頑張ります
おやすみなさい・・・

437:仕様書無しさん
16/01/11 00:00:52.53 .net
片山さん共同プロジェクトの授業の予定があったら呼んでください馳せ参じますからね

438:片山博文MZ ◆T6xkBnTXz7B0
16/01/11 00:06:29.40 .net
はい、無断欠勤ひとーつ。減給ね。

439:takasi
16/01/11 06:44:44.66 .net
(T_T)
寝れません
本での学習は進んでいます 猫でもわかるC# 142/404p
授業には間に合いたいです
おやすみなさい

440:仕様書無しさん
16/01/11 13:45:50.57 .net
>>439
猫はわかりやすい?

441:仕様書無しさん
16/01/11 15:33:10.17 .net
C#やるなら、LINQPadがチョー便利
フリー版でも十分使えるぞ
これ豆な

442:takasi
16/01/11 19:17:14.85 .net
おはようございます

443:片山博文MZ ◆T6xkBnTXz7B0
16/01/11 19:22:20.87 .net
URLリンク(github.com)
これをForkしたものをローカルにcloneしてみたまえ。
Forkとは、方向性の違う分家を作り、自分好みに変えるために、
自分のリポジトリとして複製することだ。

444:takasi
16/01/11 19:24:50.91 .net
>>440
分かりやすいですけど完全な初学者向けではないかもしれません
2進数やビットが何も解説無く出てくるので
別に知らなくても読み進められますけど、猫でも分かるはいいすぎかもしれませんにゃ
LINQはまだ学習していませんがそこまで行ったら使ってみますね

445:takasi
16/01/11 19:26:06.27 .net
先生おはようございます
寝起きなので少々お待ち下さい

446:片山博文MZ ◆T6xkBnTXz7B0
16/01/11 19:27:00.43 .net
JankenGUI.slnを開き、デザインフォームで二つのPictureBoxのWidth,Heightを60にしなさい。
ドラッグやShiftキーでフォーム上のコントロールを複数選択し、VSの
「書式」メニューを使ってコントロールの位置を調整しなさい。

447:片山博文MZ ◆T6xkBnTXz7B0
16/01/11 19:32:14.41 .net
同じフォルダにある音声ファイル(*.wav)や画像ファイル(*.png)を確認。
ソリューションエクスプローラの「Properties」をダブルクリック。
リソースを選択。「リソースの追加」の右三角をクリック、
「既存のファイルの追加」を選ぶ。ファイルの種類を「ビットマップ」にし、
Shiftを押しながらpngファイルをすべて選択して開く。
オーディオのwavファイルも同様。

448:片山博文MZ ◆T6xkBnTXz7B0
16/01/11 19:35:33.57 .net
ここで「リソース」というのは、EXEファイルにデータを埋め込む機構のことだ。
データが埋め込まれていないデータファイルなら、容易に第三者に盗用されてしまう。
リソースはある程度これを防ぐ。

449:takasi
16/01/11 19:36:51.66 .net
今から始めます
スタート

450:片山博文MZ ◆T6xkBnTXz7B0
16/01/11 19:40:31.55 .net
button1をダブルクリック、次のコードを追加。
「pictureBox1.Image = Properties.Resources.gu;
var player = new System.Media.SoundPlayer(Properties.Resources.gu1);
player.PlaySync();」
できたら、デバッグ実行して、button1をクリックしてみよ。

451:片山博文MZ ◆T6xkBnTXz7B0
16/01/11 19:45:49.55 .net
コントロールはFontプロパティで文字を大きくしている。
また、ボタンを大きくした文字列に合わせるためにAutoSizeをTrueにした。

452:takasi
16/01/11 19:48:37.97 .net
デザインフォームはどうやって表示させるのでしょうか?
slnファイルを開きエクスプローラからファイル一つ一つクリックしたのですが
コードが表示されるだけです

453:takasi
16/01/11 19:49:16.22 .net
右クリックからビューデザイナで表示できました失礼しました

454:片山博文MZ ◆T6xkBnTXz7B0
16/01/11 19:50:06.53 .net
課題。ジャンケンゲームを完成させなさい。
ボタンとフォームの背景色を変更しなさい。
フォームはサイズ変更できないようにしなさい。

455:takasi
16/01/11 20:03:30.19 .net
課題始めます

456:仕様書無しさん
16/01/11 20:05:49.76 .net
>>444
あ、勘違いしてる
LINQPadはLINQ専用のツールじゃないよ
ちょっと試したいC#コードの断片がある時に、
わざわざVisual StudioでSolutionやProjectとか作らずに
気楽に試すことができるツール

457:片山博文MZ ◆T6xkBnTXz7B0
16/01/11 20:06:34.60 .net
フォームが読み込まれたときの処理はLoadイベントで行う。
表示されたときの処理はShownイベントで行う。
イベントはプロパティウィンドウのカミナリをクリックすれば見られる。

458:片山博文MZ ◆T6xkBnTXz7B0
16/01/11 20:13:34.58 .net
画像がPictureBoxからはみ出る場合は
SizeModeプロパティをいじるとよかろう。
ちなみに、画像はGoogle画像検索で「ジャンケン フリー素材」を検索して拾った。
音声は自分で録音したものだ。

459:片山博文MZ ◆T6xkBnTXz7B0
16/01/11 20:17:14.83 .net
自分で画像を用意したい場合はGIMPやInkscapeといったフリーソフトで
作成・編集したり、カメラやスキャナで取り込んだりするとよい。

460:takasi
16/01/11 20:23:30.63 .net
>>456
課題終わったら使ってみます!
思ったより頭が働いてないので少し時間かかります

461:片山博文MZ ◆T6xkBnTXz7B0
16/01/11 20:29:58.66 .net
リソースデータは名前で参照する。名前が重要だ。
どのリソースを使うかは、名前で決めないといけない。

462:仕様書無しさん
16/01/11 20:36:45.79 .net
>>460
気が向いたらでおkっす

463:片山博文MZ ◆T6xkBnTXz7B0
16/01/11 21:01:55.05 .net
ヒント:ボタンのクリック処理を関数で共通化

464:片山博文MZ ◆T6xkBnTXz7B0
16/01/11 21:06:36.41 .net
ヒント:勝ち負け判定関数

465:takasi
16/01/11 21:11:19.73 .net
最序盤でつまづいています
スタートボタンを押して開始→手をクリック→手を受け取り条件分岐
こういう流れで行きたいのですが
えーまず、メインのジャンケンの処理をどこに記述すればよいのかで混乱しています

466:takasi
16/01/11 21:17:10.61 .net
頭のなかではこんな感じなのですがURLリンク(i.gyazo.com)
実装の仕方がわからず・・・
さっさと質問しとけばよかったですすみません

467:片山博文MZ ◆T6xkBnTXz7B0
16/01/11 21:20:18.45 .net
... button1_click(...) {
show_hand(1);
}
... button2_click(...) {
show_hand(2);
}
... button3_click(...) {
show_hand(3);
}
void show_hand(int player_hand) {
int comp_hand = get_comp_hand();
...手を表示する処理をここに書く...
switch(hantei(player_hand, comp_hand)) {
...勝ち負けを表示...
}
}

468:takasi
16/01/11 21:24:17.30 .net
ありがとうございます
分からなかったらまた聞きます
行ってきます

469:takasi
16/01/11 22:30:37.72 .net
今日中に終わらなそうです

470:片山博文MZ ◆T6xkBnTXz7B0
16/01/11 22:32:51.24 .net
残りは明日にするか。
どこまでできた?

471:takasi
16/01/11 22:42:42.02 .net
判定して結果を表示させる所まで来ました
あとはあいこのループ処理と画像の表示と音声のタイミングが合ってないのでそれを直すことです

472:takasi
16/01/11 22:46:06.33 .net
・スタートおした時のジャンケンポンの効果音
・判定後のスタートをリセット
・画像のサイズをあわせる
まだまだありました

473:takasi
16/01/11 22:46:37.45 .net
明日の授業までに終わらせておきます

474:片山博文MZ ◆T6xkBnTXz7B0
16/01/11 22:48:43.00 .net
PlaySyncを使うとそこで処理が動かなくなる。
画像を変えるなら再生の前にするとよい。
一方、Playは非同期で動く。
非同期再生処理のタイミングを調整したいなら、スレッドを使うことになる。

475:takasi
16/01/11 22:51:07.18 .net
分かりました
頭をすっきりさせるためにお風呂に入ってきます

476:片山博文MZ ◆T6xkBnTXz7B0
16/01/11 22:51:07.43 .net
今日もよくがんばった。おやすみ。

477:takasi
16/01/11 22:51:32.48 .net
本日もありがとうございました!!おやすみなさい

478:takasi
16/01/12 00:56:08.92 .net
>>454
なんとか完成しました
今までは一つのメソッドに処理書いていたので楽でしたが
今回はメソッド同士の値の受け渡し?などがよく分かってなくて難しかったです
数こなしてなれるしか無いですね

479:片山博文MZ ◆T6xkBnTXz7B0
16/01/12 11:11:05.72 .net
>>478
add, commit, pushしてから、Githubでプルリクしなさい。

480:takasi
16/01/12 16:48:13.54 .net
おはようございます
プルリクエストしてみました。ちゃんとできていますでしょうか
体調不良のため途中で離脱するかもしれません

481:片山博文MZ ◆T6xkBnTXz7B0
16/01/12 17:14:09.31 .net
今日の勉強会は休みにします。

482:takasi
16/01/12 17:20:28.56 .net
分かりました、自習します

483:仕様書無しさん
16/01/12 18:49:16.21 .net
先生、たかし君のペースでいいので是非データベースとの連携もご教示ください!

484:takasi
16/01/13 13:50:41.92 .net
病院行こうと思ったら午前で終わってました
おはようございます

485:片山博文MZ ◆T6xkBnTXz7B0
16/01/13 19:10:53.68 .net
ジャンケンゲームの続きだ。
URLリンク(github.com)
これを適当なフォルダにcloneしてソースを眺めてみよ。

486:takasi
16/01/13 19:26:21.36 .net
おはようございます
始めます

487:片山博文MZ ◆T6xkBnTXz7B0
16/01/13 19:32:23.31 .net
Visibleプロパティをfalseにすると非表示になる。
SoundPlayer.Stopで音を止めることができる。

488:片山博文MZ ◆T6xkBnTXz7B0
16/01/13 19:37:24.49 .net
コードを読んだ感想を述べよ。

489:takasi
16/01/13 19:47:25.22 .net
僕のぐっちゃぐちゃなコードに比べるとすごく綺麗にまとまっていて
これはどういう動作をするコードなのかひと目で分かります
条件分岐の負けの判定の仕方でelse if ((3 + player_hand - comp_hand) % 3 == 1)
を見てこれはすげえと思いました
全体のコード量は少ないですが、すっきりしていて感動しました
そして自分にこんな綺麗に書ける自信が無くて胃が痛くなりました

490:takasi
16/01/13 19:49:19.08 .net
こういうやり方もあるのかと色々発見がありました
以上、小学生並みの感想文でした

491:takasi
16/01/13 19:52:11.35 .net
あとじゃんけんゲームがなかなかおもしろいです

492:片山博文MZ ◆T6xkBnTXz7B0
16/01/13 19:57:19.20 .net
その判定は大学数学の剰余類という概念を使っている。
多分、大学一年生で習うだろう。

493:takasi
16/01/13 20:04:12.87 .net
初めて聞いた単語で胃が痛くなりました
とりあえず頑張ります
ちなみに僕は数学は大の苦手です
数学の知識があったほうがどう考えてもいいですね

494:片山博文MZ ◆T6xkBnTXz7B0
16/01/13 20:04:33.55 .net
今日はアプリの設定データについて勉強する。
アプリを終了した後でも、データを保存しておきたい場合、
ファイルやレジストリにデータを記録することになる。
レジストリはWindowsが持っている、階層構造を持ったデータベースで
あり、ファイルとは異なる。

495:片山博文MZ ◆T6xkBnTXz7B0
16/01/13 20:10:02.84 .net
二つのTextBoxをフォームに配置し、さらにOKボタンとキャンセルボタンを置く。

496:takasi
16/01/13 20:12:34.79 .net
置きました

497:片山博文MZ ◆T6xkBnTXz7B0
16/01/13 20:18:30.96 .net
OKボタンをダブルクリックして、次のコードを追加。
var key = Microsoft.Win32.Registry.CurrentUser.CreateSubKey(@"Software\Takashi\MySoftware");
key.SetValue("Text1", textBox1.Text);
key.SetValue("Text2", textBox2.Text);
key.Close();

498:takasi
16/01/13 20:20:17.35 .net
追加しました

499:片山博文MZ ◆T6xkBnTXz7B0
16/01/13 20:23:26.62 .net
プログラムを実行してOKを押す。これでレジストリに書き込まれた。
Win+Rキーを押してregeditと入力してEnterキーを押す。
これでレジストリエディターが起動する。
HKEY_CURRENT_USER\Software\Takashi\MySoftwareがあることを
確認せよ。

500:takasi
16/01/13 20:28:09.63 .net
Tkashi\Mysofrwareとレジストリを確認しました

501:片山博文MZ ◆T6xkBnTXz7B0
16/01/13 20:31:55.02 .net
次は読み込みだ。フォームのLoadイベントに次のコードを追加。
var key = Microsoft.Win32.Registry.CurrentUser.OpenSubKey(@"Software\Takashi\MySoftware");
textBox1.Text = key.GetValue("Text1");
textBox2.Text = key.GetValue("Text2");
key.Close();

502:片山博文MZ ◆T6xkBnTXz7B0
16/01/13 20:36:28.82 .net
文字列リテラルに@が付いているのは\によるエスケープシーケンスを解釈しないためだ。
以前、"\n"は改行を表すと言った。"\t"はタブ文字だ。このように通常、""の中の\は特殊な解釈をする。

503:takasi
16/01/13 20:41:47.46 .net
オブジェクト型はString型に代入できないと注意されたのでConvert.ToStringしましたが大丈夫でしょうか
private void Form1_Load(object sender, EventArgs e)
{
var key = Microsoft.Win32.Registry.CurrentUser.OpenSubKey(@"Software\Takashi\MySoftware");
textBox1.Text = Convert.ToString(key.GetValue("Text1"));
textBox2.Text = Convert.ToString(key.GetValue("Text2"));
key.Close();
}

504:片山博文MZ ◆T6xkBnTXz7B0
16/01/13 20:41:56.00 .net
レジストリはシステムの資源を占有するので、サイズの大きなデータを書き込むべきではない。
大きな設定データはファイルに記録する。
ではどこに設定ファイルを書き込めばいいか?
特殊フォルダのAppDataに書き込むのがいいとされる。

505:片山博文MZ ◆T6xkBnTXz7B0
16/01/13 20:45:29.99 .net
>>503
key.GetValue("Text1").ToString();
でOKだ。

506:片山博文MZ ◆T6xkBnTXz7B0
16/01/13 20:49:48.52 .net
特殊フォルダの場所を取得するには次のように書く。
var path = System.Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);

507:片山博文MZ ◆T6xkBnTXz7B0
16/01/13 20:57:53.42 .net
読み込みされるか実行して確認せよ。
次にレジストリエディタでMySoftwareキーを削除してプログラムを再起動せよ。
例外が発生するはずだ。実はキーが開けないときkeyはnullになる。
nullというのは無効なデータのことだ。

508:takasi
16/01/13 21:01:26.06 .net
読み込まれないです!
URLリンク(i.gyazo.com)
Form1_Loadは初めから存在してなかったので自分で作ったのですがこれが原因でしょうか

509:片山博文MZ ◆T6xkBnTXz7B0
16/01/13 21:03:06.24 .net
キーが開けないときや作れないときはkey == nullになる。
このまま書き込んだり、読み込もうとすると例外が発生してしまう。
対処法はnullチェックをすることだ。
if (key != null) {
...
key.Close();
}

510:片山博文MZ ◆T6xkBnTXz7B0
16/01/13 21:04:38.96 .net
>>508
それはいったん消してプロパティウィンドウ
からイベントを追加せよ。カミナリのアイコンだ。

511:takasi
16/01/13 21:12:54.68 .net
>>507例外がスローされるのを確認して
>>509nullチェックで回避しました

512:takasi
16/01/13 21:19:18.77 .net
あ、読み込みも問題なくできました

513:片山博文MZ ◆T6xkBnTXz7B0
16/01/13 21:20:52.39 .net
課題。ジャンケンゲームでの勝ち・負け・引き分けの回数を
レジストリに記録するようにせよ。

514:片山博文MZ ◆T6xkBnTXz7B0
16/01/13 21:22:48.11 .net
アプリ設定に使ったファイルやレジストリキーを消すのは、
インストーラ側で行うことが多い。

515:片山博文MZ ◆T6xkBnTXz7B0
16/01/13 21:34:51.21 .net
課題が出来たら、プルリクせよ。残り時間は自習とする。

516:片山博文MZ ◆T6xkBnTXz7B0
16/01/13 22:11:34.19 .net
質問はありませんか?

517:takasi
16/01/13 22:19:11.11 .net
質問はありませんが、値の受け渡しで頭がぐるぐるしてます
とりあえずsave_keyメソッドとload_keyメソッドを作りぐっちゃぐちゃやってます頑張ります

518:takasi
16/01/13 22:45:21.86 .net
えーと、やりたいことは分かっているんですが思考が迷子です
時間がかかりそうなので宿題とさせて下さい
えーとプログラミング適正無しでしょうか悲しいです

519:片山博文MZ ◆T6xkBnTXz7B0
16/01/13 23:12:37.34 .net
ヒント:
アプリ側で保持するのは、回数が増えた分だ。現在の回数ではない。
レジストリへのアクセスは読み書きを一度に行う。
アプリ側の増分だけレジストリの回数を増やした後でアプリ側の増分をゼロにする。
回数を増やすのは勝敗引き分けが決まったときに行う。
回数の増分はフォーム側ではなくプログラム側で保持する。

520:片山博文MZ ◆T6xkBnTXz7B0
16/01/13 23:16:19.59 .net
おやすみ。身体を冷やすなよ。

521:片山博文MZ ◆T6xkBnTXz7B0
16/01/14 20:36:18.94 .net
ヘイ、ヨー!
始めっぞ

522:takasi
16/01/14 20:40:53.10 .net
おはようごじます・・・

523:片山博文MZ ◆T6xkBnTXz7B0
16/01/14 20:44:14.18 .net
さあーて、どこまでできたかなっ♪

524:takasi
16/01/14 20:50:08.39 .net
正直に言いますとまだ出来ていません
あまりの出来の悪さに悲しみに暮れ寝て起きたら今です
○にたい

525:片山博文MZ ◆T6xkBnTXz7B0
16/01/14 20:54:55.82 .net
ヘイ、まずは、三つのint型のメンバー変数を追加するよぉ。
初期値はゼロだぜぃ。
int kachi_count = 0;
int make_count = 0;
int aiko_count = 0;

526:takasi
16/01/14 20:56:23.94 .net
追加しました

527:片山博文MZ ◆T6xkBnTXz7B0
16/01/14 20:58:47.83 .net
お次は、勝敗判定の箇所を探してみよー。
hantei関数の呼び出しをしている場所があるよね。
ここで判定に応じてカウント変数を1つ加算だよお!


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch