回答編集履歴
2
追記
answer
CHANGED
@@ -9,7 +9,7 @@
|
|
9
9
|
1行読んだ後、1文字ずつ精査し、ダブルクォーテーションが閉じられていない場合は、次の行も読み込み、前行と連結、というのを繰り返す必要があると思います。
|
10
10
|
|
11
11
|
読み込み処理のところのコードを書いてみました。
|
12
|
-
参考まで
|
12
|
+
参考まで(※エラー処理は省いています)
|
13
13
|
```VBA
|
14
14
|
Dim objFSO
|
15
15
|
Dim objr
|
1
コード追加
answer
CHANGED
@@ -6,4 +6,32 @@
|
|
6
6
|
警告3行目",null
|
7
7
|
```
|
8
8
|
なので単純にReadLineで読み込んだのを1行として扱ってしまうとおかしくなります。
|
9
|
-
1行読んだ後、1文字ずつ精査し、ダブルクォーテーションが閉じられていない場合は、次の行も読み込み、前行と連結、というのを繰り返す必要があると思います。
|
9
|
+
1行読んだ後、1文字ずつ精査し、ダブルクォーテーションが閉じられていない場合は、次の行も読み込み、前行と連結、というのを繰り返す必要があると思います。
|
10
|
+
|
11
|
+
読み込み処理のところのコードを書いてみました。
|
12
|
+
参考まで。
|
13
|
+
```VBA
|
14
|
+
Dim objFSO
|
15
|
+
Dim objr
|
16
|
+
Dim str
|
17
|
+
|
18
|
+
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
|
19
|
+
Set objr = objFSO.OpenTextFile(WScript.Arguments.Item(0))
|
20
|
+
|
21
|
+
Do While objr.AtEndOfStream <> True
|
22
|
+
str = ""
|
23
|
+
' 1行分のデータ読み込みループ
|
24
|
+
Do While objr.AtEndOfStream <> True
|
25
|
+
str = str & objr.ReadLine
|
26
|
+
' ダブルクォーテーションの数をカウントし偶数ならループを抜ける
|
27
|
+
if (Len(str) - Len(Replace(str,"""",""))) Mod 2 = 0 Then Exit Do
|
28
|
+
Loop
|
29
|
+
' 1行分のデータを表示
|
30
|
+
WScript.Echo "[" & str & "]"
|
31
|
+
Loop
|
32
|
+
objr.Close
|
33
|
+
|
34
|
+
Set objr = Nothing
|
35
|
+
Set objFSO = Nothing
|
36
|
+
|
37
|
+
```
|