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

回答編集履歴

2

問題の指摘に対する修正

2018/04/13 03:14

投稿

g_uo
g_uo

スコア212

answer CHANGED
@@ -24,7 +24,7 @@
24
24
 
25
25
  ```csharp
26
26
  recData += System.Text.Encoding.ASCII.GetString(buffer);
27
- var temporary = recData;
27
+ var temporary = Sendbuffa + recData;
28
28
  while (true)
29
29
  {
30
30
  newline = temporary.IndexOf(Environment.NewLine);
@@ -38,16 +38,13 @@
38
38
 
39
39
  if (lines.Length > 1)
40
40
  {
41
- // lines[1] が \r\n のみの場合があるのでその時はパス
42
- if (lines[1] == "\r\n")
43
- break;
44
41
  // temporaryに残りを詰めなおす
45
42
  temporary = temporary.Substring(newline + 2);
46
43
  }
47
44
  }
48
45
  else
49
46
  {
50
- Sendbuffa += temporary; //データをいったん保存
47
+ Sendbuffa = temporary; //データをいったん保存
51
48
  break;
52
49
  }
53
50
  }

1

回答に不足があったので、コメントの回答を含め追記しました。

2018/04/13 03:14

投稿

g_uo
g_uo

スコア212

answer CHANGED
@@ -16,4 +16,39 @@
16
16
  {
17
17
  // lines[0]を送信して終わり
18
18
  }
19
+ ```
20
+
21
+ ### EDIT
22
+
23
+ 記述が不親切だったのでコード例を記載します。
24
+
25
+ ```csharp
26
+ recData += System.Text.Encoding.ASCII.GetString(buffer);
27
+ var temporary = recData;
28
+ while (true)
29
+ {
30
+ newline = temporary.IndexOf(Environment.NewLine);
31
+ if (newline >= 0)
32
+ {
33
+ string[] lines = temporary.Split(
34
+ new[] { Environment.NewLine },
35
+ StringSplitOptions.None
36
+ );
37
+ logText(lines[0], ComPort);
38
+
39
+ if (lines.Length > 1)
40
+ {
41
+ // lines[1] が \r\n のみの場合があるのでその時はパス
42
+ if (lines[1] == "\r\n")
43
+ break;
44
+ // temporaryに残りを詰めなおす
45
+ temporary = temporary.Substring(newline + 2);
46
+ }
47
+ }
48
+ else
49
+ {
50
+ Sendbuffa += temporary; //データをいったん保存
51
+ break;
52
+ }
53
+ }
19
54
  ```