엑셀데이터
1. App class
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
|
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using Newtonsoft.Json;
namespace Study_015
{
class App
{
Dictionary<int, DailyMissionData> dicDailyMissionData;
Dictionary<int, DailyMissionInfo> dicDailyMissionInfo;
public App()
{
string json = File.ReadAllText(path);
DailyMissionData[] arrDailyMissionDatas = JsonConvert.DeserializeObject<DailyMissionData[]>(json);
dicDailyMissionData = new Dictionary<int, DailyMissionData>();
foreach(DailyMissionData data in arrDailyMissionDatas)
{
}
//Info 객체를 저장할 dictionary 생성
dicDailyMissionInfo = new Dictionary<int, DailyMissionInfo>();
//신규유저인가 기존 유저인가
//기존유저
if (File.Exists(infoPath))
{
//json 파일을 받아서 다시 역직렬화
string infojson = File.ReadAllText(infoPath);
DailyMissionInfo[] newArrInfo = JsonConvert.DeserializeObject<DailyMissionInfo[]>(infojson);
//dictionaryinfo에 다시 넣기
foreach(DailyMissionInfo info in newArrInfo)
{
}
}
//신규유저
else
{
//Info dictionary에 info 객체값 만들어서 넣기
foreach (KeyValuePair<int, DailyMissionData> pair in this.dicDailyMissionData)
{
DailyMissionData data = pair.Value;
}
this.SaveDailyMission();
}
//출력기능
this.PrintDailyMission(1001);
//수행하기
//this.DoMission(1001);
//저장하기
//this.SaveDailyMission();
}
public void PrintDailyMission(int id)
{
DailyMissionData data = this.dicDailyMissionData[id];
DailyMissionInfo info = this.dicDailyMissionInfo[id];
string rewardType = null;
if(data.reward_type==0)
{
rewardType = "짚나이트";
}
else if(data.reward_type==1)
{
rewardType = "코인";
}
foreach (KeyValuePair<int,DailyMissionData> pair in this.dicDailyMissionData)
{
{
Console.WriteLine("id: {0}\t이름: {1}\t목표: ({2}/{3})\t보상 종류: {4}\t보상의 양: {5}\n설명: {6}"
}
}
}
public void DoMission(int id)
{
DailyMissionData data = this.dicDailyMissionData[id];
DailyMissionInfo info = this.dicDailyMissionInfo[id];
string rewardType = null;
if (data.reward_type == 0)
{
rewardType = "짚나이트";
}
else if (data.reward_type == 1)
{
rewardType = "코인";
}
foreach (KeyValuePair<int,DailyMissionInfo> pair in this.dicDailyMissionInfo)
{
{
Console.WriteLine("미션을 1회 완료하였습니다.");
Console.WriteLine("id: {0}\t이름: {1}\t목표: ({2}/{3})\t보상 종류: {4}\t보상의 양: {5}\n설명: {6}"
}
}
}
public void SaveDailyMission()
{
//dic->배열
int index = 0;
foreach(KeyValuePair<int,DailyMissionInfo> pair in this.dicDailyMissionInfo)
{
arrInfo[index] = pair.Value;
index++;
}
//배열->문자열(역직렬화)
string json = JsonConvert.SerializeObject(arrInfo);
//저장하기
File.WriteAllText(path, json);
}
}
}
|
2. DailyMissionData class
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Study_015
{
class DailyMissionData
{
public int id;
public string name;
public int goal;
public int reward_type;
public int reward_amount;
public string desc;
}
}
|
3. DailyMissionInfo class
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Study_015
{
class DailyMissionInfo
{
public int id;
public int count;
public DailyMissionInfo(int id, int count)
{
this.id = id;
this.count = count;
}
}
}
|
4. 결과값
1) 수행하고 저장하기
2) 다시 불러와서 출력만 하기
3) 저장파일을 지우고 불러오기
'C# > 수업내용' 카테고리의 다른 글
2020.04.23. 수업내용 - 시간 지나면 하트주기(DateTime) (0) | 2020.04.24 |
---|---|
2020.04.23. 수업내용 - json 파일 읽고 쓰기(불러오기, 저장하기) 3, 파일 2개 연습 (0) | 2020.04.23 |
2020.04.22. 수업내용 - json 파일 읽고 쓰기(불러오기, 저장하기) (0) | 2020.04.22 |
2020.04.21. 수업내용 - Json 파일 만들고 프로그램에 넣기 (0) | 2020.04.21 |
2020.04.21. 수업내용 - Dictionary 개요 (0) | 2020.04.21 |