回答編集履歴

2

問題の指摘に対する修正

2018/04/13 03:14

投稿

g_uo
g_uo

スコア212

test CHANGED
@@ -50,7 +50,7 @@
50
50
 
51
51
  recData += System.Text.Encoding.ASCII.GetString(buffer);
52
52
 
53
- var temporary = recData;
53
+ var temporary = Sendbuffa + recData;
54
54
 
55
55
  while (true)
56
56
 
@@ -78,12 +78,6 @@
78
78
 
79
79
  {
80
80
 
81
- // lines[1] が \r\n のみの場合があるのでその時はパス
82
-
83
- if (lines[1] == "\r\n")
84
-
85
- break;
86
-
87
81
  // temporaryに残りを詰めなおす
88
82
 
89
83
  temporary = temporary.Substring(newline + 2);
@@ -96,7 +90,7 @@
96
90
 
97
91
  {
98
92
 
99
- Sendbuffa += temporary; //データをいったん保存
93
+ Sendbuffa = temporary; //データをいったん保存
100
94
 
101
95
  break;
102
96
 

1

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

2018/04/13 03:14

投稿

g_uo
g_uo

スコア212

test CHANGED
@@ -35,3 +35,73 @@
35
35
  }
36
36
 
37
37
  ```
38
+
39
+
40
+
41
+ ### EDIT
42
+
43
+
44
+
45
+ 記述が不親切だったのでコード例を記載します。
46
+
47
+
48
+
49
+ ```csharp
50
+
51
+ recData += System.Text.Encoding.ASCII.GetString(buffer);
52
+
53
+ var temporary = recData;
54
+
55
+ while (true)
56
+
57
+ {
58
+
59
+ newline = temporary.IndexOf(Environment.NewLine);
60
+
61
+ if (newline >= 0)
62
+
63
+ {
64
+
65
+ string[] lines = temporary.Split(
66
+
67
+ new[] { Environment.NewLine },
68
+
69
+ StringSplitOptions.None
70
+
71
+ );
72
+
73
+ logText(lines[0], ComPort);
74
+
75
+
76
+
77
+ if (lines.Length > 1)
78
+
79
+ {
80
+
81
+ // lines[1] が \r\n のみの場合があるのでその時はパス
82
+
83
+ if (lines[1] == "\r\n")
84
+
85
+ break;
86
+
87
+ // temporaryに残りを詰めなおす
88
+
89
+ temporary = temporary.Substring(newline + 2);
90
+
91
+ }
92
+
93
+ }
94
+
95
+ else
96
+
97
+ {
98
+
99
+ Sendbuffa += temporary; //データをいったん保存
100
+
101
+ break;
102
+
103
+ }
104
+
105
+ }
106
+
107
+ ```