teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

2

2016/07/27 02:13

投稿

takasima20
takasima20

スコア7468

answer CHANGED
@@ -14,4 +14,27 @@
14
14
  startIndex = startIndex + 1; // 開始位置","の次の文字
15
15
  tValue = data.Substring(startIndex);
16
16
  }
17
+ ```
18
+ --- 追加2 ---
19
+
20
+ 画面をいじらないってんならこんな感じで
21
+ ```C#
22
+ try {
23
+ //! シリアルポートからテキストを送信する.
24
+ serialPort1.Write(data +"\n");
25
+ int startIndex = data.IndexOf(",");
26
+ if (startIndex > -1) {
27
+ startIndex = startIndex + 1; // 開始位置","の次の文字
28
+ string tValue = data.Substring(startIndex);
29
+ int value = Convert.ToInt32(tValue, 16);
30
+ for (int i = 1; i <= 16; i++) {
31
+ //画面上の処理対象チェックボックスコントロールを特定
32
+ Control[] cs = this.Controls.Find("CheckBox" + i.ToString(), true);
33
+ //チェック対象ビットに1が立っていればチェックオン、0ならチェックオフ
34
+ ((CheckBox)cs[0]).Checked = ((value & (1 << (i - 1))) > 0);
35
+ }
36
+ }
37
+ } catch (Exception ex) {
38
+ MessageBox.Show(ex.Message);
39
+ }
17
40
  ```

1

1

2016/07/27 02:13

投稿

takasima20
takasima20

スコア7468

answer CHANGED
@@ -1,6 +1,17 @@
1
1
  必ずカンマがあるという前提だからスね。
2
- ```
2
+ ```C#
3
3
  int startIndex = data.IndexOf(",") + 1; // 開始位置","の次の文字
4
4
  string tValue = data.Substring(startIndex);
5
5
  ```
6
- カンマの有無を判定して処理を分ければいいと思います。
6
+ カンマの有無を判定して処理を分ければいいと思います。
7
+ --- 追加 ---
8
+
9
+ 例えばこんな感じでどうスかね。
10
+ ```C#
11
+ string tValue = data;
12
+ int startIndex = data.IndexOf(",");
13
+ if (startIndex > -1) {
14
+ startIndex = startIndex + 1; // 開始位置","の次の文字
15
+ tValue = data.Substring(startIndex);
16
+ }
17
+ ```