質問編集履歴

4

プログラムの追加

2017/07/21 07:29

投稿

syameimaru
syameimaru

スコア181

test CHANGED
File without changes
test CHANGED
@@ -24,7 +24,81 @@
24
24
 
25
25
 
26
26
 
27
+ ###プログラム(CSVを配列に入れて、ラベルのテキストに出力するところ)
27
28
 
29
+ ```VB
30
+
31
+ Dim fileName As String = "CSVのデータがある場所のフルパス"
32
+
33
+ If IO.File.Exists(fileName) Then
34
+
35
+ Dim txtParser As FileIO.TextFieldParser =
36
+
37
+ New FileIO.TextFieldParser(
38
+
39
+ "CSVのデータがある場所のフルパス",
40
+
41
+ System.Text.Encoding.GetEncoding("shift_jis"))
42
+
43
+
44
+
45
+ '内容は区切り文字形式
46
+
47
+ txtParser.TextFieldType =
48
+
49
+ FileIO.FieldType.Delimited
50
+
51
+
52
+
53
+ 'デリミタはカンマ
54
+
55
+ txtParser.SetDelimiters(",")
56
+
57
+ Dim i As Object = Nothing
58
+
59
+ i = 0
60
+
61
+ 'ファイルの終わりまで一行ずつ処理
62
+
63
+ While Not txtParser.EndOfData
64
+
65
+ '一行を読み込んで配列に結果を受け取る
66
+
67
+ Dim splittedResult As String() = txtParser.ReadFields()
68
+
69
+ '出力してみる
70
+
71
+ For Each output As String In splittedResult
72
+
73
+ If Not i > 53 Then
74
+
75
+ mylabels(i).Text = output
76
+
77
+ '↑ラベル
78
+
79
+ i = i + 1
80
+
81
+ Else
82
+
83
+ End If
84
+
85
+ Next
86
+
87
+ End While
88
+
89
+ While i < 54
90
+
91
+ mylabels(i).Text = " "
92
+
93
+ i = i + 1
94
+
95
+ End While
96
+
97
+ '最後に閉じる
98
+
99
+ txtParser.Close()
100
+
101
+ ```
28
102
 
29
103
  ###補足情報(言語/FW/ツール等のバージョンなど)
30
104
 

3

説明の追加

2017/07/21 07:29

投稿

syameimaru
syameimaru

スコア181

test CHANGED
File without changes
test CHANGED
@@ -6,15 +6,23 @@
6
6
 
7
7
  ・CSVを行で読み込んでいて、その行のデータがない列が無視されてしまう
8
8
 
9
- ###写真
9
+ たとえば、下の写真1のように[A,1]から[D,1]までデータがあって[E,1]にはデータがないが、[F,1]にはデータがある。という場合は全体で18個のデータがインポートされるのですが、写真2のように[A,1]から[D,1]、[F,1]にはデータがないが[E,1]にはデータがあるという場合、全体で3個のデータしかインポートされません。
10
10
 
11
11
 
12
12
 
13
- ![ジ説明](772af060dc938fcedcca91f9653da63a.gif)
13
+ これを写真2のような場合でも18個のデータがンポトされるようにしたいです。
14
14
 
15
- ###試しこと
15
+ 何もないセルには" "かNULLを入れいです。
16
16
 
17
+ ###写真1
18
+
17
- 課題に対してアプローチしたことを記載してください
19
+ ![写真1](772af060dc938fcedcca91f9653da63a.gif)
20
+
21
+ ###写真2
22
+
23
+ ![イメージ説明](205c29fe45a8b18c425c7754dd0c4721.png)
24
+
25
+
18
26
 
19
27
 
20
28
 

2

写真の変更

2017/07/21 07:22

投稿

syameimaru
syameimaru

スコア181

test CHANGED
File without changes
test CHANGED
@@ -10,489 +10,7 @@
10
10
 
11
11
 
12
12
 
13
- ###該当のソースコード
14
-
15
- ```
16
-
17
- Public Class MainForm
18
-
19
- Private arrCsvData As Object
20
-
21
-
22
-
23
- Private Sub ExitToolStripMenuItem_Click(sender As Object, e As EventArgs)
24
-
25
- Close() 'フォームを閉じる
26
-
27
- End Sub
28
-
29
-
30
-
31
- Private Sub MainForm_Load(sender As Object, e As EventArgs) Handles Me.Load
32
-
33
-
34
-
35
- Timer1.Start()
36
-
37
- Dim mylabels As New List(Of Label)
38
-
39
- mylabels.Add(Label1)
40
-
41
- mylabels.Add(Label2)
42
-
43
- mylabels.Add(Label3)
44
-
45
- mylabels.Add(Label4)
46
-
47
- mylabels.Add(Label5)
48
-
49
- mylabels.Add(Label6)
50
-
51
- mylabels.Add(Label7)
52
-
53
- mylabels.Add(Label8)
54
-
55
- mylabels.Add(Label9)
56
-
57
- mylabels.Add(Label10)
58
-
59
- mylabels.Add(Label11)
60
-
61
- mylabels.Add(Label12)
62
-
63
- mylabels.Add(Label13)
64
-
65
- mylabels.Add(Label14)
66
-
67
- mylabels.Add(Label15)
68
-
69
- mylabels.Add(Label16)
70
-
71
- mylabels.Add(Label17)
72
-
73
- mylabels.Add(Label18)
74
-
75
- mylabels.Add(Label19)
76
-
77
- mylabels.Add(Label20)
78
-
79
- mylabels.Add(Label21)
80
-
81
- mylabels.Add(Label22)
82
-
83
- mylabels.Add(Label23)
84
-
85
- mylabels.Add(Label24)
86
-
87
- mylabels.Add(Label25)
88
-
89
- mylabels.Add(Label26)
90
-
91
- mylabels.Add(Label27)
92
-
93
- mylabels.Add(Label28)
94
-
95
- mylabels.Add(Label29)
96
-
97
- mylabels.Add(Label30)
98
-
99
- mylabels.Add(Label31)
100
-
101
- mylabels.Add(Label32)
102
-
103
- mylabels.Add(Label33)
104
-
105
- mylabels.Add(Label34)
106
-
107
- mylabels.Add(Label35)
108
-
109
- mylabels.Add(Label36)
110
-
111
- mylabels.Add(Label37)
112
-
113
- mylabels.Add(Label38)
114
-
115
- mylabels.Add(Label39)
116
-
117
- mylabels.Add(Label40)
118
-
119
- mylabels.Add(Label41)
120
-
121
- mylabels.Add(Label42)
122
-
123
- mylabels.Add(Label43)
124
-
125
- mylabels.Add(Label44)
126
-
127
- mylabels.Add(Label45)
128
-
129
- mylabels.Add(Label46)
130
-
131
- mylabels.Add(Label47)
132
-
133
- mylabels.Add(Label48)
134
-
135
- mylabels.Add(Label49)
136
-
137
- mylabels.Add(Label50)
138
-
139
- mylabels.Add(Label51)
140
-
141
- mylabels.Add(Label52)
142
-
143
- mylabels.Add(Label53)
144
-
145
- mylabels.Add(Label54)
146
-
147
-
148
-
149
- Dim fileName As String = "CSVデータがある場所のフルパス"
150
-
151
- If IO.File.Exists(fileName) Then
152
-
153
-
154
-
155
-
156
-
157
- Dim txtParser As FileIO.TextFieldParser =
158
-
159
- New FileIO.TextFieldParser(
160
-
161
- "CSVデータがある場所のフルパス",
162
-
163
- System.Text.Encoding.GetEncoding("shift_jis"))
164
-
165
-
166
-
167
- '内容は区切り文字形式
168
-
169
- txtParser.TextFieldType =
170
-
171
- FileIO.FieldType.Delimited
172
-
173
-
174
-
175
- 'デリミタはカンマ
176
-
177
- txtParser.SetDelimiters(",")
178
-
179
- Dim i As Object = Nothing
180
-
181
- i = 0
182
-
183
- 'ファイルの終わりまで一行ずつ処理
184
-
185
- While Not txtParser.EndOfData
186
-
187
-
188
-
189
- '一行を読み込んで配列に結果を受け取る
190
-
191
- Dim splittedResult As String() = txtParser.ReadFields()
192
-
193
-
194
-
195
- '出力してみる
196
-
197
- For Each output As String In splittedResult
198
-
199
- If Not i > 53 Then
200
-
201
- Debug.WriteLine(i)
202
-
203
- Debug.WriteLine(output)
204
-
205
- mylabels(i).Text = output
206
-
207
- i = i + 1
208
-
209
- Else
210
-
211
- End If
212
-
213
- Next
214
-
215
-
216
-
217
- 'Console.WriteLine("ここまで", i)
218
-
219
-
220
-
221
- End While
222
-
223
- While i < 54
224
-
225
- mylabels(i).Text = " "
226
-
227
- i = i + 1
228
-
229
- End While
230
-
231
-
232
-
233
- '最後に閉じる
234
-
235
- txtParser.Close()
236
-
237
-
238
-
239
-
240
-
241
-
242
-
243
- Dim Events As Object '行事内容の行数
244
-
245
- Dim Nodata As Object 'コメントも行事内容もない行数
246
-
247
- Dim Comments As Object 'コメントの行数
248
-
249
-
250
-
251
-
252
-
253
-
254
-
255
- '一つ目
256
-
257
- If Label5.Text Is "" And Label1.Text IsNot "" Then
258
-
259
- Me.Label5.Hide()
260
-
261
- Me.TableLayoutPanel1.Show()
262
-
263
- Events = Events + 1
264
-
265
- ElseIf Label5.Text Is "" And Label1.Text Is "" Then
266
-
267
- Nodata = Nodata + 1
268
-
269
- ElseIf Label5.Text = " " And Label1.Text = " " Then
270
-
271
- b = 1
272
-
273
- Dim fileNames As String = "C:\Users\KH005\Pictures\IMG_420.JPG"
274
-
275
- If IO.File.Exists(fileNames) Then
276
-
277
- Me.Hide()
278
-
279
- dpimg.Show()
280
-
281
- Exit Sub
282
-
283
- Else
284
-
285
- Me.Hide()
286
-
287
- dpsp.Show()
288
-
289
- Exit Sub
290
-
291
- End If
292
-
293
- ElseIf Label5.Text IsNot "" And Label1.Text Is "" Then
294
-
295
- Me.Label5.Show()
296
-
297
- Me.TableLayoutPanel1.Hide()
298
-
299
- Comments = Comments + 1
300
-
301
- Else
302
-
303
- MsgBox("コメントと行事内容が同時に書かれています。",
304
-
305
- MsgBoxStyle.YesNo Or MsgBoxStyle.Exclamation,
306
-
307
- "CSVの内容1行目を確認してください")
308
-
309
- Me.Hide()
310
-
311
- Exit Sub
312
-
313
- End If
314
-
315
-
316
-
317
-
318
-
319
-
320
-
321
-
322
-
323
- If Events = 1 Then
324
-
325
- '二つ目
326
-
327
-
328
-
329
- If Label11.Text Is "" And Label7.Text IsNot "" Then
330
-
331
- Me.TableLayoutPanel2.Show()
332
-
333
- Me.Label11.Hide()
334
-
335
- Events = Events + 1
336
-
337
- ElseIf Label11.Text Is "" And Label7.Text Is "" Then
338
-
339
- Nodata = Nodata + 1
340
-
341
- ElseIf Label11.Text IsNot "" And Label7.Text Is "" Then
342
-
343
- Me.TableLayoutPanel2.Hide()
344
-
345
- Me.Label11.Show()
346
-
347
- Comments = Comments + 1
348
-
349
- Else
350
-
351
- MsgBox("コメントと行事内容が同時に書かれています。",
352
-
353
- MsgBoxStyle.YesNo Or MsgBoxStyle.Exclamation,
354
-
355
- "CSVの内容2行目を確認してください")
356
-
357
- Me.Hide()
358
-
359
- Exit Sub
360
-
361
- End If
362
-
363
-
364
-
365
-
366
-
367
-
368
-
369
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
370
-
371
-
372
-
373
- If Not IsNothing(Comments) And Not IsNothing(Events) Then
374
-
375
- Dim h As Object
376
-
377
- Dim K As Object
378
-
379
- Dim j As Object
380
-
381
- Dim z As Object
382
-
383
- Dim x As Object
384
-
385
- Dim showcomment As Object
386
-
387
- K = 9
388
-
389
- j = 1
390
-
391
- z = 4
392
-
393
- showcomment = 9 - Events
394
-
395
- showcomment = showcomment - Comments
396
-
397
- If Events = 1 Then
398
-
399
- h = -22
400
-
401
- ElseIf Events = 2 Then
402
-
403
- h = -12
404
-
405
- ElseIf Events = 3 Then
406
-
407
- h = -2
408
-
409
- ElseIf Events = 4 Then
410
-
411
- h = 8
412
-
413
- ElseIf Events = 5 Then
414
-
415
- h = 18
416
-
417
- ElseIf Events = 6 Then
418
-
419
- h = 28
420
-
421
- ElseIf Events = 7 Then
422
-
423
- h = 38
424
-
425
- ElseIf Events = 8 Then
426
-
427
- h = 48
428
-
429
- ElseIf Events = 9 Then
430
-
431
- h = 58
432
-
433
- End If
434
-
435
- If Not showcomment = 0 Then
436
-
437
- z = z * (9 - Events) + h
438
-
439
- z = z + 6 * (Comments - 1)
440
-
441
- x = 52 '- (6 * (Comments - 1))
442
-
443
- For j = 1 To Comments
444
-
445
- 'If Not z = 18 Then
446
-
447
- Debug.WriteLine(z)
448
-
449
- Debug.WriteLine(mylabels(z).Text)
450
-
451
- Debug.WriteLine(x)
452
-
453
- Debug.WriteLine(mylabels(x).Text)
454
-
455
- mylabels(x).Text = mylabels(z).Text
456
-
457
- mylabels(z).Text = ""
458
-
459
- mylabels(x).Show()
460
-
461
- Me.Controls("TableLayoutPanel" & K).Hide()
13
+ ![イメージ説明](772af060dc938fcedcca91f9653da63a.gif)
462
-
463
- x = x - 6
464
-
465
- z = z - 6
466
-
467
- K = K - 1
468
-
469
- 'End If
470
-
471
- Next
472
-
473
-
474
-
475
- End If
476
-
477
- End If
478
-
479
- End If
480
-
481
-
482
-
483
- '-----------------------------------------------------------------------------
484
-
485
-
486
-
487
-
488
-
489
- End Class
490
-
491
-
492
-
493
- ```
494
-
495
-
496
14
 
497
15
  ###試したこと
498
16
 

1

CSV画像の追加

2017/07/21 07:12

投稿

syameimaru
syameimaru

スコア181

test CHANGED
File without changes
test CHANGED
@@ -2,14 +2,12 @@
2
2
 
3
3
  ・Visual Studioで掲示板システムを作っています。
4
4
 
5
-
6
-
7
-
8
-
9
5
  ###発生している問題・エラーメッセージ
10
6
 
11
7
  ・CSVを行で読み込んでいて、その行のデータがない列が無視されてしまう
12
8
 
9
+ ###写真
10
+
13
11
 
14
12
 
15
13
  ###該当のソースコード