์ด ํ๋ก์ ํธ๋ ๊ฐ์ฒด์งํฅ์ค๊ณ ๊ณผ๋ชฉ์ ํ ํ๋ก์ ํธ๋ก, C++ ๊ธฐ๋ฐ์ ์ฝ์ ํ๊ฒฝ์์ ๋์ํ๋ ํ ์คํธ ํธ์ง๊ธฐ๋ฅผ ๊ตฌํํ ๊ฒฐ๊ณผ๋ฌผ์ ๋๋ค. ํ์ด์ง ๋จ์ ์ถ๋ ฅ, ๋ฌธ์์ด ์กฐ์, ํ ์คํธ ํ์ ๋ฐ ์์ ๊ธฐ๋ฅ ๋ฑ์ ํฌํจํ๋ฉฐ, ๋์์ธ ํจํด ์ ํ์ฉํ ๊ฐ์ฒด์งํฅ์ ์ค๊ณ๋ฅผ ๋ชฉํ๋ก ํฉ๋๋ค.
test.txtํ์ผ์ ํ๋ก๊ทธ๋จ ์คํ ์ ์๋ ๋ก๋- ํ ํ์ด์ง๋ 20๋ผ์ธ ร 75๋ฐ์ดํธ ๊ธฐ์ค์ผ๋ก ์ถ๋ ฅ
- ์ฌ์ฉ์์ ๋ช ๋ น์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ ์คํธ ์ฝ์ , ์ญ์ , ๊ฒ์, ์นํ ๋ฑ์ ์ฒ๋ฆฌ
- ์ฑ๊ธํค ๋์์ธ ํจํด์ ํ์ฉํ ๊ตฌ์กฐ์ ์ธ ํ ์คํธ ํธ์ง๊ธฐ ๊ตฌํ
- ๋น์ ์ ์ ๋ ฅ์ ๋ํ ์์ธ ์ฒ๋ฆฌ
์ด ํ๋ก์ ํธ์์๋ TextEditor ํด๋์ค์ ์ฑ๊ธํค(Singleton) ํจํด์ ์ ์ฉํ์ต๋๋ค.
- TextEditor๋ ํ ์คํธ ํธ์ง์ ํต์ฌ ๊ธฐ๋ฅ์ ๋ด๋นํ๋ฉฐ, ํ๋ก๊ทธ๋จ ์ ๋ฐ์์ ๋น๋ฒํ๊ฒ ํธ์ถ๋ฉ๋๋ค.
- ํด๋น ํด๋์ค์ ์ธ์คํด์ค๋ฅผ ํ๋๋ก ์ ํํจ์ผ๋ก์จ ๋ฉ๋ชจ๋ฆฌ ๋ญ๋น๋ฅผ ๋ฐฉ์งํ๋๋ก ์๋ํ์ต๋๋ค.
- ์ค์ ๊ตฌํ์์๋
static ํฌ์ธํฐ์getInstance()๋ฉ์๋๋ฅผ ํ์ฉํ์ฌ ํ๋์ ์ธ์คํด์ค๋ฅผ ์์ฑ ๋ฐ ์ฌ์ฌ์ฉํฉ๋๋ค.
| ํ์ผ๋ช | ์ค๋ช |
|---|---|
TextEditor.h |
ํธ์ง ๊ธฐ๋ฅ์ ๋ด๋นํ๋ ํต์ฌ ํด๋์ค์ด๋ฉฐ, Singleton ํจํด์ด ์ ์ฉ๋จ |
File.h |
ํ ์คํธ ํ์ผ ์ฝ๊ธฐ, ํ์ด์ง ์ ๋ณด ์ ์ง ๋ฑ ์ ์ถ๋ ฅ ๊ด๋ฆฌ ๋ด๋น |
InputView.h |
์ฌ์ฉ์ ์ ๋ ฅ์ ๋ฐ์ ์ฒ๋ฆฌํ๋ UI ๋ ๋ฒจ ์ธํฐํ์ด์ค |
PrintFile.h |
ํ ์คํธ ๋ฐ์ดํฐ๋ฅผ ์ฝ์์ ์ถ๋ ฅ (20๋ผ์ธ ร 75๋ฐ์ดํธ ๊ธฐ์ค) |
RequesParser.h |
๋ช ๋ น์ด๋ฅผ ํ์ฑํ์ฌ ๊ฐ ๋ช ๋ น์ ๋ง๋ ์ธ์๋ฅผ ๋ถ๋ฆฌํ๋ ์ ํธ๋ฆฌํฐ |
main.cpp |
ํ๋ก๊ทธ๋จ ์์์ . ํ์ผ ๋ก๋ฉ, ๋ฉ๋ด ์ถ๋ ฅ, ์ฌ์ฉ์ ๋ช ๋ น ์ฒ๋ฆฌ ๋ฃจํ ๋ฑ |
| ๋ช ๋ น์ด | ์ค๋ช |
|---|---|
i(line, index, text) |
ํด๋น ๋ผ์ธ์ index ์์น์ ๋ฌธ์์ด ์ฝ์ |
d(line, index, length) |
ํด๋น ๋ผ์ธ์ index ์์น๋ถํฐ length ๋ฐ์ดํธ ์ญ์ |
s(word) |
๋จ์ด๊ฐ ํฌํจ๋ ๋ผ์ธ์ ํ์ด์ง ์ต์๋จ์ ์์น์ํค๋ฉฐ ์ถ๋ ฅ |
c(target, replacement) |
๋ชจ๋ target ๋ฌธ์์ด์ replacement๋ก ์นํ |
t |
ํธ์ง๋ ๋ด์ฉ์ ํ์ผ์ ์ ์ฅํ๊ณ ์ข ๋ฃ |
n |
๋ค์ ํ์ด์ง ์ถ๋ ฅ |
p |
์ด์ ํ์ด์ง ์ถ๋ ฅ |
์
๋ ฅ: i(1,10,hello) โ 1๋ฒ์งธ ๋ผ์ธ 10๋ฒ์งธ ์์น์ 'hello' ์ฝ์
์
๋ ฅ: d(2,10,3) โ 2๋ฒ์งธ ๋ผ์ธ 10๋ฒ์งธ ์์น๋ถํฐ 3๋ฐ์ดํธ ์ญ์
์
๋ ฅ: c(hello,bye) โ 'hello' ๋ฌธ์์ด ์ ์ฒด๋ฅผ 'bye'๋ก ๋ณ๊ฒฝ
์
๋ ฅ: s(bye) โ 'bye'๊ฐ ์๋ ์ฒซ ๋ผ์ธ์ ํ๋ฉด ์๋จ์ ์ถ๋ ฅ
์
๋ ฅ: t โ ์ ์ฅ ํ ์ข
๋ฃ