일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 컴투스
- 김창섭
- 추억의 게임
- ToyProject
- 여름게임
- 게임신작
- 메이플 쇼케이스
- 게임
- 넷마블
- 메이플스토리
- 코딩
- c#
- 크래프톤
- 메이플 여름 쇼케이스
- 스팀세일
- 설문조사 결과산출
- 메이플
- 파이썬 오류
- 스팀
- 컴투스 신작
- 모바일게임
- 신창섭
- 마비노기
- NC
- 뉴맞고
- 스팀 할인
- 신의탑 게임
- 프로그래밍
- 넥슨
- 윈폼
- Today
- Total
목록Programming (22)
JY Tech

이번 시간에는 dataGridView에 입력한 내용들을 엑셀로 저장하는 기능을 구현할 것이다. 윈폼에서 엑셀을 연동하기 위해서는 패키지를 설치해야 한다. 화면 우측의 [참조]를 우클릭하고 [NuGet 패키지 관리] 를 클릭한다 찾아보기 에서 excel을 검색하고 이걸 설치하면 된다. ProMode의 엑셀로저장 버튼을 클릭 해 이벤트를 만들어주고 다음과 같이 코드가 구성되도록 한다 private void button2_Click(object sender, EventArgs e) { ExportToExcel(); //클릭 이벤트에 있어야 하는 코드 } 이제 ExportToExcel()을 만들어준면 된다. private void ExportToExcel() { bool IsExport = false; // C..

openAI의 챗gpt의 대항마로 만든 [바드]가 얼마 전 한국어도 사용할 수 있게 출시되었습니다. 몇달전 시연에서는 기초적인 질문에도 엉뚱한 답을 내놓으며 챗gpt를 따라잡기 멀은 것 같았는데 이번에 매우 많이 개선된 것 같습니다. 챗gpt와 비교했을 때 가장 큰 장점은 1. 완전무료 -gpt3.5가 무료, gpt4가 유료인 것과 대조적입니다. 2. 최신정보 사용 -gpt는 2021년 9월경의 정보까지만 있는데 비해 바드는 최신정보를 사용할 수 있습니다. 3. 코랩 전송 -구글의 자체 ai답게 바드에게 코드를 짜달라고 하고 이를 코랩으로 보낼 수 있습니다. 4. 답변 개수 증가 -한번에 하나의 답변만 하는 gpt와 달리 3개의 답변을 내고 모두 확인할 수 있습니다. 5. 답변속도 -타이핑 형식으로 답하..

이번에는 UserControl8을 추가 해 주관식 응답을 관리 해 보자 필자는 이런식으로 label과 textBox를 넣었다. 주관식 영역에서는 '엔터'키를 한 명의 응답으로 인식한다. 예시는 아래 사진과 같다. 애초에 해당 포스팅 자체가 필자가 실제로 만들었어서 사용중인 프로그램을 다시 하나하나 설명하는 것이기 때문에 이미 구상해 뒀던 UI를 그대로 구현중인데 다르게 하고 싶다면 예시와 달라도 상관없다 이제 엔터키를 누르면 줄바꿈과 동시에 '-'를 넣어주는 코드를 넣어보자 먼저 첫 문장에는 무조건 -가 들어가야하기 때문에 UserControl8_Load에 다음 코드를 넣어주자 textBox1.AppendText("- "); Append는 추가하라는 뜻이다. 윈폼 뿐만이 아니라 파이썬에서도 유사하게 응용..

윈폼으로 사용자 정의 컨트롤을 만들고 추가하고 폼에서 사용하려면 내가 만든 컨트롤을 헤당 폼에 드래그 앤 드롭을 해야하는 경우가 있다. 그리고 아마 이런식의 오류가 뜰 수도 있는데 디버그 하지 않고 시작을 눌러 한번 프로그램을 실행시킨 후 다시 드래그 앤 드롭 하면 정상작동된다. MiniProject 포스팅을 하면서 나도 헤맸었던 부분인데 까먹지 않기 위해 메모용으로 남겨놓는다.

이제 ▲, ▼, ◀, ▶ 버튼에 기능을 넣어주자. 이 부분은 기본 알고리즘은 동일하고 앞서 만들었던 다수의 사용자 정의 컨트롤에 기능을 넣어주는 것이기 때문에 코드의 길이만 길 뿐 어렵지도 않고 설명할 부분도 없다. 먼저 ▲에 기능을 넣어주자. 행의 개수를 줄이는 버튼이다 DialogResult dr = MessageBox.Show("행을 삭제할 경우 기존 입력 내용이 초기화 됩니다\n마지막 행을 삭제할까요?", "경고!", MessageBoxButtons.YesNo); if (dr == DialogResult.Yes) { if (line > 2) { if (ans == "1") { flowLayoutPanel1.Controls.Remove(btn21[line - 1]); line -= 1; DataTa..
cur.execute("SELECT tool_Name FROM Tool WHERE tool_Name=?",(toolName,)) 파이썬과 sqlite를 활용한 프로그램을 만들면서 아래와 같은 코드를 작성했는데 incorrect number of bindings supplied. the current statement uses 1 and there are 3 supplied 이런 오류가 발생했다. 구글링을 해 보니 해결법은 생각보다 간단했다. cur.execute는 튜플을 전달해야 되는데 (toolName)의 형태로 값만 전달해서 그렇단다(데이터 바인딩 오류). 튜플로 값을 전달하기 위해 , 만 추가해 주면 된다 따라서 코드를 다음과 같이 수정하면 된다. cur.execute("SELECT tool_Nam..

이번에는 ProMode(프로모드)를 만들 것이다. 프로모드의 경우 다음과 같은 기능들이 추가된다. 1) 서술형 응답관리 2) 객관식 응답을 엑셀로 저장 3) 객관식 응답의 자동 생성 및 행/열의 동적 수정 먼저 ProModeSetting.cs를 만들어 준다 해당 폼에서는 ProMode에 진입하기 전 질문과 선택지의 개수를 전달하는 기능을 구현한다 이 전달기능은 지금 배워두면 다른 곳에도 써먹을 수 있으니 잘 알아두자 필자의 경우 ProModeSetting을 위와 같이 디자인 했다. 질문의 개수대로 우리가 만든 사용자 정의 컨트롤을 생성하는 것이고 선택지의 개수에 따라 어떤 사용자 정의 컨트롤을 쓸 지 정해지는 것이다. 시작 버튼을 더블클릭하여 아래와 같은 코드를 넣어주자 ProMode newform = ..