본문 바로가기

[ Program ]197

9.변수,자료형 3(char , string) 이전에 배운 숫자형외 문자형태의 자료형도 한가지가 아니다. 문자형은 크게 두가지 인데 1개문자 와 문장으로 나뉜다. 두가지를 쓸때는 각각의 형식을 지켜줘야 하는데 1개의 문자를 표현할때는 ' (홑따옴표) 로 감싸고 문장을 표현할때는 " (쌍따옴표) 로 감싼다. '가' - 1개문자 char 형식 "가나다" - 문장 string 형식 위 예제가 각각의 형식을 나타낸다. 소스로 보면 아래와 같다. char a = '가'; string b = "가나다"; char 는 하나의 문자이고 string 은 char 가 여러개 모여있는것이라고 생각하면 된다. 1개의 값만을 표현할때 char 를 사용하는데 그중 참거짓만 표현하고 싶을때는 bool 을 사용한다. bool 은 두가지 값만 넣을수 있는데 true , false.. 2021. 9. 20.
8.변수연산 숫자형 변수는 연산이 가능하다. 예를 들면 a 라는 변수에 5를 담고 b라는 변수에 10 을 담아서 a 라는 변수와 b 라는 변수를 더하면 15의 값을 얻을 수 있다. 소스코드로 보면 다음과 같다. int a = 5; int b = 10; a+b 변수 형식에 대해 이전에 빠져먹은 내용이 있어 여기서 추가설명하면 위와 같이 변수를 먼저 선언하고 값을 대입한다. 즉 (형식) (변수명) = (대입할값); 형태가 되는것이다. 만약 위 형식대로 하지않으면 에러가 발생하므로 해당에러를 분석해보는것도 좋다. 어째뜬 위와 같이 연산을 할수 있는데 변수의 타입에는 크게 두가지가 있다. 숫자형과 문자형이다. 소스코드내에서 " 없이 숫자만 1 이라고 적으면 프로그램은 숫자 1로 인식한다. 그런데 "1" 이라고 적으면 숫자가 아닌 .. 2021. 9. 20.
7.변수,자료형 2(int와 float, double) 앞장에서 변수에 대해 설명했다. 변수는 프로그램 하는 동안 계속 쓰기 때문에 꼭 내용을 이해하고 있어야 한다. 그림1은 여러 자료 형을 나타내고 있는데 내가 100이란 숫자를 변수로 사용할때 보통은 byte 형을 사용하진 않는다. 앞장에서는 크기에 맞춰서 사용하라고 해놓고 여기서는 다른말하니 당황스러울수 있다. 여기는 몇가지 이유가 있다. 첫째로 PC의 자원이 넉넉해져서 여유롭게 사용할수 있기 때문이다. ( 자원은 PC의 램,CPU처리속도,하드용량등 사용가능한 모든것을 말한다. ) PC 는 계속 가파르게 발전하고 있는데 과거에 비해 하드용량이나 메모리용량등이 비교할수 없을만큼 올라갔다. 내가 최초로 사용하던 PC는 하드가 무려 21메가 였는데 그때는 그용량도 넉넉하다고 느꼈었다. 램은 정확히 기억나지 않.. 2021. 9. 20.
6.변수,자료형 1(변수란, 자료형종류) 변수란 값을 담을수 있는 메모리상의 공간 가리킨다. 1번 그림에서 우측에 있는게 실제 pc의 RAM 인데 프로그램이 실행되는동안 해당공간에 임시로 데이터들을 넣고 프로그램에서 사용한다. 윈도우에서 RAM 의 임의공간에 데이터를 막쓰진 않는다. 기본적으로 순서대로 데이터를 쌓아서 사용하게 되는데 그 개념이 1번그림의 왼쪽과 같은 형태가 된다. 즉 , 낮은주소부터 객체의 정보를 넣어두게 되고 높은주소부터 상수등 고정된 정보를 넣어두게 된다. 지금 이내용을 정확히 이해할 필요는 없는데 궁금하면 개인적으로 윈도우가 메모리를 어떤형태로 사용하는지 찾아보자. 내부적으로 순서대로 데이터를 쌓아서 관리한다 정도만 알고 있으면 된다. 그림2를 보면 실제 메모리 공간에 데이터를 어떻게 넣는지 설명하고 있다. 20이라는 데.. 2021. 9. 20.
5.버튼 응용 개별공부 화면 중앙의 버튼을 누르면 우측 속성창에서 버튼에대해 바꿔줄 수 있는 속성들이 표시된다. 이번에는 개별적으로 연구해서 숙제만 진행한다. ***숙제 : 1개의 창에 5개의 버튼을 만들고 각버튼들에 스터디 인원의 이름이 표시되게 하고 그 버튼을 누르면 각 인원의 이름으로 팝업창 뜨게 해서 공유. 이미지참조. (힌트 : text 속성) 2021. 9. 20.
4.창레이아웃 , 버튼, 메세지박스 프로그램에서 기본적인 내용을 배우기 위해서는 상당히 지루하고 답답한 내용들이 있다. 하지만 꼭 알고 있어야 하는 내용들이므로 해당내용들을 더 시각적으로 확인하기 편하게 하기 위해 다른내용 보다 이내용을 앞으로 당겨서 배운다. vs 환경은 자유롭게 구성이 가능한데 기본 창 구성은 1번이미지와 같다. (디버그 상태가 아닌 일반상태) 창레이아웃은 상단에 있는 "창" > "창 레이아웃 다시설정" 을 눌러 초기화 할 수 있다. 각창은 상단에 제목부분을 드래그 해서 2번째이미지 처럼 위치를 옮길수 있다. 편한위치로 이동해서 사용하면된다. 3번 이미지와 같이 왼쪽의 도구상자를 열고 버튼을 드래그해서 화면 중앙으로 옴기면 버튼이 생성된다. 드래그 해서 생성할수도 있고 버튼을 클릭한뒤 마우스가 +모양으로 변경된뒤 우측에.. 2021. 9. 19.
3.솔루션 / 프로젝트 , 다른곳에서 파일 실행해보기 , 빌드이벤트 프로젝트는 내가 최종적으로 실행할 파일(exe 파일) 을 만드는데 필요한 소스,참조하는 DLL 등 모든 필요한 것들을 모아놓은 것을 말한다. 프로젝트를 만들때 1번그림과 같이 프로젝트명과 실제 프로젝트를 물리적으로 저장할 위치를 지정할 수 있다. 일반적으로 프로젝트명은 내가 실제로 만들 exe 파일 명칭과 동일하다. 물론 다른곳에서 변경해줄수도 있는데 그건 나중에 다시 설명한다. 그림2번에 보면 솔루션과 프로젝트를 표시해 놨는데 프로젝트는 위에서 말한거처럼 exe 파일을 만드는데 필요한 것들을 모아둔 것이고 솔루션은 그 프로젝트들을 관리하기 편하게 하나로 모아둔 것이라고 생각하면 된다. 프로젝트는 솔루션에서 마우스 우클릭한 후 "추가" > "새프로젝트" 로 현재 솔루션에 프로젝트를 추가할 수 있다. 물론.. 2021. 9. 19.
2.디버그/릴리즈 차이 , .net프레임워크버전 , exe파일 만들기 프로그램을 만드는 궁극적인 목적은 내가 실행되는 파일을 만들고 사용자가 그 파일을 실행하게 함으로써 사용자가 원하는 작업을 할 수 있게 하는 것이다. 1장에서 만든프로그램을 사용자가 사용할수 있게 하기 위해서는 프로그램을 빌드 해야한다. 빌드하면 실제로 사용자가 실행할 수 있는 exe 파일이 생성되는데 이 exe 파일을 만드는데 크게 두 가지 방법으로 빌드할 수 있다. DEBUG / RELEASE 모드 두 가지인데 차이점은 아래 경로에서 읽어보자. https://j2hworld.tistory.com/77 프로그램을 만들면 한방에 완벽하게 만들어지지 않는다. 어떤형태로든 버그(프로그램이 이상행동하는것) 가 발생하고 vs에서 해당 버그를 수정하기 위해 내가 만든 코드를 한줄씩 따라가며 값을 확인할수도 있다... 2021. 9. 19.
1.Visual Studio 설치/프로젝트 만들기 / 기본 윈폼 실행 c#으로 만든 프로그램은 .netframework 라는 프레임워크가 깔려 있는 상태에서 동작한다. 프레임워크는 프로그램에 필요한 함수나 변수등이 모여있는 파일들을 하나의 폴더에 모아 놓은 덩어리라고 생각하면 되는데 .net 프레임워크 말고도 여러종류 프레임워크가 있다. 위에서 말한것처럼 c#으로 만든 프로그램은 .net 프레임워크가 있어야 작동하는데 이전 윈도우 xp 시절에는 .net 프레임워크를 직접 설치해줘야 했지만 최근 윈도우는 윈도우 업데이트만 하면 최신프레임워크도 같이 업데이트 할 수 있다. 프로그램을 제작할 때 내가 직접 .net 프레임워크 버전을 지정해줄 수 있는데 만약 내가 4.7.1 버전으로 만들었는데 실제exe 파일을 만들어서 다른pc에서 실행할때 그 PC에 .net 프레임워크 버전이 .. 2021. 9. 19.
안드로이드 spinner( combobox ) ---res/values 1명 2명 3명 ---java Spinner spinner1; spinner1 = (Spinner)findViewById(R.id.spinner); final SpinnerAdapter spinnerAdapter = ArrayAdapter.createFromResource(getApplicationContext(),R.array.spnnerdata1,R.layout.support_simple_spinner_dropdown_item); spinner.setAdapter(spinnerAdapter); spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onIt.. 2017. 9. 7.
안드로이드 canvas 리셋하기 Canvas drawCanvas = (Canvas)findViewById(R.id.canvas); drawCanvas.drawColor(Color.TRANSPARENT, PorterDuff.Mode.CLEAR); 2017. 9. 6.
안드로이드 view 배경색 가져오기 ColorDrawable cd = (ColorDrawable) textView.getBackground(); int colorCode = cd.getColor(); 2017. 9. 6.
버튼 클릭 이벤트를 처리하는 몇 가지 방법. (Android Button Click Event) 출처 - http://recipes4dev.tistory.com/55출처 - http://nanstrong.tistory.com/274 1. Button의 클릭 이벤트 처리안드로이드에서 Button 클릭 이벤트를 처리하기 위해서는 리스너(listener)의 개념과 구현 방식을 이해하고 있어야 합니다. 만약 리스너에 대한 내용을 처음 접하신다면, 이전 글 [안드로이드 버튼 기본 사용법 - Button 클릭에 대한 이벤트 처리]에서 리스너의 의미와 View 클래스의 리스너 구현 내용, 리스너 객체 생성과 이벤트 처리 함수 작성 내용을 설명하였으니 살펴보시기 바랍니다. 그런데 버튼 클릭 이벤트를 처리하기 위해 반드시 [안드로이드 버튼 기본 사용법 - Button 클릭에 대한 이벤트 처리]에서 설명한 방법만 사.. 2017. 9. 6.
반복문도는동안 컨트롤텍스트 바꾸기(현재까지 실행된내용 라벨에 업데이트) 출처 - http://stackoverflow.com/questions/3431369/label-does-not-change-value-inside-a-while-loop private void button1_Click(object sender, RoutedEventArgs e) { int i = 0; while (i 2015. 7. 22.
c# 크로스쓰레딩 - 다른쓰레드의 컨트롤 값변경 출처 - http://www.soulfree.net/734 휴우... 제목이 엄청길다. 내 블로그 이외에도 이 내용으로 많은 자료가 이미 많이 올라와있지만 프로그램 할때마다 필요한데 내 머리는 외워주지를 않아서 결국 포스팅 해버리게 되었다.... 매번 소스찾기가 귀찮아서.ㅠㅠ 이 코드가 필요한 경우를 예를 들면, 데이터를 송수신 하는 다중 스레드 프로그램이 있는데 데이터를 수신하는 스레드에서 프로그램 화면을 갱신하려고 하면 바로 이 글 제목같은 문제가 발생한다. 그래서 대리자를 통하여 스레드간의 자원을 공유할 수 있도록 해주어야 한다. 간단한 코드이지만 이상하게도 외어지지가 않는다ㅠㅠ 코드 설명을 하고자 쓰는 글이 아닌지라... 혹시 설명이 필요하신 분은 댓글 달아주시길... * WPF의 경우의 예 us.. 2015. 7. 22.
C#에서 주소창 url 가져오기 system32 폴더에서 shDocVw.dll 을 어셈블리 참조하고... using SHDocVw; foreach (InternetExplorer ie in new ShellWindowsClass()) { textBox1.Items.Add(ie.LocationURL); } 2015. 3. 13.
[IIS 7.0] 업로드/다운로드 용량제한 풀기 출처 - http://www.devholic.net/1001029 Window 2008 IIS7에서 업로드/다운로드 용량제한 풀기 특정 확장자의 파일이 다운로드 되지 않는 현상이 있어 삽질을 엄청했다.. 증상) .xls .gif 이런 놈들은 잘 다운되는데 .zip .exe는 다운이 되질 않았다. MIME 타입 문제인가 싶었는데.. 별짓을 다해봐도 안되는거다.. 혹시나 싶어 용량을 팍 줄여서 zip파일을 만들어보니 그놈은 잘되는거지.. MIME 타입 문제가 아니라 용량의 문제였다. 네이버도 구글도 자료가 참으로 없더라.. 자료가 많아야 대충 키워드 입력해도 걸려들터인데.. IIS 6.0에서 metabase.xml 파일에 AspBufferingLimit과 AspMaxRequestEntityAllowed 용량.. 2015. 3. 13.
Windows Forms에서 웹서버로 파일 업로드 하기 출처 - http://walnuttree.tistory.com/99 윈폼에서 웹서버로 파일을 업로드 하는 방법이다 (물론 FTP로 바로 올리는 방법도 있다) 지금 설명하는 방법으로 파일을 올리기 위해선 두가지 작업(윈폼, 웹)을 해줘야 한다. 먼저, 윈폼에선 다음과 같이 코드를 작성한다. OpenFileDialog dlg = new OpenFileDialog(); dlg.Multiselect = false; dlg.Filter = "Microsoft Excel|*.jpg"; dlg.ShowDialog(); System.Net.WebClient wcClient = new System.Net.WebClient(); wcClient.UploadFile(웹상에서 파일 업로드를 구현한 페이지 주소, "POST",.. 2015. 2. 25.
서브도메인 및 가상 호스트 설정하기 출처 - http://dezang.net/61 서브도메인 및 가상 호스트 설정하기 현재 서브도메인이 아닌 루트도메인을 사용하여 블로그를 운영하고 있습니다. 정보 전달을 위래 글을 마무리 짓고 서브도메인을 사용하지 않게 된 이유도 적어보려합니다. 궁금한 점이 있으면 댓글 달아주세요~ 서브도메인 개요 현재 글을 쓰는 시점에서 블로그에 접속하는 주소는 dezang.net/blog이다. 이것을 blog.dezang.net이라는 주소로 접속하게 하려면 서브도메인 설정을 해야한다. 원하는 서브도메인을 레코드 타입 A로 설정하고 서브도메인에 연결할 IP나 레코드값을 입력하면 된다. 문제는 IP를 입력하기 때문에 서버 루트와 연결되는 것이지 루트 아래 폴더에 서브도메인을 연결할 수는 없다는 것. 즉 다른 아이피를 가진.. 2015. 1. 29.
문자열마지막구분자 없애기 출처 - http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=9&MAEULNO=5&no=891&page=10 - 질문 - string chvalue=""; chvalue="110-111-112-"; 2014. 12. 1.
Rollback for bulk copy (트랜젝션걸린 대량인서트) 출처 - http://stackoverflow.com/questions/2216254/rollback-for-bulk-copy using (SqlTransaction transaction = destinationConnection.BeginTransaction()) { using (SqlBulkCopy bulkCopy = new SqlBulkCopy( destinationConnection, SqlBulkCopyOptions.KeepIdentity, transaction)) { bulkCopy.BatchSize = 10; bulkCopy.DestinationTableName = "dbo.BulkCopyDemoMatchingColumns"; try { bulkCopy.WriteToServer(reader).. 2014. 11. 14.
루프를 돌면서 DataTable의 DataRow를 삭제할때 출처 - http://devswaf.blogspot.kr/2009/11/%EB%A3%A8%ED%94%84%EB%A5%BC-%EB%8F%8C%EB%A9%B4%EC%84%9C-datatable%EC%9D%98-datarow%EB%A5%BC-%EC%82%AD%EC%A0%9C%ED%95%A0%EB%95%8C.html 루프를 돌면서 DataTable의 DataRow를 삭제할때 for 와 같은 루프문으로 DataTable.Rows 컬렉션에서 DataTable.Rows.Remove()를 실행하면 루프과정에서 컬렉션이 변경되므로 원하지 않는 이상한 결과를 초래한다. 이때는 DataRow.Delete()를 실행하고 루프문이 끝난 후 DataTable.AcceptChanges()를 호출하면 된다. 아래는 MSDN에서 발췌.. 2014. 11. 10.
DataTable 에서 원하는 Row만 골라내기 DataTable sampleDT = new DataTable(); sampleDT .DefaultView.RowFilter = " column1 'A' "; DataTable result = sampleDT .DefaultView.ToTable(); return result; 2014. 11. 5.
방법: Windows Forms DataGridView 컨트롤에서 선택한 셀, 행 및 열 가져오기 출처 - http://msdn.microsoft.com/ko-kr/library/x8x9zk5a(v=vs.110).aspx 방법: Windows Forms DataGridView 컨트롤에서 선택한 셀, 행 및 열 가져오기 .NET Framework 4.5 다른 버전 Visual Studio 2010 .NET Framework 3.0 .NET Framework 3.5 .NET Framework 2.0 이 항목은 아직 평가되지 않았습니다.- 이 항목 평가 SelectedCells , SelectedRows 및 SelectedColumns 중 해당하는 속성을 사용하여 DataGridView 컨트롤에서 선택한 셀, 행 또는 열을 가져올 수 있습니다. 다음 절차에서는 선택한 셀을 가져온 다음 이 셀의 행 및 열 .. 2014. 8. 22.
c++ DLL을 C#에서 사용해보자 ( 클래스 마샬링 ) http://blog.danggun.net/799 클래스 마샬링을 할일이 없엇 신경을 안쓰다가 요번에 스카이프 api나 제가 직접 마샬링 해볼까 해서 클래스 마샬링을 정리해 보았습니다. 근데 왜이렇게 자료가 없지? 겨우 찾은것이 비주얼C++ 팀블로그인데....네...영어입니다 ㅡ.-; (참고 : Visual C++ Team Blog - Inheriting From a Native C++ Class in C#) 일단 변환방법이 마음에 들지가 않아서 위글에 있는 내용을 그대로 사용하여 만들고 자료를 더 찾는다면 파트2로 돌아오 겠습니다 ㅎㅎㅎㅎ 그전에 이 글은 크게 2부분으로 나누어 설명할 예정입니다. 어찌됬건 프로그래머라면 일단 샘플부터 만들고 생각해야 하지 않겠습니까? 1. C++ DLL 만들기C#에서 .. 2014. 7. 28.
[C#] c++ DLL을 C#에서 사용해보자 ( 함수 마샬링 ) http://blog.danggun.net/16 머......피치못할 사정으로 c++로 작성된 dll을 써야된다면.....명복을 크크크크크크크 하지만 어차피 c++ dll은 여러모로 쓸모가 많다보니 재판매(어이)를 어느정도 고려 할겸, 역어셈에도 닷넷보다는 안전해 보여서 dll은 c++로 만들어 씁니다. 근데 이렇게 딴 언어에서 만든 dll을 쓰기위해서 마샬링이 필요합니다. ㅡ,.ㅡ;;; 일종의 컨버전이라고 생각하면 됩니다. (쉽게 생각하라고 컨버전이라고 한거지 전혀 다른넘 입니다. ㅡ.-; 컨버전은 프로그램자체를 다른 언어에 맞게 변경시키는것을 의미하고. 마샬링은 다른언어에서도 읽을수 있게 해주는 작업입니다. dll자체는 변하지 않는다!) 마샬링하는 방법은 여러가지가 있고 dll불럳다 쓰는 방식도 여러.. 2014. 7. 28.
환경 변수 설정하기 출처 - http://snoopybox.co.kr/1299 방명록에 질문주신 분이 계셔서 관련 글 올려봅니다. 환경 변수라는 말 한번 쯤은 들어보셨을 텐데요, DOS 세대라면 SET PATH= 이 명령어 기억나실 것입니다. AUTOEXEC.BAT 파일에 MDIR 경로를 적어주곤 했죠. 그럼 어떤 위치에서든 MDIR을 실행시킬 수 있었으니까요. 추억의 MDIR 3.10 윈도우에서도 기본적으로 사용되는 시스템 변수가 있습니다. 이 값은 레지스트리 상에 저장되어 있는데 일반 유저들은 사용할 일이 잘 없겠지만 개발자 분들이나 CMD 창 자주 쓰는 분들께는 유용할 수 있습니다. 저도 배치파일 작성할 때 자주 사용하는 편입니다. 아래는 제가 현재 사용중인 윈도우 7 기준인데 몇가지 자주 쓰이는 예를 들어보겠습니다... 2014. 7. 28.
Android , asp.net, mssql 연동 [2] 출처 - http://ondestroy.tistory.com/entry/Android-aspnet-mssql-연동-2 asp.net 과 안드로이드 앱 연동을 포스팅 해보려고 합니다.. (xml, soap통신 이용) 1. asp.net 웹사이트에 웹서비스 -> 웹메소드 구현 2. android에서 Soap통신 클래스 작성 3. searchData 결과값 xml 파싱 ---------------------------------------------------------------------------------------------------- 1. soap 통신 클래스 1) 입력 edittext , 버튼 ,출력 textview 를 레이아웃에 추가해줍니다.. 2) ksoap2-android-assembly-.. 2014. 6. 19.
Android , asp.net, mssql 연동 [1] 출처 - http://ondestroy.tistory.com/entry/Android-aspnet-mssql-%EC%97%B0%EB%8F%99 asp.net 과 안드로이드 앱 연동을 포스팅 해보려고 합니다.. (xml, soap통신 이용) 1. asp.net 웹사이트에 웹서비스 -> 웹메소드 구현 2. android에서 Soap통신 클래스 작성 3. searchData 결과값 xml 파싱 ----------------------------------------------------------------------------------------------------- 1. 웹서비스 구축 : 1) 비쥬얼 스튜디오를 사용하였습니다 2) 웹사이트와 db는 구축되어 있고 테이블이름은 Table_Name 칼럼은 .. 2014. 6. 19.
CString 의 구조 궁금해서 찾아보니 이런 문서가 있군요 2014. 6. 11.