質問編集履歴

4

ごじていせい

2018/10/25 23:40

投稿

kanka
kanka

スコア26

test CHANGED
File without changes
test CHANGED
@@ -58,7 +58,7 @@
58
58
 
59
59
  ```csv
60
60
 
61
- a,"b",c"d",e
61
+ a,"b"c,d"e",f
62
62
 
63
63
  ```
64
64
 
@@ -66,9 +66,9 @@
66
66
 
67
67
  a
68
68
 
69
- b",c"d
69
+ b"c,d"e
70
70
 
71
- e
71
+ f
72
72
 
73
73
 
74
74
 

3

誤字

2018/10/25 23:40

投稿

kanka
kanka

スコア26

test CHANGED
File without changes
test CHANGED
@@ -58,7 +58,7 @@
58
58
 
59
59
  ```csv
60
60
 
61
- a,"b"c",d",e
61
+ a,"b",c"d",e
62
62
 
63
63
  ```
64
64
 
@@ -66,7 +66,7 @@
66
66
 
67
67
  a
68
68
 
69
- b"c",d
69
+ b",c"d
70
70
 
71
71
  e
72
72
 

2

補足

2018/10/25 23:39

投稿

kanka
kanka

スコア26

test CHANGED
File without changes
test CHANGED
@@ -37,3 +37,45 @@
37
37
  そのような事態を避けるにはどのようなプログラムを作成すればよいでしょうか?
38
38
 
39
39
  よろしくお願いします。
40
+
41
+
42
+
43
+
44
+
45
+ 補足
46
+
47
+
48
+
49
+ ありがとうございます。回答を拝見させていただき自分でプログラムを作ろうとしたのですがうまくいきませんでした。
50
+
51
+ 理由は、
52
+
53
+ 扱うcsvファイルが、ダブルクオーテーションマークの中にさらにダブルクオーテーションマークが入っている構造をしていたためです。
54
+
55
+ 単純に"で括られた部分を抜き出す処理をするだけでは正しく分離できません。
56
+
57
+ 扱っているのはこんな感じのデータです。
58
+
59
+ ```csv
60
+
61
+ a,"b"c",d",e
62
+
63
+ ```
64
+
65
+ これを分離して以下のようにしたいです。
66
+
67
+ a
68
+
69
+ b"c",d
70
+
71
+ e
72
+
73
+
74
+
75
+ そのために、
76
+
77
+ string::findで、「,"」、「",」を検索したいです。
78
+
79
+ しかしfindだとstringの中の先頭しか検索できないので、二つ以上を検索できません。
80
+
81
+ どうすればよろしいでしょうか?

1

エクセルの書き出しについて捕捉しました

2018/10/25 23:23

投稿

kanka
kanka

スコア26

test CHANGED
File without changes
test CHANGED
@@ -30,7 +30,9 @@
30
30
 
31
31
 
32
32
 
33
+ エクセルの書き出しでは、セルの中にカンマが入っている場合、書き出し時に"12,32"のように""で括ることで区切りのカンマと区別しています。
34
+
33
- カンマ区切り読み込む場合、"12,32"の中もカンマで区切られてしまいます。
35
+ しかし、c++で単純な方法でカンマ区切りcsvを読み込む場合、"12,32"の中もカンマで区切られてしまいます。
34
36
 
35
37
  そのような事態を避けるにはどのようなプログラムを作成すればよいでしょうか?
36
38