Skip to content

Commit c3fbe69

Browse files
Merge pull request #98 from CSC207-2022F-UofT/97-reading-commas-in-csv-1
97 reading commas in csv
2 parents 141ef7e + 41a28f9 commit c3fbe69

File tree

4 files changed

+27
-27
lines changed

4 files changed

+27
-27
lines changed

src/data/FlashcardSets.csv

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
title,description,isPrivate,flashcardSetId,ownerUsername,flashcardIds
2-
test set 1,for testing study use case,false,0,testUser,0,1,2,3
3-
empty test set,for testing study use case with empty set,true,1,testUser
4-
Long Test Set,Insert Generic Description,false,2,Anthony,10,11,12,13,14,15,16,17,18,19,20,21
2+
"test set 1","for testing study use case",false,0,testUser,0,1,2,3
3+
"empty test set","for testing study use case with empty set",true,1,testUser
4+
"Long Test Set","Insert Generic Description",false,2,Anthony,10,11,12,13,14,15,16,17,18,19,20,21

src/data/Flashcards.csv

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
term,definition,creationDate,flashcardId,belongsToId
2-
test card 1,the first test card,2022-11-13T15:32:26.666982800,0,0
3-
test card 2,the second test card,2022-11-13T15:32:27.666982800,1,0
4-
test card 3,the third test card,2022-11-13T15:32:28.666982800,2,0
5-
alphabetical order checker,to test if alphabetical order is working,2022-11-13T15:32:29.666982800,3,0
6-
Term A,Definition A,2022-11-13T15:32:26.666982800,10,2
7-
Term B,Definition B,2022-11-13T15:32:27.666982800,11,2
8-
Term C,Definition C,2022-11-13T15:32:28.666982800,12,2
9-
Term D,Definition D,2022-11-13T15:32:29.666982800,13,2
10-
Term E,Definition E,2022-11-13T15:32:29.666982800,14,2
11-
Term F,Definition F,2022-11-13T15:32:29.666982800,15,2
12-
Term G,Definition G,2022-11-13T15:32:29.666982800,16,2
13-
Term H,Definition H,2022-11-13T15:32:29.666982800,17,2
14-
Term I,Definition I,2022-11-13T15:32:29.666982800,18,2
15-
Term J,Definition J,2022-11-13T15:32:29.666982800,19,2
16-
Same Term,Same Definition,2022-11-13T15:32:29.666982800,20,2
17-
Same Term,Same Definition,2022-11-13T15:32:29.666982800,21,2
2+
"test card 1","the first test card",2022-11-13T15:32:26.666982800,0,0
3+
"test card 2","the second test card",2022-11-13T15:32:27.666982800,1,0
4+
"test card 3","the third test card",2022-11-13T15:32:28.666982800,2,0
5+
"alphabetical order checker","to test if alphabetical order is working",2022-11-13T15:32:29.666982800,3,0
6+
"Term A","Definition A",2022-11-13T15:32:26.666982800,10,2
7+
"Term B","Definition B",2022-11-13T15:32:27.666982800,11,2
8+
"Term C","Definition C",2022-11-13T15:32:28.666982800,12,2
9+
"Term D","Definition D",2022-11-13T15:32:29.666982800,13,2
10+
"Term E","Definition E",2022-11-13T15:32:29.666982800,14,2
11+
"Term F","Definition F",2022-11-13T15:32:29.666982800,15,2
12+
"Term G","Definition G",2022-11-13T15:32:29.666982800,16,2
13+
"Term H","Definition H",2022-11-13T15:32:29.666982800,17,2
14+
"Term I","Definition I",2022-11-13T15:32:29.666982800,18,2
15+
"Term J","Definition J",2022-11-13T15:32:29.666982800,19,2
16+
"Same Term","Same Definition",2022-11-13T15:32:29.666982800,20,2
17+
"Same Term","Same Definition",2022-11-13T15:32:29.666982800,21,2

src/main/java/frameworks_and_drivers/database/FlashcardDataAccess.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,9 @@ public FlashcardDataAccess(String csvPath) throws IOException {
3737

3838
String row;
3939
while ((row = reader.readLine()) != null) {
40-
String[] col = row.split(",");
41-
String term = String.valueOf(col[headers.get("term")]);
42-
String definition = String.valueOf(col[headers.get("definition")]);
40+
String[] col = row.split(",(?=([^\"]|\"[^\"]*\")*$)");
41+
String term = String.valueOf(col[headers.get("term")]).replace("\"","");
42+
String definition = String.valueOf(col[headers.get("definition")]).replace("\"","");
4343
String creationDateText = String.valueOf(col[headers.get("creationDate")]);
4444
LocalDateTime creationDate = LocalDateTime.parse(creationDateText);
4545
int flashcardId = Integer.parseInt(col[headers.get("flashcardId")]);
@@ -64,7 +64,7 @@ private void save() {
6464

6565
for (FlashcardDsRequestModel set : flashcards.values()) {
6666
String line = String.
67-
format("%s,%s,%s,%s,%s", set.getTerm(), set.getDefinition(), set.getCreationDate(), set.getFlashcardId(),
67+
format("\"%s\",\"%s\",%s,%s,%s", set.getTerm(), set.getDefinition(), set.getCreationDate(), set.getFlashcardId(),
6868
set.getBelongsToId());
6969

7070
writer.write(line);

src/main/java/frameworks_and_drivers/database/FlashcardSetDataAccess.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,9 @@ public FlashcardSetDataAccess(String csvPath) throws IOException {
3838

3939
String row;
4040
while ((row = reader.readLine()) != null) {
41-
String[] col = row.split(",");
42-
String title = String.valueOf(col[headers.get("title")]);
43-
String description = String.valueOf(col[headers.get("description")]);
41+
String[] col = row.split(",(?=([^\"]|\"[^\"]*\")*$)");
42+
String title = String.valueOf(col[headers.get("title")]).replace("\"","");
43+
String description = String.valueOf(col[headers.get("description")]).replace("\"","");
4444
boolean privacy = Boolean.parseBoolean(col[headers.get("isPrivate")]);
4545
int id = Integer.parseInt(col[headers.get("flashcardSetId")]);
4646
String ownerUsername = String.valueOf(col[headers.get("ownerUsername")]);
@@ -69,7 +69,7 @@ private void save() {
6969

7070
for (FlashcardSetDsRequestModel set : flashcardSets.values()) {
7171
StringBuilder line = new StringBuilder(String.
72-
format("%s,%s,%s,%s,%s", set.getTitle(), set.getDescription(), set.getIsPrivate(),
72+
format("\"%s\",\"%s\",%s,%s,%s", set.getTitle(), set.getDescription(), set.getIsPrivate(),
7373
set.getFlashcardSetId(), set.getOwnerUsername()));
7474
for(int flashcardIds : set.getFlashcardIds()){
7575
line.append(",");

0 commit comments

Comments
 (0)