시작이 반, 비베를 실행하다

Size: px
Start display at page:

Download "시작이 반, 비베를 실행하다"

Transcription

1 Visual Basic 부담없이시작합니다시중에볼만한 VB서적들 500쪽넘는거기본입니다. 그럴만도합니다. 프로그래밍언어라는것이설명하기시작하면한도끝도없는것입니다. 게다가프로그래밍서적살사람이면최소한그정도극복할만한사람이다, 라고생각합니다. 이강좌가시중의책으로따지자면몇쪽분량이될지는모르겠습니다. 아마도시중의책보다는훨씬얇은수준이아닐까생각합니다. 왜냐하면어디까지나제가설명하기쉬운방식대로만쓸것이고, 그러자면시중의책처럼시시콜콜한얘기다못쓰니까말입니다. 한강좌를길게못씁니다. 눈이아프니까요. ^^. 짧게짧게끊어서그냥부담없는정도의수준으로강좌를이어가겠습니다. 그래야제가편하고, 편하게글을써야독자제위께서도별부담이없을테니까말이죠. 2. 시작이반, VB를실행하다여전히프로그래밍이라면무진장어려운것으로생각하는사람들이많습니다. 물론쉽지않죠. 그러나생각만큼어렵지도않습니다. 우리가아래아한글이나엑셀같은엄청난프로그램을만드는것도아니고지금당장중요한프로그램을짜야하는것도아니니까말입니다. 단지, 그냥재미로, 비주얼베이직이이런것이구나 이런것도할수있구나 하는정도만알면되니까말입니다. 물론여기에서그쳐서는안되죠. 이왕칼을뽑았으니윈도보조프로그램의 ' 계산기 ' 정도는만들어보고, 좀더나아가서데이터베이스를쬐끔이용하여 관리프로그램도만들어봐야겠죠. 사이트를뒤져보면 VB 로짠프로그램이무궁무진합니다. 그중몇개를골라비슷하게짤수있을정도의실력은되어야죠? 이 강좌의목표는거기까지입니다. 생각보다는꽤높죠? 그렇다면, 일단 VB를실행하세요. 버전은 6.0을기준으로하겠습니다. 어떻게구하고어떻게설치하느냐구요? 그런거는이강좌에서다루지않겠습니다. 구하는거야돈만있으면되고설치하는거야그냥 CD 넣으면자동으로됩니다. (VB는마이크로소프트의 Visual Studio의 CD에들어있습니다. Visual Studio에는 VB 외에비주얼 C, 비주얼 FoxPro 등등여러개발언어가있습니다.) 실행하자마자뭔가를선택해야되죠? 그냥기본적으로선택된 ' 표준 EXE' 를 < 열기 > 하면됩니다. 일반적으로프로그램을만들어 최종적으로실행파일을만들면끝에 ( 확장자가 ) exe 가붙죠? 그래서기본으로선택된 ' 표준 EXE' 를선택한것입니다. 그외에 'ActiveX EXE' 'ActiveX DLL' 등여러가지가있는데, 나중에해봅시다. 첫술에배부르지는않는법이니까요. 1

2 그러면아래와같은화면이보이죠? 프로그램을짤수있는가장일반적인모습입니다. 시작하자마자 Form1 이라고해서흔히 말하는폼창이하나떠있습니다. 폼이란우리가흔히말하는 ' 창 (Window)' 를말합니다. 대개의프로그램은하나이상의창을 가지고있죠. 그래서프로그램을시작하자마자창이하나자동으로생긴것입니다. 이제이폼을이용해다음과같은프로그램을만들어봅니다. 단추를누르면 " 뭘봐?" 가나타나는정말유치한프로그램입니다. 다음과같이따라해보세요. 1 왼쪽컨트롤도구상자에서 TextBox 컨트롤을클릭한후, 폼창의원하는위치에마우스로드래그하여글상자하나를만든다. 2 마찬가지로컨트롤도구상자에서 CommandButton 컨트롤을클릭한후, 같은방법으로명령단추하나를만든다. 3 마우스로이리저리조절해서위치와크기를적당히조절한다. 됐죠? 무지쉽죠? 예전에 ( 도스시절에 ) 이정도로보이는프로그램을짤려면그야말로힘들었습니다. 그래서도스용프로그램을짤때첨에는그냥문자만보이는것을예로들곤하죠. 가장잘드는예로 "Hello" 라는메시지가화면에표시되게하는것이었습니다. 지금처럼텍스트박스만들고명령단추만들고... 이런작업은고수들이나하는작업이었습니다. 어찌됐건 ( 이글을읽고있는분들도스시절의프로그래밍언어안써보신분들 100% 라고믿고...) 세상참좋아졌습니다. 위에서만든폼위에그려놓은것들을우리는컨트롤이라고부릅니다. 그런데이러한컨트롤들을그냥그려넣는다고만해서프로 그램이저절로되는것은아닙니다.(VB 는인공지능언어가아닙니다.) 이제부터뭔가명령을줘야죠... 프로그래밍은이제부터시 작입니다. 3. 컨트롤, 속성, 이벤트... 왠이벤트? 2

3 폼위에그려놓은두개의컨트롤에우리가원하는결과가나타나도록프로그래밍을해야됩니다. 그러나겁먹지마시길... 오늘 강좌정도의프로그래밍은그야말로식은죽먹기. 먼저아래그림의 1번에기본적으로 "Text1" 이라고표시되죠? 이것을아래그림과같이빈칸으로만들어야됩니다. 그러기위해서먼저 1번을클릭한다음, 오른쪽의속성창 ( 속성창이어디냐구요? 앞의강좌의그림을잠깐보고오시길...) 에서 Text라는이름을찾아보세요. 그럼오른쪽에 "Text1" 이라고씌어있죠? 이걸지우면됩니다. 그러면왼쪽폼위의 1번텍스트박스도빈칸이되죠. 이것이바로속성입니다. 즉텍스트박스의 Text라는속성값이기존에는 Text1이었는데, 지금은 Text 속성값을빈칸으로만들었습니다.(Text 속성란에다른문자를입력해보세요. 그럼텍스트박스에표시됩니다.) 같은방법으로아래 3 번커맨트버튼의 Caption 속성값도바꿔보세요. 커맨드버튼은처음만들때기본적으로 Command1, Command2... 이런식으로만들어집니다. 3 번을선택하고속성창에서 Caption 속성을찾아서거기에 "Command1" 이라고씌 어진것을 " 눌러봐 " 로수정하면됩니다. ( 텍스트박스의 Text 속성과비슷한것이커맨드버튼에는 Caption 입니다.) 이렇게해서우리는컨트롤에속성값을변경하는것을해봤습니다. 무슨말이냐구요? 텍스트박스컨트롤, 커맨드버튼컨트롤 의 Text 속성값, Caption 속성값을각각빈칸과 " 눌러봐 " 속성값으로바꾸었다는말입니다. 이제 ' 컨트롤 ' 과 ' 속성 ' 에대해서는 좀아시겠죠? 그럼본격적으로 < 눌러봐 > 버튼을누르면현재빈칸으로표시된텍스트박스에 " 뭘봐?" 라는문자가나오도록만들어봅시다. 즉우리가커맨드버튼을누른다는 " 행위 " 를할때무언가결과가나타난다는말인데, 이러한행위를 ' 이벤트 ' 라고합니다. 즉커맨드버튼이든텍스트박스이든마우스로누를때우리는 " 클릭이벤트가발생했다 " 라고합니다. 자, 그러면폼창에서 1< 눌러봐 > 버튼을더블클릭해보세요. 그럼아래와같이직접프로그래밍할수있는코드창이나타납니다. 3

4 코드창에서아래와같이입력합니다. Private Sub Command1_Click() End Sub Text1.Text = " 뭘봐?" 이미첫째줄과셋째줄은표시되어있죠? 여러분들은가운데 Text1.Text=" 뭘봐?" 만입력하면됩니다. 뜻을풀이하자면 Command1 버튼을누르는이벤트가발생하면 (Private Sub Command1_Click()) Text1이라는텍스트박스의텍스트속성값을 " 뭘봐?" 로바꾸고 (Text1.Text = " 뭘봐?") 끝내라 (End Sub) 는뜻입니다. 쉽죠? 근데아까 Command1은 " 눌러봐 " 로, Text1은빈칸으로바꿨는데왜코드에는그렇게나타나냐구요? 우리가전강좌에서바꾼것은겉모습즉, Text나 Caption 속성값만바꾼것이고실제이름 (Name) 속성은그대로두었기때문입니다. 다시폼창으로돌아가텍스트박스를누르고속성창에서제일위에있는이름속성을확인해보세요. 여전히 Text1으로되어있죠? 커맨드버튼도마찬가지입니다. 실제프로그래머들은이러한컨트롤을만들면맨먼저 Name 속성을바꿉니다.( 설명이길어질까봐일부러안했었는데, 오히려더 설명이길어지고있음. 우리도다음실습부터는그렇게합시다.) 4

5 프로그램을다짰으니이제실행해보죠. 상단도구모음줄에서 3시작단추 ( ) 를눌러보세요. 그럼좀전에만든프로그램이멋있게실행될것입니다. 프로그램이실행되면 < 눌러봐 > 단추를클릭해보세요... " 뭘봐?" 라는메시지가나오죠? ( 만약안나온다면이글첨부터다시찬찬히보고해보세요. 분명히됩니다.) 또마칠때가되었네요. 마치기전에지금까지만든것저장해놓고마칩시다. 도구모음에서디스켓처럼생긴프로젝트저장단추 ( 위그림 4번 ) 을눌러보세요. 처음에는폼파일이름을입력하라고합니다. 파일이름란에 "VB001" 로입력하고저장합시다. 그러면또프로젝트파일이름을입력하라고합니다. 그러면또파일이름을 "VB001" 로저장합시다. 폼파일, 프로젝트파일이뭐냐구요? 담에설명하죠. 오늘은여기까지... 우리는 VB 의반을알았습니다. 시작이반이니까요. 다음시간에는이벤트, 속성, 메서드에대해보다자세하게알아보죠. 4. 기초부터탄탄히 - 속성, 메서드, 이벤트이해하기 속성 먼저비주얼베이직을실행하고 ' 표준 EXE' 를선택하면빈폼이열립니다. ( 앞으로특별히언급하지않으면항상 ' 표준 EXE' 상태 로프로그램을시작하기로약속하죠.) 빈폼에텍스트박스컨트롤을아래그림과같이추가합니다.( 어떻게하시는지아시죠? 이미앞에서실습했습니다.) 그리고오른쪽하단에속성창을보세요. 이미이전에실습해서아시겠지만여러속성의이름과기본적인속성값들이보입니다. 5

6 텍스트박스컨트롤의속성들을자세히살펴보면모두 43 가지나됩니다. 이중에서우리는지난시간에이름속성과 Text 속성등을바꿔봤습니다. 그외에텍스트박스에입력또는표시되는글꼴의모양을변경할수있는 Font 속성, 텍스트박스테두리모양을변경할수있는 BorderStyle 속성, 배경색을바꿀수있는 BackColor 속성등매우많습니다. 각각의컨트롤은이많큼많은속성을가지고있습니다. 그럼이모든속성을다외워야하는가? 시간이남아도시는분은그렇게하셔도될것입니다. 그러나대개의경우몇가지자주사용하는속성만기억하고나머지속성들은대충그러한것들이있다는것만알아두시면됩니다. 비주얼베이직으로프로그래밍을여러번하다가보면자연스레여러속성에대해속속들이알게될것이기때문입니다. 속성을바꾸는방법은두가지가있습니다. 먼저기본적으로위와같은속성창에서직접그값을바꾸는방법이있습니다. 또다른방법으로는코드창에서직접바꾸는방법이있습니다. 실제프로그램이실행되는도중에사용자에의해속성값을바꿔 야할경우에주로사용되죠. 혹시지난강좌실습기억나시나요? < 눌러봐 > 버튼을눌렀을때텍스트박스에 " 뭘봐?" 라고표시되었죠. 텍스트박스를만들면기본적으로 Text 속성의속성값이 "Text1" 입니다. 이것을프로그래머가처음에 ""( 빈칸 ) 으로바꿨습니다. 그리고사용자가프로그램을실행하고 < 눌러봐 > 버튼을눌렀을때 ""( 빈칸 ) 이던 Text 속성값이 " 뭘봐?" 로바뀐것이죠? 이해가되시는지요?... 이해가될때까지이문장반복해서보시길... 메서드 메서드는영어로 method, 말그대로 ' 방법 ' 이라는뜻입니다. 즉어떤개체 ( 컨트롤 ) 를실행하는방법을말합니다. 어떤폼을보이 게할수도있고, 숨기게할수도있고, 그림을그리거나이동시킬수도있죠. 자, 그럼폼위의 Text1 텍스트박스를더블클릭하여코드창을열어보세요. 그러면아래와같이 Private Sub Text1_Change( ) 함수가기본적으로나오죠. 그아래줄에다음과같이 Text2. 을입력합니다. 그러면점 (.) 을입력하는순간아래그림과같이무언가를선택할수있는목록 6

7 이나타나죠. 이목록이바로속성과메서드목록입니다. 검은색글씨만으로된것이속성이고녹색아이콘이붙어있는것이바 로메서드입니다. 목록에서 SetFocus 메서드를선택해서 Text2.SetFocus 라는문장을완성하세요. Private Sub Text1_Change() End Sub Text2.SetFocus 이제뜻을살펴볼까요? Text1 이라는텍스트박스에 Change 이벤트가발생하면, 즉텍스트박스의내용을변경하면 Text2 라는텍스트박스로포커스를옮겨라, 즉 Text2 텍스트박스로커서가이동합니다. 그러면이제 [F5] 를누르거나실행버튼 ( ) 을클릭하여프로그램을실행해보세요. 그런다음 Text1 이라고씌어진부분에글자 를입력해보세요. 단한자를입력하자마자커서가 Text2 로이동되는것을알수있습니다. 좀어렵죠? 메서드에대한적절한예가없어 SetFocus 메서드로예를들자니다소어렵게느껴질수도있었겠습니다. 정리하자면메서드는개체 ( 컨트롤등을말함 ) 를대상으로행해질수있는일종의함수를말합니다. 그래서속성과마찬가지로항 상그대상이되는개체 ( 위의예에서는 Text2) 를명시하고점 (.) 을찍은다음뒤에표시를하게됩니다. 이벤트 이벤트에대해서는지난강좌에서설명드렸죠? 사용자가행하는어떤 ' 행위 ' 라고말입니다. 즉커맨드버튼을클릭 (Command1_Click()) 하거나더블클릭 (Command1_DbClick) 하는행위, 텍스트박스에글자를입력하거나수정 (Text1_Change()) 하 는행위등을말합니다. 보기메뉴에서코드를선택하여코드창을열어봅시다.( 코드창을여는방법은이외에도여러가지가있습니다. 폼을더블클릭 하거나특정컨트롤을더블클릭해도열립니다.) 7

8 아래그림과같은코드창에서 Text1 이라고표시된부분이 ' 개체 ' 목록을나타내는부분입니다. 쉽게말하면컨트롤이름이라고할수있습니다. ( 개체는컨트롤보다는광범위한개념입니다만, 이것저것다설명하자면너무길어지니그냥컨트롤과같은것이라고만생각해주시기바랍니다.) 현재폼위에텍스트박스를두개그려넣었으니 Form1, Text1, Text2 라고세개의개체가표시될것입니다. 오른쪽의 Change 라고표시된부분은 ' 프로시저 ' 목록입니다. 쉽게말하면이벤트라고할수있습니다. 우리가폼위에컨트롤을만들고더블클릭하여폼창을열면기본적으로가장자주실행되는이벤트프로시저가표시됩니다. 예를들어커맨드버튼을더블클릭하면클릭이벤트가기본적으로표시되고, 텍스트박스이벤트를클릭하면 Change 이벤트가기본적으로표시됩니다. 5. 예제로익히는 VB 기초 (1)- 시계 오늘은아주간단한프로그램하나만들어보죠. 아래화면과같이현재날짜와시간을보여주는프로그램인데, 이를통해컨트롤 추가, 속성값변경에서이벤트발생시처리프로그래밍, 단축키기능까지가능하도록해보죠. 그런다음실제로실행파일을 만들어보죠. 8

9 이렇게말하니까무지복잡하겠구나하고혹시생각하셨다면무지무지실망하실겁니다. 실제로프로그램코드는단두줄만필요 하니까요. 1. 비주얼베이직을실행합니다. 2. 레이블컨트롤, 커맨드버튼컨트롤, 타이머컨트롤을아래그림과같이배치합니다. 3. 레이블컨트롤의속성값을다음과같이변경하세요. 어떻게하시는지아시죠? o 폼 ( 이름 ) : frmtimer Caption : 현재시간 o 레이블컨트롤 ( 이름 ) : lblresult BorderSyle : 1-단일고정 Caption : 현재시간입니다. Font : 굴림, 12 포인트 o 커맨드버튼컨트롤 ( 이름 ) : cmdexit Caption : 끝내기 (&x) Alt+x 를눌러도동일한기능을수행한다는뜻입니다. o 타이머컨트롤 ( 이름 ) : tmrtimer 9

10 Interval : 1000 Interval 값이 1000 이면 1 초마다타이머를실행하라, 즉 1 초마다타이머이벤트를발생시키라는뜻입 니다. Interval 은 1 초를 1000 으로나눈값을기준으로합니다. 4. 폼위의커맨트버튼을더블클릭하여코드창을엽니다. 여기서잠깐! 혹시기억하나요? 이와같이특정컨트롤을더블클릭하면가장많이실행하는이벤트함수가나타난다는것. 앞강좌에서말씀드렸습니다. 그래서커맨드버튼을클릭하면클릭이벤트함수가자동으로나옵니다. 이와는다르게그냥코드창을보고싶을경우에는 [ 보기 ] 메뉴에서코드를출력하거나마우스오른쪽버튼을누른다음 [ 코드보기 ] 를선택하면됩니다. 다아는것을괜히말했나? 쩝. 아래와같이 cmdexit_click() 함수에 End 를추가합니다. 5. 폼위의타이머컨트롤을더블클릭하여다시코드창을엽니다. 아래그림과같이, lblresult.caption = Format(Now, "yyyy 년 mm 월 dd 일. AM/PM hh 시 mm 분 ss 초 ") 를추가합니다. o 대충은이해가가죠? lblresult.caption 에어떤값을집어넣으라는뜻이죠. o Format 함수는서식을설정할때사용합니다. 즉날짜나시간을표시할때연도는몇자리로표시하고시분초를어떻게표시하느냐하는것을지정합니다. 10

11 위의코드를살펴보면현재의시간 (Now) 을표시하되, 연도는 4 자리 (yyyy), 월은 2 자리 (mm), 일은 2 자리 (dd) 로표시하고, 시간을표시하되오전오후를구분하여 12 시간제로표시 (AM/PM) 하고시 (hh), 분 (mm), 초 (ss) 까 지표시한다는뜻입니다. o 타이머의 Interval 속성값을 1000 으로변경했던거기억하시죠? 즉 1 초마다타이머이벤트가발생되도록한거 말입니다. 따라서타이머이벤트가 1 초마다발생하면서 lblresult 의캡션값이 1 초마다바뀝니다. 6. 파일을저장합니다. o o 폼파일이름 : frmtimer 프로젝트파일이름 : 타이머 7. 아래그림과같이 [ 파일 ] 메뉴에 " 타이머.exe 만들기 " 를클릭합니다. o 만약위와같은메뉴가보이지않는다면위에서프로젝트파일을 ' 타이머 ' 라는이름으로저장하지않았기때문 입니다. o 프로젝트파일이저장된폴더에 ' 타이머.exe' 파일이생성됩니다. 8. 탐색기로를더블클릭하여실행해보세요. 6. 예제로익히는 VB 기초 (2)- 그래픽뷰어 ( 상 ) VB 프로그래밍에서자주사용하는컨트롤들을어떻게설명할까고민고민하다가내린결론이 " 몸에와닿는예제로배우자 " 였습니다. 그래서지난시간에 Timer 컨트롤과 Label 컨트롤, CommandButton 컨트롤을이용하여시계를만들어봤습니다. 이번시간에는보다고급적 (?) 인프로그램을하나만들어보죠. 간단한그래픽뷰어를만들면서 Image, ListBox, ComboBox 컨트롤에대해익히는알아보도록하죠.( 그렇게되면지금까지 Text, Label, CommandButton, Timer, Image, ListBox, ComboBox 컨트롤에대해미약하지만한번씩은짚고넘어가게되네요.) 11

12 1. 먼저아래그림과같이만들어보세요. o Label 컨트롤은이미앞시간에해봤으니어떤기능인지아실것이고... o 위그림에서파란색 Image 컨트롤은그림을보여주는기능을합니다. o 보라색의 ListBox 컨트롤과연두색의 ComboBox 컨트롤은모두리스트를보여주고특정항목을고를때사용하는것입니다. ListBox 와 ComboBox 는그모양에서도다소차이가나지만, LIstBox 는정해진목록에서만선택할수있고 ComboBox 는목록에서선택하거나직접입력할수도있다는점이다릅니다. 12

13 2. 각각의컨트롤에다음과같이속성을변경합니다. o Image 의 BorderStyle 은기본값이 0 입니다. 즉테두리표시가없습니다. 이값을 1 로바꾸면입체감있는테두 리로바뀝니다. o Image 의 Stretch 속성의기본값은 False 입니다. Stretch 는우리말로 ' 잡아늘이다 '' 쭉펴다 ' 라는뜻인것은아 시죠? 즉우리가위에서그려놓은 Image 영역보다그림크기가크든작든 Image 영역에맞추어보이도록하는 것입니다. o Label 의 AutoSize 속성은 Label 의 Caption 문자열길이에맞춰자동으로너비를조절하라는것입니다. 만약 AutoSize 의속성이 False 인상태에서 Label 에표시될문자열이길경우잘리게된다는말입니다. o ComboBox 의 Style 을 '2 - 드롭다운목록 ' 으로바꾸면 ComboBox 내의목록에서만선택할수있고직접어떤 값을입력할수는없게한다는것입니다. 즉 ListBox 의기능과동일하게한다는뜻이죠.( 모양만다르고...) 3. 다음은코드창을열어아래와같이코딩해봅시다. 코드창열줄아시죠? [ 보기 ] 메뉴의제일처음에보이는 [ 코드 ] 를선택하면됩니다. 그외에도여러방법이있지만... o 위그림의보라색부분에보이는것처럼 Form 개체에서 Load 이벤트를선택합니다. 코드창을열때폼을더블클릭해서열면자동으로 Form 의 Load 이벤트함수가표시됩니다. ( 앞에서이미설명한것같은데...) o 위의 1과같은코드를직접입력합니다. List1.AddItem 은 'List1' 이라는 ListBox 에항목을추가하라는메서드입니다. 즉, List1.AddItem " 워드프로세서 ", 0 이라고하면, 'List1' 이라는 ListBox 에 ' 워드프로세서 " 라는항목을추가하고, 이 ' 워드프로세서 ' 라는항목의값을 '0' 으로지정한다는뜻입니다. o Combo1.AddItem 문장도같은뜻입니다. ListBox 와 ComboBox 의속성과메서드는거의동일합니다. 다음코드를더입력하기전에지금까지입력한결과를확인하기위해 [F5] 를누르거나도구모음에서실행단 추 ( ) 를눌러실행해봅시다. 13

14 o 리스트박스에위에서입력한 4 가지항목이보이고, 콤보박스를클릭했을때에도 4 개의항목이모두보입니 까? 그러면지금까지는성공했습니다. 만약안되는분... 본강좌처음부터다시한번찬찬히살펴보시기바 랍니다. 7. 예제로익히는 VB 기초 (2)- 그래픽뷰어 ( 하 ) 바로이어서시작하겠습니다. 1. 먼저소스파일을다운로드한다음그림파일 (4 개가있습니다.) 을 C: vb 실습폴더에모두복사해두세요. 2. 지난시간에작성한파일을불러와야죠. 탐색기로프로젝트파일 (" 콤보와리스트.vbp") 을더블클릭하여불러오면되겠죠? 헉 불러왔는데아무것도안보인다구요? 아래그림과같이프로젝트창에서 ' 폼 ' 을열고아래의 'Form1 ( 콤보와리스트.frm)' 을더블클릭하면됩니다. 3. 자, 이제코드창을열어보세요. 지난시간에아래 1 번코드까지작성했었죠? 14

15 이번시간에는 2 와 3 과같은코드를작성합니다. 너무복잡하나요? 그렇지는않습니다. 우선 2 와 3 의코드는파란색 으로밑줄친부분을제외하고는완전히동일합니다. 따라서하나만제대로알면되겠죠? 4. 일단위의그림 2 와같이입력하세요. 먼저 List1 개체의 Click 이벤트를선택하고다음코드를입력합니다.( 이말이무슨뜻인지모르시면바로앞강좌를다 시보세요.) o Label1.Caption = List1.List(List1.ListIndex) 전시간에입력한 1번내용기억납니까? List.AddItem 메서드를사용해리스트박스에항목들을추가했었죠. 항목과함께번호도함께붙였던것기억나시죠? List.AddItem " 워드프로세서 ", 0 중에서숫자 0 에해당하는것이 ListIndex 입니다. 따라서위의코드를괄호안에서부터해석하자면 'List1' 이라는리스트박스의 0 번에해당하는항목 ( 문자열 ) 으로 Label1.Caption 속성을바꾸라는뜻입니다. ( 이해가안되시면다시읽어보세요...^^;) o Select Case List1.ListIndex Select Case End Select 제어문입니다. List1.ListIndex 의값에따라여러가지일을수행하도록하는코드입니다. 비주얼베이직으로코딩할때자주쓰이는제어문으로는, 15

16 If Then End If Select Case End Case For Next While Wend Do Loop 등이있습니다. 모두일정한조건을주고그조건에따라어떤일을수행하도록하는역할을합니다. o Case 0 윗줄의 Select Case List1.ListIndex 에서 List1.ListIndex 의값이 0 이라면다음줄의코드를실행하라는뜻입니다. 위의 1번코드를보면알듯이 List1.ListIndex 의값이 0 이면 " 워드프로세서 " 항목을선택한것이고, 1 이면 " 컴퓨터활용능력 ", 2 이면 " 정보처리기능사 ", 3 이면 " 정보기기운용기능사 " 를선택했다는뜻입니다. 즉 Case 0 은 ' 리스트박스에서 " 워드프로세서 " 항목을선택했다면 ' 이라는뜻이되겠죠. o Image1.Picture = LoadPicture("c: vb 실습 워드.gif") LoadPicture() 함수는이름그대로그림을불러오는역할을합니다. 그렇게불러온그림으로 Image1 의 Pciture 속성을바꾸라는뜻이죠. 5. 2와같이모두입력했으면, 이제 3을입력해보세요. Combo1 개체의 Click 이벤트를선택하고위의그림에서 3번코드를입력합니다. 2와다른점은 List1 을 Combo1 으로바꾼것외에는없습니다. 즉 ListBox 와 ComboBox 의속성이나메서드는거의동일합니다. 6. 다됐습니다. 이제실행해도됩니다. [F5] 키나실행단추 ( ) 를눌러실행해보세요. 리스트박스에서도골라보고콤보박스에서도골라보세요. 그림이제대로나오는지, 그림밑에레이블문자가제대로표 시되는지확인해보세요. 그래도잘모르겠다구요? 괜찮습니다. 이런식으로계속하다가보면대충프로그래밍이란이런거구나감이잡힙니다. 일단따라 서입력하고, 실행해보고, 다시입력한코드를반복해서살펴보고... 이러다보면자연스레알게될것입니다. combo code 입력란에 label1.caption=combo1.list(2) Select Case Combo1.list(Combo1.listIndex) 를 16

17 label1.caption=combo1.list(combo1.listindex) Select Case Combo1.listIndex 로바꿔줘야합니다. 8. 변수, 연산자, 조건문의개념 (1)- 변수 변수의개념 변수는한자로변할變자를써서 ' 變數 ' 라고씁니다. 영어로는 'a variable', 역시변한다는뜻이죠. 변수의반대말은상수 ( 常數, a constant 또는 an invariable) 입니다. 변하지않는항상같은수라는뜻입니다. 예를들어, a = 1 이라고했을때왼쪽의 a 는변수, 오른쪽의 1 은상수가됩니다. 즉 a 라는곳에 1 을대입한다는뜻으로나중에 1 이아닌 다른값도대입할수도있게됩니다. a = 1 b = 1 c = a + b 무슨뜻인지아시겠죠? ( 죄송합니다. 너무쉬운예를들어서리...) VB 에서변수의종류는 10 가지가넘습니다. 정수를담을수있는변수, 실수를담을수있는변수, 문자열을담을수있는변수 등등... 복잡하겠지만아래의표를보세요. 변수의종류가어떤것들이있는지... 그외에 Byte 형, Currency 형, Object 형, 사용자정의형식등이있다.( 위의표안의변수들이자주쓰인다.) 변수의선언 VB에서는굳이변수를선언하지않아도맨처음대입하는상수에따라자동으로그형식을정의해줍니다. 예를들어, a = 3 b = "Itemembers.net" 17

18 이라고하면, a 라는변수는정수형변수 (Integer) 가되고 b 라는변수는문자열변수 (String) 가됩니다. 그러다가이후에 a = " 우리 나라 " 라고쓰면엉뚱한결과가나타납니다.. 왜냐하면 a 는숫자만들어갈수있는변수이니까요...( b = 3 이라고써도오류가발 생하지않습니다. 이때 3 을숫자 3 이아닌문자 3 으로인식해버리니까요... ) 그러나보다체계적인프로그래밍을하기위해서는변수를선언해주는것이좋습니다. 미리선언을하지않고위와같이처음들 어가는값에따라변수의형태가결정될경우프로그래머의실수로인해오류가발생할가능성이큽니다. 가능하면다음과같이 명시적으로변수를선언해줘야죠. Dim itemp as Integer 변수를선언할때는 Dim으로시작합니다. Dim은 dimension의약어입니다. 위의문장은 itemp라는변수를정수형 (Integer) 으로선언한다는뜻입니다. 따라서 itemp = " 안녕하세요 " 라고하면오류가납니다. 참고로프로그램을처음시작할때 Option Explicit 라는문장을쓰고시작하면모든변수는반드시사전에선언을해주어야한다 는뜻입니다. 프로그래머가혹시나실수로변수를선언하지않고사용할경우일부러에러가나도록하는문장입니다. 기타자세한내용은이후에실습을통해다시설명을드리도록하겠습니다. 이론은최대한짧게하고실습예제를통해하나하나알아나가도록하죠. 그게오히려더빨리이해됩니다. 9. 변수, 조건문, 루프문의개념 (2)- 연산자 이번시간은연산자에대해서간략하게알아봅니다. ( 쉬우니까금방넘어가죠.) 우선아래표를보세요. 산술연산자, 논리연산자, 비교연산자, 연결연산자에대해간략하게표로정리해봤습니다. 그냥보면 이해되는것도있고그렇지않은것도있을것입니다. 언뜻봐서는잘이해가안갈것같은몇개만예를들어보죠. 1. 산술연산자 o + 연산자 + 연산자는설명할것도없을것같은데, 아닙니다. + 연산자는숫자일경우말그대로 + 연산을수행하고, 문 자열간에는서로 ' 연결 ' 하는기능을합니다. 아래예문을보면서비교해보세요. 18

19 Dim MyNumber, Var1, Var2 ' 변수에특별한형을지정하지않고그냥변수이름만선언했습니다.' MyNumber = ' 5 를반환합니다. MyNumber = ' 를반환합니다 Var1 = 12 ' Var1 변수에숫자 12 를대입합니다. Var2 = 34 ' Var2 변수에숫자 34 를대입합니다. MyNumber = Var1 + Var2 ' 숫자 46 을반환합니다. Var1 = "12" ' Var1 변수에문자열 "12" 를대입합니다. Var2 = "34" ' 문자열 "34" 를대입합니다. MyNumber = Var1 + Var2 ' 문자열 "1234" 를반환합니다. 이해가안되면이해될때까지보세요. 어렵지않습니다. 그리고작은따옴표 (') 로시작되는부분은주석입니다. 실제프로그래밍할때도프로그래머가알아보기쉽게주석을달때작은따옴표를붙이고설명문을달아주면 됩니다. 실제프로그램에서는이부분을무시하고실행합니다. o 연산자 나눈 ' 몫 ' 을반환합니다. 반환한다는뜻은아래의첫번째예를보자면 11 을 3 으로나눈몫 (2) 을반환하여 MyValue 라는변수에대입한다는뜻입니다. Dim MyValue As Integer MyValue = 11 3 ' 3 를반환합니다. 한글상태에서는 \ 대신 가표시됩니다. MyValue = 9 3 ' 3 을반환합니다. MyValue = ' 33 을반환합니다. o Mod 나눈후 ' 나머지값 ' 을반환합니다. Dim MyResult MyResult = 10 Mod 5 ' 0 을반환합니다. MyResult = 10 Mod 3 ' 1 을반환합니다. MyResult = 12 Mod 4.3 ' 0 을반환합니다. MyResult = 12.6 Mod 5 ' 3 을반환합니다. 19

20 2. 논리연산자 만약프로그래밍을처음한다면위의도표를잘이해하기힘들것입니다. o And 와 Or If a > b And c > d then... EndIf 위의문장을보면 a 가 b 보다크고 " 그리고 " c 도 d 보다크면어찌어찌하라는뜻입니다. 즉좌우두개의비교식이모두맞으면 True 값을반환합니다. 만약 And 자리에 Or 를넣는다면 " 둘중하나만참 " 이면 True 값을반환합니다. o Not If Not(a>b) then... EndIF 위의문장은 a 가 b 보다크지않으면 True 값을반환합니다. 아시겠죠? o Xor 등 Xor 는좌우의비교식중하나만참일때 True 값을반환합니다. 두식모두참이거나모두거짓일경우에는 False 값을반환하죠. 헤깔리죠? 몇번보시면압니다. 그리고 Xor 는초급단계에서당분간쓸기회가없을것입니다. Eqv 는좌우의식이같으면 True 값을반환합니다. Imp 는어지간해서는쓰이지않으니그냥넘어가죠. 20

21 3. 비교연산자 별다른설명이필요없을것같네요. Like 와 Is 연산자도나중에중급강좌로넘어갈때다루기로하죠. 4. 연결연산자 o + 연산자는산술연산자의사용법과동일합니다. o & 연산자는강제로문자열을연결합니다. 예를들어 Dim MyStr MyStr = "30" + 40 ' 70 을반환합니다. MyStr = "30" & 40 ' "3040 을반환합니다. 10. 변수, 조건문, 루프문의개념 (3)- 조건문, 루프문 조건문과루프문은프로그래밍을할때없어서는안될요소입니다. 사실프로그램이라는것이어떤조건에서변하는상황에따라 다른결과를내게하는것아니겠습니까? 만약입력된숫자가어떠어떠할경우에는어떻게하라는식의명령이가능할려면반드 시조건문과루프문을사용할수밖에없습니다. 자주쓰이는조건문과루프문으로는다음과같은것들이있습니다. 1. If End If 문 다음예문을보죠. If a > 3 Then b = b + 1 Else 21

22 End If b = b - 1 만약 a 가 3 보다크면 b = b +1 아니면 b = b - 1 이라는말이죠. 위에서보는단순한 IF 문외에 If Else If 또는 If 문을중첩해서사용하는경우도있습니다. If 문은이럴때사용하는구나하는정도만알고넘어가죠. 2. Select Case End Case 문 Select Case itemp Case 1 MsgBox("iTemp의값이 1입니다 ") Case 2 MsgBox("iTemp의값이 2입니다 ") Case 3 To 5 MsgBox("iTemp의값이 3에서 5입니다 ") Case Else MsgBox("iTemp의값이범위밖입니다 ") End Case 위의예문은 itemp 으값이 1 일경우, 2 일경우, 3 5 일경우, 그외의숫자일경우에각각메시지박스에해당문장을 출력하라는코드입니다. 어떤뜻인지이해는가시죠? 정확한쓰임새는이후에예제를통해알아볼기회가있을것입니다. 3. For Next 문 Sum = 0 For itemp = 1 To 10 Step 1 Sum = Sum + itemp Next itemp 의값이 1 부터 10 까지 1 씩증가할동안누적해서값을더하라는말이죠. 즉 까지하라는말 입니다. 이해가될듯말듯? 계속뚫어져라보세요. 이해가되었으면아래 Do While 문으로이동하세요. 4. Do While Loop 문 Do 문은여러가지형태로쓰입니다. Do While Loop 와같이쓰일때가있고, Do Until Loop 과같이쓰일때도있습니다. 또한약간변형해서 Do Loop While 또는 Do Loop Unitl 과같이쓰이기도합니다. 약간의차이가있지만아래예를통해기본적인유형을알아보기로하죠. 22

23 Sum = 0 itemp = 0 Do While itemp < 10 itemp = itemp + 1 Sum = Sum + itemp Loop 조금전위의 For Next 문과많이닮았죠? 자세히보세요. 무슨뜻이냐하면... itemp 값이 10 보다작은동안에 Do 와 Loop 사이의문장을실행하라는뜻입니다. 따라서 itemp 의값이처음에 0 이었다가 1 로바뀌고 (itemp = 0 +1), Sum 의값도 1 로바뀝니다 (Sum = 0 + itemp), 다음에 Loop 문을만나다시처음으로돌아가면 itemp 의값이 2 로바뀌고 (itemp = 1 + 1), Sum 은 3 으로바뀝니다 (Sum = 1 + 2). 갑자기헤깔리시나요? 자세히뚫어져라보시면이해가될겁니다. 찬찬히한번보세요. 이상으로간략하게조건문과루프문에대해서도알아봤습니다. 다음시간부터는실제예제를통해변수와연산자, 조건문, 루프 문이어떻게사용되는지살펴보기로하죠. 한꺼번에모든조건문과루프문, 연산자의활용에대해다루기는힘듭니다. 하나하나 작지만유용한실습예제를통해차차익혀나가는방식으로진행하겠습니다. 11. 예제로익히는 VB 기초 (3)- 메뉴만들기 지금부터하나하나예제를만들어야하는데요, 한번만든예제를그냥버리자니뭔가아까운생각이들지않습니까? 그래서지 금부터만드는예제를모두모아하나의예제모음프로그램을만들어보는게어떨까요? 아래그림과같이 5 강에서만든간단한시계프로그램과 6 7 강에서만든간단한그래픽뷰어프로그램을 'VB 입문 ' 이라는메뉴 에추가하는것입니다. 이렇게해서과거에만든예제프로그램을보면서 VB 의기능을숙지하자는것이지요. 23

24 앞으로만들실습예제프로그램도마찬가지입니다. 이런식으로예제를하나하나완성해가다보면 VB 의기초가튼튼해지지않 을까요? 오늘실습할내용은이전에비해설명할것들이많습니다. 전체적으로한번실습해본다음차근차근다시읽어나가는것이좋 을것입니다. 실습준비 제 5 강에서실습한시계프로그램의소스파일을준비한다. 제 6 7 강에서실습한그래픽뷰어프로그램의소스파일을준비한다. 위두개의프로그램모두압축을해제한후새로운폴더에복사해둔다. 자, 설레는마음으로하나하나따라해봅시다. 1. 먼저 VB 를실행시켜 ' 표준 EXE' 프로젝트를시작합니다. 24

25 2. [ 프로젝트 ] 메뉴의 [MDI 폼추가 (I)] 를클릭합니다. 참고로 MDI 폼은 Multi Document Interface 의약어입니다. 즉여러개의문서 ( 창 ) 를열어놓고작업할수있는환경이라는말이죠. 이 MDI 폼에메뉴를만들고하위메뉴를만들어실행하면, 이 MDI 폼안에서여러개의폼을실행하여마치우리가워드프로세서를쓰면서여러개의창을열어놓고쓰는것과같은효과를볼수있습니다. 이때 MDI 폼을부모창이라고하면그안에서실행되는폼을자식 (MDIChild) 창이라고합니다. o [MDI 폼 ] 이선택된상태에서 [ 열기 (O)] 단추를클릭합니다. o MDI 폼이열렸으면 MDI 폼의속성을아래와같이바꿔줍니다. ( 이름 ) 속성을 frmmenu 로바꿉니다. Caption 속성을실습예제모음으로바꿉니다. 25

26 3. VB 를실행하면서처음열려있던 Form1 폼을제거합니다. o 프로젝트창에서 Form1(Form1) 을마우스오른쪽단추로클릭한다음 o 팝업메뉴에서 [Form1 제거 (R)] 항목을클릭합니다. o 앞으로이프로그램에는폼이여러개필요한데이러한의미없는이름의폼은오히려혼란만가중시킵니다. 따라서앞으로어떤폼을만들더라도반드시폼의이름속성은프로그램의성격상적당한이름으로반드시바꿔놓고시작하는것이좋습니다. 4. [ 프로젝트 ] 메뉴에서 [ 폼추가 (F)] 를클릭합니다. o 위그림과같이 [ 기존파일 ] 탭을클릭하고위실습준비에서준비해둔시계프로그램의폼파일 (frmtimer.frm) 을선택하고 [ 열기 (O)] 를클릭합니다. o 같은방법으로제 6 7 강에서만들었던그래픽뷰어프로그램의폼도추가합니다. 그런데그래픽뷰어프로그램의폼이름이 Form1 으로되어있죠? 이전에 6 7 강에서다룬그래픽뷰어프로그램을만들때폼의이름을특별히주지않아폼의이름이 Form1 로되어있는것입니다. 그러나이미말씀드렸다시피여러개의폼으로구성된프로그램을만들경우그이름이적절하지못해혼란을초래할수가있습니다. 그래픽뷰어의폼을추가한다음폼의이름속성을 Form1 에서 frmviewer1 으로바꿔주세요. 26

27 5. 이제아래와같이프로젝트창에 3 개의폼이표시되죠? 만약아래와같은모양이나지않는다면다시처음부터차근차근따라해보세요. 프로젝트창에폼의이름은추가되었는데실제로폼이보이지않는다구요? 그렇다면프로젝트창의폼이름을더블클릭 해보세요. 그러면해당폼이나타날것입니다. 6. 이번에는메뉴를만듭니다. o [ 도구 ] 메뉴에서 [ 메뉴편집기 ] 를선택합니다.( 단축키 Ctrl+E 를눌러도됩니다.) o 위의그림과같이 Caption 란에 " 파일 (&F)" 라고입력하고, Name 란에 "mnufile" 이라고입력합니다. o 그리고 [ 다음 (N)] 단추를클릭합니다. o 다시 Caption 란에 " 종료 (&X)" 를입력하고, Name 란에 "mnuexit" 를입력합니다. o 메뉴편집기의중간쯤에위치한오른쪽화살표단추 ( ) 를클릭합니다. 그러면 " 종료 (&X)" 메뉴앞에 "..." 표시가나타나죠? 이것이바로하위메뉴라는것입니다. o 오른쪽화살표단추는하위메뉴, 왼쪽화살표단추는상위메뉴로바꾸는역할을합니다. 위쪽화살표는선택 한메뉴를위로이동시키고, 아래쪽화살표는선택한메뉴를아래로이동시킵니다. o 결과적으로다음과같이메뉴를추가한다음, 왼쪽오른쪽위아래화살표단추를적절히이용하여위의그림과 같은상태로만들면됩니다. 여러번시도해보면반드시위와같은모양이나올것입니다. 27

28 설명안드려도알겠지만위에서 ShortCut(S) 란은단축키를정의하는곳입니다. 즉 Ctrl+X 를누르면프로그램 이자동으로종료된다는뜻이죠. 7. 아래와같은모습이나왔나요? o 파일메뉴를누르면아래에하위메뉴가보여야됩니다. o 마찬가지로 VB 입문메뉴를누르면아래에하위메뉴가보여야죠. 28

29 8. 파일메뉴의하위메뉴인 [ 종료 ] 를클릭합니다. o 그러면코드보기창이나오고 Private Sub mnuexit_click() 이라는이벤트함수가보이죠? o 그아래에위그림과같이 End 를입력합니다. 9. 같은방법으로 [VB 입문 ] 메뉴의하위메뉴인 [ 시계 ], [ 그래픽뷰어 ] 도클릭하여아래와같은코드를모두완성합니다. Private Sub mnuexit_click() End End Sub Private Sub mnutimer_click() frmtimer.show End Sub Private Sub mnuviewer1_click() frmviewer1.show End Sub 29

30 10. 이번에는 frmtimer 폼의 [ 끝내기 (X)] 단추를더블클릭하여코드보기창을엽니다. o 위그림과같이커맨드버튼클릭이벤트함수에예전에입력했던 "End" 문을지우고 "Unloade Me" 를입력합 니다. o 만약여기의 End 문을그대로두면나중에프로그램을실행한다음시계프로그램의 [ 끝내기 ] 단추를누르면 프로그램전체가종료되는결과가나타납니다. 다시말해 End 문은프로그램전체를끝내게되므로현재열려진자신의폼을닫는명령인 "Unload Me" 로바꾼것입니다. 이미위에서우리가새로만든 MID 폼의 [ 파일 ] 메뉴에서 [ 종료 ] 를누르면프로그램을종료하도록 End 문을썼습니다. 11. 시계프로그램의 frmtimer 폼을선택한다음폼속성창에서아래그림과같이속성을변경합니다. o Border Style 속성을 '1 - 단일고정 ' 으로바꿉니다. o MDIChild 속성을 'True' 로설정합니다. 12. 동일한방식으로그래픽뷰어프로그램의 frmviewer1 폼의속성도위와같이바꿔줍니다. Border Style 속성과 MDIChild 속성을왜바꿨는지궁금하시죠? 이실습을모두마친다음에 Border Styele 속성을 '2 - 크기조정가능 ' 으로하고, MDIChild 속성을 'False' 로한다음비교실행해보세요. 어떤점에서다른지... 직접한번해보시길... 그차이가쉽게드러납니다. 13. 이제모든것이끝났습니다. [F5] 키나메뉴에서실행단추를클릭하여직접실행해보세요. 메뉴를누를때마다하나 하나변하는모습, 감격스럽지 (?) 않습니까? 14. 이제저장을합시다. 폼파일이름은폼속성의이름그대로사용하면될것같고, 프로젝트이름은 " 메뉴 " 로하면되겠 군요. 30

31 15. 폼파일과프로젝트파일을저장했으면이제실행파일도만들어보세요. 어떻게만드는지아시죠? VB 의 [ 파일 ] 메뉴에 [ 메뉴.exe 만들기 ] 라는메뉴가있으면정상입니다. 그걸누르면되죠 예제로익히는 VB 기초 (4)- 구구단 오늘은 For Next 문을사용하여구구단을출력하는프로그램을만들어볼예정입니다. 위화면을보면벌써감이오겠지만, 지난강좌에서다룬메뉴프로그램에구구단을출력하는폼을하나추가하고, 메뉴에도구구단메뉴를하나를추가하면됩니다. 따라서, 오늘강좌를위해서는지난시간에만들어둔소스파일이필요합니다.( 만약없으신분은바로앞강좌에서소스를다운로드하여압축을해제한다음따라하시면됩니다.) 시작합니다. 1. 지난시간에만든프로젝프파일을엽니다. 어떻게여냐구요? 지난시간에만든 " 메뉴.vbp" 파일을더블클릭하면됩니다. 2. [ 프로젝트 ] 메뉴의 [ 폼추가 ] 를클릭하여새로운폼을엽니다. [ 폼추가 ] 대화상자에서기본적으로선택되어있는그냥 ' 폼 ' 을열면됩니다. 31

32 3. 새로추가한폼의속성을다음과같이수정합니다. o ( 이름 ) : frmgugu 지난시간에말씀드렸죠? 일단폼을만들면폼의성격에맞는이름을부여하라고... 그냥 Form1 과같이무의미 한상태로놓아두면나중에굉장히헤깔리게됩니다. o BorderStyle : 1 - 단일고정 테두리의크기를고정합니다. o Caption : 구구단 제목표시줄에표시될창제목입니다. Titlebar 의타이틀. o MDIChild : True 새로추가된폼이지난시간에만든전체메뉴를실행하는화면 (MDI 창 ) 안에서실행되도록하는것입니다. 이 것을기본값인 False 상태로놓아두면... ( 궁금하시면직접한번해보세요!) 4. 오른쪽프로젝트창이다음과같은모습이면정상입니다. 5. 이제본격적으로구구단프로그램을만들어보도록하죠. 32

33 o 먼저새로만든폼에다음과같이컨트롤을배열합니다. o 각컨트롤의속성을다음과같이변경합니다. 6. 커맨드버튼을더블클릭하여 cmdguguresult 의 Click 이벤트함수가보이도록코드창을엽니다. 말은복작하게했지만, 그냥 " 구구단출력 " 이라는버튼을더블클릭하란말입니다. 7. 지금부터코드를입력합니다. o 다음과같이변수를먼저선언합니다. 여기서작은따옴표 (') 로시작하는것은설명문이라고했습니다. 굳이입력하지않는다고프로그램에오류가생 기는건아니지만항상주석을다는습관도중요합니다. 33

34 Dim intgugu As Integer ' 텍스트박스에서입력받은문자를숫자로 Dim inttemp As Integer 'For Next 문에서반복할변수 Dim strresult As String ' 구구단결과문자를저장할변수 o 다음줄부터는텍스트박스를통해입력한숫자에해당되는구구단을출력하는코드입니다. 아래와같이정확하 게입력하시기바랍니다. 단, 원으로된숫자는입력하면안됩니다... 설명하기위해달아놓은것이니까요. 1 lblguguresult.caption = "" ' 레이블을문자열을초기화합니다. 2 intgugu = Val(txtGuguInput.Text) 3 For inttemp = 1 To 9 'Chr$(10) -> 줄을끝까지채우는역할 'Chr$(13) -> Return 줄을바꾸는역할 4 strresult = Val(intGuGu) & " * " & Val(intTemp) & " = " & Val(intGuGu * inttemp) & Chr$(13) ' 기존레이블 caption 에새로운문자열을추가함 5 lblguguresult.caption = lblguguresult.caption + strresult 6 Next o 풀어서설명드리죠... 만약정말로정말로프로그래밍에대해생짜초보인사람은위의코드를이해하기매우어려울수있습니다. 그러나몇가지힌트만제공할테니한번자신의논리력을테스트한다고생각하고이해가될때까지보고또보세요... 1의코드는레이블의값을초기화합니다. 이프로그램은입력한숫자에해당하는구구단을출력하는프로그램입니다. 따라서처음에 3 단을입력했다가, 다시 5 단을입력했을때처음 3 단에해당하는구구단을출력한그결과를싹지우고 5 단을출력해야됩니다. 이문장은기존의결과를싸 ~ 악지우는역할을합니다. 2는텍스트박스에서입력한숫자를받아들이는기능입니다. 여기서 Val() 함수는문자열을숫자로바꾸는기능을합니다. 텍스트박스로입력된것은그것이숫자든문자든모두문자열로인식하므로, 예를들어문자 "3" 을입력했다면그값을숫자 3 으로바꾸어주는것입니다. 3에서 6까지는 For Next 반복문입니다. 그뜻을살펴보자면, 3 inttemp 라는변수를 1 에서 9 까지하나씩증가시키면서반복하라는것입니다. 이번프로그램코드의핵심은바로 4,5번이죠. strresult 변수는실제출력하는문자열을저장하고있는변수인데, 등호 (=) 뒤의여러값들을연결 (&) 하여서하나의변수 (strresult) 에저장한것입니다. 이 strresult 변수의내용을또누적해서최종적으로 9 번까지누적해서저장해놓은것이바로 5번에있는 lblguguresult.caption 입니다. 선뜻이해하기힘들죠? 그러나본인이스스로이코드를몇번이고뚫어져라보면서이해하는수밖에없습니다. 말로풀면풀수록더헤깔릴수있으니까요. 프로그래밍은프로그래머자신의머리로사고한내용을풀어내어야합니다. 아무리숙달된프로그래머도남이만들어 34

35 놓은코드를쉽게이해하기는힘듭니다. 언제나자신의방식이있으니까요. ( 물론지금우리가하고있는것을은기본중의기본이라프로그래밍을하는사람은누구나알고있는기초적인것입니다. 그러나어떠한프로그래머도이와같은초보시절이있었으니... 기죽지말고끝까지찬찬히코드를읽어보시기바랍니다. 이해될때까지...) 8. 이로써구구단을출력하는프로그램이완성되었습니다. 이제메뉴에구구단폼 ( 창 ) 을불러오는메뉴를추가해야겠죠? o MDI 폼 (frmmenu) 을선택한다음 [ 도구 ] 메뉴에서 [ 메뉴편집기 (Ctrl+E)] 를실행합니다. [ 메뉴편집기 ] 가흐리게보인다구요? 그건 frmmenu 폼 (MDI 폼 ) 이열려있지않기때문입니다. 오른쪽프로젝트창에서 frmmenu 를더블클릭하여폼을열고난다음에다시해보세요. o 위의그림과같이가장아래에 ' 구구단 ' 메뉴를추가합니다. 9. frmmenu 폼의 [VB 입문 (A)] 의하위메뉴에 ' 구구단 ' 이추가되었으면, ' 구구단 ' 메뉴를클릭합니다.( 그러면아래와같은코드창이열립니다.) o mnugugu1_click() 함수에위그림과같이 frmgugu.show 코드를입력합니다. 즉 ' 구구단 ' 메뉴를클릭하면 frmgugu 라는폼 ( 창 ) 을열라는뜻입니다. 10. 이제다됐습니다. [F5] 키를눌러프로그램을실행해보세요. 그리고 [VB 입문 (A)] 메뉴의하위메뉴인 [ 구구단 ] 을클 릭해보세요. 그리고텍스트박스에원하는숫자를입력하고 ' 구구단출력 ' 단추를눌러보세요. 제대로출력이됩니까? 35

36 흐흑 ~ 안된다구요? 그럼어딘가잘못따라하신것이있을겁니다. 처음부터다시찬찬히해보세요. 다시천천히 정상적으로되었으면저장을하세요. 새로만든폼의이름은 ' 구구단 ' 으로하는것이좋겠네요. 실제로프로그래밍을할때는작업중간에틈틈이저장하는습관을들이세요. 나중에후회하지않습니다. 13. 예제로익히는 VB 기초 (5)- 구구단 2 오늘은지난번에실습했던내용을복습하는의미로지난실습과유사한프로그램을만들어봅니다. 왜냐하면구구단출력을위한기본로직은프로그래밍의기본중의기본이니이정도는안보고도만들수있어야되니까요. 단지난실습에서는 Text Box 를통해출력할단수를입력받았는데, 이번실습에서는 Input Box 를이용해원하는단수를입력받도록하는것만다릅니다. 그러니까아래그림과같이 [ 구구단출력 ] 단추를눌러 [ 입력요구창 ] 이나타나서원하는숫자를입력하고 [ 확인 ] 단추를누르면구구단이출력되는프로그램입니다. 36

37 단번에아하 ~ 라고생각하셨다면 ( 그리고프로그래밍이처음이라면 ) 당신은분명히프로그래밍에소질이있습니다. 자, 실습해봅시다. 1. 먼저 VB 를실행하여지난시간에만들었던 ' 메뉴.vbp' 프로젝트를엽니다. 2. [ 프로젝트 ] 메뉴에서 [ 폼추가 ] 를선택합니다. [ 폼추가 ] 대화상자에서 [ 열기 ] 를눌러일반적인모양의폼을추가합니 다. 3. 새로추가된폼을아래그림과같이만듭니다. 37

38 4. 커맨드버튼을눌렀을때 Input Box 가나타나도록다음과같이코드를작성합니다. o 빨간네모안의세번째줄까지는변수를선언하였습니다. o 빨간네모안의네번째줄은첫번째그림과잘비교해가면서그쓰임새를살펴보면이해가될것입니다. InputBox(1, 2, 3) 과같은형식으로쓰이며, 1에는출력메시지, 2에는제목표시줄에표시될타이틀, 3에는입력기본값을쓰면됩니다. InputBox(,, ) 의결과를 InputResult 변수에저장하라는뜻인줄은알겠죠? InputBox(,, ) 의결과가무엇일까요? 바로사용자가직접입력한값을말합니다. 만약사용자가아무것도입력하지않으면? 기본값인 3 을 InputResult 변수에대입을하겠죠. 5. 그다음줄부터는일부러흐리게표시했습니다. 직접코드를작성해보세요. 지난강좌의내용과동일합니다. 가급적이면지난번강좌를참조하지말고... 최대한스스로생각해서한번작성해보세요. 그래야실력이늡니다. lblguguresult.caption = "" ' 레이블의문자열을지웁니다.( 초기화 ) For inttemp = 1 To 9 intguguresult = InputResult * inttemp strgugu = CStr(InputResult) & " * " & CStr(intTemp) & " = " & CStr(intGuguResult) & Chr$(10) & Chr$(13) lblguguresult.caption = lblguguresult.caption + strgugu Next 6. 이제실행을해봐야되는데, 일단한번 [F5] 를눌러실행해보세요. 당연히지난시간에만들었던메뉴가나타나죠? 그리고오늘만든프로그램을실행할수있는메뉴가없죠? 그럼만들어야죠. 38

39 o 오른쪽프로젝트창에서 frmmenu 폼을더블클릭하여활성화시킵니다. o [ 도구 ] 메뉴에서 [ 메뉴편집기 ] 를실행합니다. o 아래와같이메뉴를추가하고 [ 확인 ] 단추를누릅니다. 7. frmmenu 폼의 [VB 입문 (A)] 메뉴의하위메뉴에 [ 구구단 2] 라는하위메뉴가보일것입니다. [ 구구단 2] 를클릭하여아래와같이 mnugugu2 의 Click 이벤트함수에적당한코드를작성합니다. 제가비록희미하게표시를했지만아래위코드를보고도정확하게작성하지못했다면...( 본인의머리를쬐끔의심해볼필요가있다고생각합니다.^^) 8. 이제다끝났습니다. 실행해보시고잘못된부분이있으면다시차근차근살펴보면서오류를수정하시면됩니다. 14. 예제로익히는 VB 기초 (6)- 함수 오늘은지난강좌에서만들었던프로그램을 ' 함수 ' 개념을도입해서재구성해보는실습을합니다. 39

40 함수? y=2x*3x??? 갑자기왠함수냐구요? 프로그래밍에서함수라고하는것은매우광범위하게사용되고있습니다. 우리는이미몇가지함수를사용했습니다. 예를들어그래픽뷰어를만들때 LoadPicture 함수를사용하여그림이미지를불러왔었죠 ( 기억이안난다구요? ^^). 간단한시계프로그램을만들때도 Format 이라는함수를사용해서날짜와시간형식을지정했던적이있었습니다. 꼭공부못하는사람이배워놓고도끝까지안배웠었다고발뺌하죠. 그럴까봐그때사용했던코드를직접보여드리겠습니다. [ 시계프로그램에서 ] lblresult.caption = Format(Now, "yyyy년 mm월 dd일 AM/PM hh시 mm분 ss초 ") 시계프로그램에서는전체코드가위의단한줄이었는데... [ 그래픽뷰어프로그램에서 ] Image1.Picture = LoadPicture("c: vb 실습 워드.gif") 기억나시죠? 위의코드에서제가진하게표시한것이바로비주얼베이직에서제공하는내장함수입니다. 내장이무슨뜻인지아시죠? 사용자가편리하게사용하도록기본적으로제공하고있는함수입니다. 우리는그것을마치명령어처럼사용하죠. 그냥사용법만알고있으면됩니다. 구체적으로어떤코드로만들어졌는지는알필요가없죠. 그냥 LoadPicture 를사용해서괄호안에이미지파일의위치만적어주면 VB 에서는그그림을불러들입니다. Format 이라고써놓구선괄호안에표시할내용 ( 위의예에서는현재시간 Now) 과형식 ( 위의예에서는 yyyy mm dd 등으로표시된것 ) 을순서대로적어주면됩니다. 이렇게 VB 에서기본적으로제공하고있는내장함수는매우많습니다. 그것을 100% 다활용하는프로그래머는아마도없을것입니다. 오늘우리가짚고넘어가야할내용은내장함수가아니라 ' 사용자정의함수 '. 쉬운말로내가직접함수를만들어보는것입니다. 커 ~ 억 ~ 내가감히어떻게??? 쉽습니다. 지금까지그랬듯이그리걱정할것은없습니다. 매우간단한예를들어설명드리겠습니다. 지난시간에만든구구단 2 프로그램소스를조금만바꾸면됩니다.( 그럴려면지난시간의실습내용을충분히숙지하고있어야겠죠...) 여기서잠깐! 용어정리부터합시다. 위의예에서 Format, LoadPicture 를함수명또는함수이름이라고합니다. 그리고괄호안의내용을매개변수라고합니다. 무언가를이어주는 ( 매개 ) 변수라는뜻입니다. 다시말해, 함수를사용할때는매개변수없이그냥함수이름만부르면실행되는경우도있고, 함수를부를때어떤값 ( 매개변수 ) 를넘겨주고그값을처리하여되돌려주도록만들수도있다는것입니다. 위에서는두개의함수가모두매개변수를사용했는데예를들어 LoadPicture 함수를부를때매개변수로 c: vb 실습 워드.gif 값을넘겨줬습니다. ( 이해되시죠?) 오늘우리가실습할내용은지난시간에만들었던구구단프로그램을함수를이용해다시만들어보는것입니다. 먼저이론부터다설명하고따라하기식으로실습하기로하겠습니다. 지난시간에실습했던구구단을출력하는코드의핵심은다음과같습니다. For inttemp = 1 To 9 intguguresult = InputResult * inttemp strgugu = CStr(InputResult) & " * " & CStr(intTemp) & " = " & CStr(intGuguResult) & Chr$(10) & Chr$(13) lblguguresult.caption = lblguguresult.caption + strgugu Next 40

41 위코드를별도의함수로만들자는것이오늘실습의핵심입니다. 예를들어구구단을출력하기위해위의코드를매번복사해서쓰지말고, 미리함수로만들어뒀다가구구단을출력할필요가있을때 GuguCal 3 이라고하면 3 단이출력되고 GuguCal inttemp 라고하면 inttemp 라는변수에해당하는구구단을출력하도록만들자는뜻입니다. 또여기서잠깐! 위의예에서왜함수이름 (GuguCal) 뒤에매개변수를쓸때괄호를사용하지않았는가? 이건좀복잡한얘깁니다만, 함수가리턴값이있으면매개변수를괄호안에써넣고, 그렇지않을경우에는그냥괄호없이사용합니다. 이부분은오늘말씀드릴범위를벗어나기때문에이정도로만하고, 다음에함수에대해조금더자세하게다룰때예제를통해비교해보기로하죠. 이상.? 오늘다룰실습의코드를먼저공개하겠습니다. 프로그램겉모양은지난번실습내용과동일합니다. 위의그림과비교해보면서보세요. 먼저 [ 구구단출력 ] 단추를눌렀을때의실행할문장입니다. 1Private Sub cmdguguget_click() 2Dim InputResult As String 3InputResult = InputBox(" 몇단을출력할까요?", " 입력요구창 ", "3") 41

42 4GuguCal CInt(InputResult) 5End Sub 1,5는자동으로생성된내용이죠? 그런데자세히살펴보면이것도결국은함수라는것을알수있습니다. 즉 [ 구구단출력 ] 이라는버튼 (cmdguguget) 을클릭했을때실행하는함수라는것입니다. 우리는결국지금까지계속해서사용자정의함수를만들어온것이나마찬가지입니다. 2는변수를선언하는부분이죠. 지난시간에다했던내용이니까설명은생략하고...(InputBox 에서입력받은값을저장하기위한문자열변수 InputResult 를선언한것입니다.) 3에대해서도지난시간에다다뤘으니설명을생략합니다. 4 부분을왜굵게표시했느냐... 바로이부분이오늘다룰핵심이기때문입니다. GuguCal CInt(InputResult) 여기서 GuguCal 은함수명, Cint(InputResult) 가매개변수입니다. 그런데매개변수가좀복잡하네요. Cint 는변수형을정수형으로바꿔주는역할을하는함수입니다. 따라서 CInt(InputResult) 를풀이하자면 InputBox 에서입력받은값인 InputResult 를정수형으로바꾼값이라고할수있죠. 그러니까 GuguCal 함수는 InputResult 값을매개변수로사용한다는뜻입니다. 그리고 GuguCal 함수는우리가직접만들어야할함수입니다. 이부분이해될때까지계속반복... 그다음우리가실습할코드입니다. 1Private Sub GuguCal(value1 As Integer) 2Dim strgugu As String 2Dim inttemp As Integer 2Dim intguguresult As Integer 3lblGuguResult.Caption = "" 4For inttemp = 1 To 9 4intGuguResult = value1 * inttemp 4strGugu = CStr(value1) & " * " & CStr(intTemp) & " = " & CStr(intGuguResult) & Chr$(10) & Chr$(13) 5lblGuguResult.Caption = lblguguresult.caption + strgugu 6Next 7End Sub 좀복잡하게보이지만지난시간에거의다룬내용이기때문에오늘은그차이점만설명하도록하겠습니다. 위의코드는 4GuguCal CInt(InputResult) 라고 GuguCal 함수를호출했을때실행할 GuguCal 함수를정의한것입니다. 1Private Sub GuguCal(value1 As Integer) 여기서 Private 는제한자라고하는데그냥 Publc, Private, Friend 등세종류가있다는것만짚고넘어가겠습니다. 이함수가현재의모듈 ( 폼 ) 에서만사용할수있다는뜻입니다.(Public 은모든폼에서다사용할수있습니다...) 함수는 Sub 로시작합니다. Function 으로시작하는함수도있는데나중에설명하겠습니다. GuguCal 은함수이름입니다. 괄호안의 value1 As Integer 는매개변수입니다. valule1 이라는매개변수가정수형변수라는뜻입니다. 이부분은매우중요합니다. GuguCal 이라는함수를사용할때매개변수는반드시정수형을사용해야한다는뜻입니다. 그래서아까이함수를호출할때 GuguCal CInt(InputResult) 라고했습니다. 원래 InputResult 변수가문자열변수이니까 42

43 이것을정수형으로바꾼다음에그값을 GuguCal 함수로넘겨주라는뜻이었죠. 이렇게넘겨받은매개변수는그아래 4번코드에서사용됩니다. 2와 3은지난시간과동일하니까설명은생략하고 4를자세히보세요. 그리고지난시간에실습했던코드와비교해보세요. 자세히보면알겠지만하나의변수를제외하고동일합니다. 지난시간에실습했던코드에서 InputResult 라는변수를 value1 으로바꾼것밖에는없습니다. 지난시간에는 InputBox 를통해입력받은값 (InputResult) 을바로사용했지만이번시간에는이변수대신 value1 이라는새로운변수를사용한것밖에는없죠. 이 value1 이라는변수는 GuguCal 함수를실행할때넘겨받은값으로실제로는 InputResult 값과같습니다. 즉 InputBox 를통해입력받은값을 InputResult 라는변수에저장 (3InputResult = InputBox(" 몇단을출력할까요?", " 입력요구창 ", "3")) 했다가이값을다시 GuguCal 이라는함수를부르면서넘겨준것 (4GuguCal CInt(InputResult)) 입니다. 15. 예제로익히는 VB 기초 (7)- 함수 지난시간에이론설명했던거그냥실습해보는것입니다. 사실지난시간에설명한내용만으로도충분하지만혹시나싶어따라하기식으로한번짚고넘어갑니다. 1. 먼저 VB 를실행하여 [ 기존파일 ] 에서 ' 메뉴.vbp' 파일을엽니다. 2. [ 프로젝트 ] 메뉴에서 [ 폼추가 ] 를선택하여빈폼하나를생성합니다. 3. 아래와같은폼을구성합니다. 레이블과커맨드버튼을만들고속성을다음과같이지정합니다. 43

44 4. 프로젝트창에서 frmmenu 폼을더블클릭하여활성화한다음 [ 도구 ] 메뉴에서 [ 메뉴편집기 (M)] 를실행합니다. 아래그 림과같이 ' 구구단 3( 함수 )' 메뉴를추가합니다. 5. frmmenu 폼의 [VB 입문 (A)] 메뉴의하위메뉴에 [ 구구단 2] 라는하위메뉴가보일것입니다. [ 구구단 2] 를클릭하여아 래와같이 mnugugu3 의 Click 이벤트함수에 frmgugu3.show 코드를입력합니다. 44

45 6. 다시 frmgugu3 폼을선택하여지난강좌에서설명한코드를입력합니다. 사실오늘강좌의핵심은바로위의코드인데지난시간에다설명했으니더설명할것은없습니다. 7. 그럼한번실행해봅시다. 45

46 16. 예제로익히는 VB 기초 (8)-Function 함수 지난시간에이어이번에도함수를다뤄봅니다. 지난시간에다뤘던함수가 Sub 함수였다면이번시간에는 Function 함수에대해다뤄봅니다. 그리고 Select Case 문을사용하 여조건처리를하는방법을실습해보도록합니다. 지난시간에잠깐언급을했었던가요? Sub 함수와 Function 함수의차이는리턴값이없느냐있느냐의차이라고. Sub 함수를호출할때는다음과같이호출합니다. Call 함수명 ( 매개변수 ) Call 을사용하면반드시괄호로매개변수를포함합니다. 또는 함수명매개변수그냥함수명만사용하면매개변수는괄호없이사용합니다. 반면 Function 함수를호출할때는다음과같이호출합니다. 리턴값 = 함수명 ( 매개변수 ) 리턴값을사용하지않고그냥함수명매개변수와같은식으로사용할수도있으나 Sub 함수와 Function 함수의차이인 리턴값여부를설명하기위해생략하였습니다. 즉 Function 함수를호출할때는 Sub 함수와는달리함수의실행결과로어떤값을돌려받을수있다는뜻이됩니다. 이차이 는매우큽니다. 어떤기능을수행하고난다음반드시결과값을돌려받을필요가있을때는 Function 함수를써야한다는뜻이 니까요. 반면단순히기능만수행하고마칠경우에는 Sub 함수를사용하는것이낫다는뜻이됩니다. 혹시다음코드가기억나나요? 바로지난시간에실습한구구단을계산하는함수였습니다. 함수를잘살펴보면함수이름 (GuguCal) 앞에 Sub 라고씌어있습니다. 이것이바로 Sub 함수입니다. Private Sub GuguCal(value1 As Integer) Dim strgugu As String Dim inttemp As Integer Dim intguguresult As Integer lblguguresult.caption = "" For inttemp = 1 To 9 intguguresult = value1 * inttemp strgugu = CStr(value1) & " * " & CStr(intTemp) & " = " & CStr(intGuguResult) & Chr$(10) & Chr$(13) lblguguresult.caption = lblguguresult.caption + strgugu Next 46

47 End Sub 위의함수에서 lblguguresult.caption = lblguguresult.caption + strgugu 라는부분을잘살펴보면 lblguguresult 레이블의캡션 값을직접수정하고있습니다. 그리고끝납니다. 이함수를실행하고난뒤어떤값을돌려줄필요가없으니까요. 반면오늘실습할내용은그결과값을돌려주는 Function 함수입니다. 좀복잡하게보일지모르지만이것만이해하면 Sub 함수와 Function 함수의차이를알수있습니다. 천천히따라해볼까요? 1. VB 를실행하여 ' 메뉴.vbp' 프로젝트파일을엽니다. 2. [ 프로젝트 ] 메뉴의 [ 폼추가 ] 를선택하여빈폼을하나만듭니다. 3. 아래와같은폼을만듭니다. 47

48 o 폼의속성을다음과같이변경합니다. o 폼을저장합니다. 파일이름을함수연습이라고저장합시다. 4. [ 보기 ] 메뉴의 [ 코드 ] 를실행한다음다음과같이코드를입력합니다. o Cont plus = 1 는 plus 를상수 1 과선언한다는뜻입니다. 즉앞으로이프로그램에서 1 대신 plus 라고써도 된다는뜻입니다. 마찬가지로 minus 라고쓰면이것은 2 를나타낸다고보면됩니다. o Public Function Calculator(value1 As Integer, value2 As Integer, method As Integer) As Integer 앞의 Public 은크게신경안써도됩니다. 실제로쓰지않아도됩니다. Function 이함수는 Sub 함수가아닌리턴값이있는 Function 함수입니다. Calculator( ) As Integer 함수의이름이기도하고변수이기도합니다. 즉이함수는실행하고난다음 Calculator 라는정수형변 수의값을리턴한다는뜻입니다.(??? 조금어렵죠?) 48

49 (value1 As Integer, ) 매개변수입니다. Select Case method method 값이얼마냐에따라다음행의조건문을수행하라는 Secect Case 문의시작입니다. Case plus Calculator = valule 1 + value2 만약 method 값이 plus 이면, Calculator 의값은매개변수 value1 과 value2 를합한결과라는뜻입니다. End Seclect Seclect Case 문의끝입니다. End Funtion Function 함수는이렇게끝납니다. 5. [ 더하기 ] 커맨드버튼을더블클릭해서아래와같이코드를입력합니다. o txtresult.text = CStr(Calculator(CInt(txtValue1), CInt(txtValue2), plus)) o 마찬가지로 [ 빼기 ],[ 곱하기 ],[ 나누기 ] 도다음과같이입력합니다. 6. 이제메뉴에추가를해야죠. 프로젝트창에서 frmmenu 폼을더블클릭하여활성화한다음 [ 도구 ]-[ 메뉴편집기 ] 에서아 래와같이메뉴를추가합니다. 49

50 7. frmmenu 폼의 [VB 입문 ]-[ 함수연습 ] 을클릭하여다음과같은코드를입력합니다. 8. 자, 이제다끝났습니다. 실행해보세요. 아래와같이실행되나요? 17. 예제로익히는 ActiveX 컨트롤 (1)- 파일시스템 ActiveX 가뭔가? 어디선가많이들어본것같은데... 너무거창하게생각할필요없습니다. 지금까지우리가사용했던각종컨트롤이모두 ActiveX 컨트롤입니다. 레이블, 텍스트박스, 콤보박스, 리스트박스, 타이머, 이미지등이미많은컨트롤을사용했는데그것들을 ActiveX 컨트롤이라고부릅니다. 그러니까이번강좌부터다룰주제인 ' 예제로익히는 ActiveX 컨트롤 ' 도사실지금까지의강좌와별반다를게없습니다. 다만이번시간부터는지금까지사용해왔던또는사용하지않았던컨트롤들의사용법위주로설명을하겠다는것입니다. 그렇게컨트롤에대해어느정도실습을하고난다음나중에기회가되면종합실습프로그램을하나만들어보도록하죠. ActiveX 컨트롤에대한사전적인뜻을알기위해서는먼저컴포넌트, 컨테이너등의개념을알아야합니다. 컴포넌트든컨테이너 50

51 든하나의작은프로그램이라고생각하시면되고요... 더궁금하시면사전을찾아보시고요... 그렇게까지몰라도 VB 입문하는데 지장이없으니그냥넘어가도록하죠. 혹시예전 6 강과 7 강에서실습했던그래픽뷰어프로그램이기억나시나요? 오늘은업그레이드! 그래픽뷰어를만들어보겠습니다. 예전에만든그래픽뷰어를실행하면아래와같이실행됩니다. 이프로그램을왜만들었죠? 바로콤보박스와리스트박스의사용법을알아보기위해만들었었죠. 그런데이프로그램의최대의단점은... 바로실제로자기가원하는파일을선택할수없다는데있습니다. 오늘만들프로그램은바로원하는드라이브의원하는폴더에서원하는그림파일을찾아보여주는, 아래그림과같은업그레이 드된그래픽뷰어를만들어보겠습니다. 먼저지난 6 강과 7 강에서배웠던리스트박스와콤보박스에대해알고있어야합니다. 그런의미에서다시 6 강과 7 강을한번 미리훑어보고실습에임하는것이나을것같네요. 1. 실습에앞서아래그림파일을다운로드하여압축을해제하여 c: vb 실습폴더에복사해둡니다. 실습그림파일다운로드 51

52 2. 지금까지실습했던 " 메뉴.vbp" 프로젝트를실행합니다. 3. 빈폼을하나추가하고 DriveListBox, DirListBox, ComboBox, FileListBox, Image, Label 등을이용해아래와같이디자 인합니다. o 오늘새롭게선보이는 DriveListBox 컨트롤과 DirListBox, FileListBox 컨트롤은아래그림을찹고하여사용하시 기바랍니다. o 각각의컨트롤의속성을아래와같이바꿔줍니다. 52

53 4. [ 보기 ]-[ 코드 ] 를실행해다음과같이코드를입력한다. o 컨트롤이름과이벤트이름이뭔지는아시죠? 혹시나모르시는분아래그림을참조하세요. 먼저 ( 일반 ) 의 ( 선언 ) 을선택해서다음과같이입력하세요. Option Explicit 는안써도되지만, 앞으로모든변수를선언해서사용하겠다는뜻입니다. 예전에설명을드렸을겁니다. 실제프로그래밍을할때는써주는것이좋다구요. 두번째줄은 ' 디렉토리 ' 라는정수형변수를선언했습니다. 변수이름을한글로쓰는것은실제프로그래밍에서는거의없는일입니다만, 우리는지금 VB 에입문하고있는과정이므로변수이름도이해하기쉽도록한글로써봤습니다. 실행하는데오류는전혀없습니다. o Form 컨트로의 Load 이벤트를선택해다음과같이입력합니다. 녹색주석은입력안해도됩니다. 이것이무슨뜻인지모르시겠다구요? 그럼저 ~ 어 ~ 기 6 강과 7 강을다시한번보고오세요. o Dirve1 컨트롤의 Change 이벤트를선택해다음과같이입력합니다. 53

54 드라이브를변경할경우경로에반영한다는뜻입니다. 아래의디렉토리, 파일컨트롤과함께사용해야하므로 이세가지컨트롤에대한코드를주의깊게보시기바랍니다. o Dir1 컨트롤의 Change 이벤트를선택해다음과같이입력합니다. 디렉토리를바꿀경우파일경로에반영한다는뜻입니다. o File1 컨트롤의 Click 이벤트를선택해다음과같이입력합니다. 위에서최종선택된파일경로를 ' 디렉토리 ' 라는변수에저장합니다. 만약디렉토리의끝자리가 ' ' 로끝나는경우, 즉 C: 또는 D: 와같을경우왼쪽에서두번째까지만읽으라는코드도포함되어있습니다. 그래서완성된최종경로의그림파일이미지를출력하고디렉토리를출력하라는코드입니다. o 마지막으로 Combo1 컨트롤의 Click 이벤트를선택하여다음코드를입력합니다. 코드입력이거의다끝났습니다. 전혀모르겠다구요? 그래도일단그냥따라하세요. 한꺼번에이해하지못해도다완성해놓은다음, 차근차근그뜻을살펴봐야합니다. 그래야늡니다. 5. 이제실습메뉴에포함을시켜야죠. frmmenu 폼을더블클릭하여연다음, [ 도구 ]-[ 메뉴편집기 ] 를실행해아래와같이 ' 그래픽뷰어 2' 메뉴를가운데추가합니다. 54

55 6. frmmenu 폼의 [VB 입문 ]-[ 그래픽뷰어 2] 를클릭하여다음과같이입력합니다. 55

56 7. 정말다끝났습니다. 이제실행해보세요. 아래와같이정상적으로작동되나요? 18. 예제로익히는 ActiveX 컨트롤 (2)- 스크롤바와 Shape 오늘은비교적간단합니다. 스크롤바를이용해서 RGB 값을변화시키는실습입니다. RGB 가뭐냐고요? RGB 는 Red, Green, Blue 의약자입니다. 우리가지금화면으로보고있는이모니터에나타나는모든색상은이세가지색의 조합으로만들수있습니다. 색이라기보다는빛이죠. 빨간빛과녹색빛그리고파란빛으로화면위의모든색을만들수있습 니다. VB 에서 RGB 값을바꾸는함수는말그대로 RGB() 함수입니다. RGB(255,255,255) 는흰색입니다. 반대로 RGB(0,0,0) 은검정색입니다. 여기서첫번째숫자는 R, 두번째숫자는 G, 세번째숫자는 B 를가리킵니다. 따라서모두 0 이면아무런색도없는검정상태가되고, 모두최대값인 255 이면흰색이됩니다. ( 어라 ~ 모든색을다섞었는데왜흰색이지? 바로 RGB 는빛의삼원색이기때문입니다. 우리가학교에서배운색의삼원색인빨강, 파랑, 노랑을다섞으면검정이되지만빛의삼원색인 RGB 를섞으면흰색이됩니다. 상식으로라도알아두세요...) 자, 그럼지금부터 RGB 값을스크롤바를이용해마음대로변화시키는연습을해보죠. 미리오늘실습결과프로그램을볼까요? 바로이모습입니다. 56

57 1. 먼저 VB ' 표준 EXE' 상태로실행합니다. 오늘부터는개별적으로실습하기로하죠. 실습파일을통째로묶어서계속할려니설명하기가조금번거롭네요. 지금까지 꾸준히실습해오셨던분들은오늘실습내용을기존메뉴에추가해도됩니다. 2. 아래와같이컨트롤을배열하고조절합니다. 먼저아래방법부터읽어보시고만드세요. o 왼쪽네모모양은 Shape 컨트롤을이용해그립니다. o 오른쪽가로스크롤바는반드시배열을이용하여그립니다. 배열을이용하여그리는방법은간단합니다. 먼저가로스크롤바 (HScrollBar) 컨트롤로맨위에하나를만듭니다. 폼위에놓인스크롤바컨트롤을마우스오른쪽버튼을이용해복사해놓습니다. 57

58 폼위에마우스오른쪽단추를이용하거나 Ctrl+V 를사용해 ' 붙여넣기 ' 를하면다음과같은메시지가 나타납니다. [ 예 ] 단추를누르면컨트롤배열이생성됩니다. ( 같은이름의컨트롤이하나더만들어진다는뜻입니다.) 같은방법으로하나더만듭니다. o Red, Green, Blue 레이블도컨트롤배열을이용해만듭니다. 처음레이블을하나만들고복사해서두개를붙이면됩니다. o 각각의컨트롤속성을다음과같이변경합니다. 3. 폼위의가로스크롤바 (HScrollBar) 컨트롤을더블클릭하여코드창이열리면다음과같이입력합니다. o Private Sub HScroll1_Change(Index As Integer) Index 값은스크롤바의순서를나타냅니다. 스크롤바컨트롤을세개를만들었기때문에처음만든스크롤바는 HScroll1(0) 이됩니다. 두번째스크롤바는 HScroll1(1), 세번재는 HScroll1(2) 가됩니다. 배열의숫자는 0 부터시작합니다. o Shape1.FillColor = RGB(HScroll1(0).Value, HScroll1(1).Value, HScroll1(2).Value) Shape1 의색을세개의스크롤바의값을각각 R, G, B 값으로하는색으로바꾼다는뜻입니다. 코드를잘살펴보세요. 4. 모든것이끝났습니다. 이제실행해보세요. 그리고스크롤바를이용해 Red, Green, Blue 값들을바꿔보세요. 58

59 19. 예제로익히는 ActiveX 컨트롤 (3)- 추가실습 지난시간에스크롤바컨트롤을이용해 Shape 의 RGB 색상을바꾸는실습을했습니다. 그런데뭔가허전한프로그램같았죠? Red, Green, Blue 의배합에따라색상이바뀌는것까지는좋았는데실제그값들이얼마인지알수가없었습니다. 이번시간에는지난시간에만든프로그램을약간수정해서 1. 스크롤바가움직임에따라실제 RGB 값이몇인지를숫자로보여주는기능 2. 스크롤바뿐만아니라실제 RGB 값을입력해서색상을바꾸는기능을추가해보겠습니다. 대신추가실습예제인만큼설명은생략하겠습니다. 첨부한소스파일을다운로드하여소스를분석해보시기바랍니다. 59

60 소스내용을미리보여드릴까요? 20. 예제로익히는 ActiveX 컨트롤 (4)-Common Dialog( 상 ) 오늘은우리가여러소프트웨어를사용하면서꽤나익숙한것을하나실습해보겠습니다. 프로그램을사용하면서파일열기, 저장하기, 글꼴바꾸기, 색상바꾸기, 인쇄하기등의기능을사용하게되는데, 이러한인터페이스를구현하려면과거에는무척힘들었습니다. 그러나비주얼툴인 VB 를사용하면비교적간단하게이러한인터페이스를구현할수있습니다. 이럴때바로 Common Dialog 라는컨트롤을사용하게됩니다. 그런데이컨트롤은 VB 를실행할때기본적으로표시되지않기때문에별도의컨트롤추가작업이필요합니다. 따라서이번시간에는, Common Dialog 컨트롤추가방법에대해알아보고 나아가오류메시지에대한가장간단한처리방법에대해알아봅니다. 60

61 오늘실습하게될오류메시지처리방법이란오류가발생할때그냥넘어가도록하는것을말합니다. 지금까지우리는알게모르게 VB 를실행하다가런타임오류가발생하는것을경험했습니다. 그러나모든오류에대한처리를하기에는아직우리들의내공이부족하므로그냥오류가발생하면자동으로무시하고넘어가는방법만오늘익히도록하겠습니다. 먼저오늘실습하게될프로그램이실행된모습입니다.( 아니구나, 이번강좌에실습을완전히마치기가힘들겠네요. 출근시간이 가까워지고있으니아무래도강좌가반정도만가능할것같네요...) 1. 늘그랬듯이먼저 VB 를실행합니다. ( 표준 EXE 상태로여는것도기본...) 2. Common Dialog 컨트롤을컨트롤도구상자에추가해야합니다. o 컨트롤도구상자의빈곳을마우스오른쪽버튼으로클릭합니다. o 팝업메뉴중에서 ' 구성요소 (O)' 를선택합니다. 61

62 o 아래와같이 Microsoft Common Dialog Control 6.0 의왼쪽네모상자를클릭하여선택표시를하고 [ 확인 ] 단 추를누릅니다. o 빈폼에아래와같이 Common Dialog Control 을추가합니다. 컨트롤의위치는어느곳이라도괜찮습니다. Common Dialog 컨트롤은실제프로그램을실행할때는보이지않습니다. 다만그 ' 기능 ' 을사용할수있을뿐입니다. 다시말씀드립니다. Common Dialog 컨트롤은예전의텍스트박스, 레이블, 커맨드버튼처럼눈에보이면서기능을하는것이아니라, 보이지는않지만어떤기능을사용할수있는컨트롤입니다. 62

63 o 다음과같이컨트롤을배열합니다. 사용된컨트롤은위쪽부터 TextBox, Label, CommandButton 컨트롤입니다. 다실습해봤던것들입니다. o 아래와같이컨트롤의속성을바꿔줍니다. 21. 예제로익히는 ActiveX 컨트롤 (4)-Common Dialog( 하 ) 지난시간에이어서계속합니다. 63

64 1. [ 글꼴 ] 버튼을더블클릭해서 Command1 의 Click 이벤트에다음코드를입력합니다. 코드를하나하나살펴봅니다. 1 On Error GoTo font_error 2 CommonDialog1.Flags = cdlcfboth 3 CommonDialog1.ShowFont 4 Label1.FontName = CommonDialog1.FontName 5 Label1.FontSize = CommonDialog1.FontSize 6 Label1.FontBold = CommonDialog1.FontBold 7 Label1.FontItalic = CommonDialog1.FontItalic 8 Label1.Caption = Text1.Text 9 font_error: o 먼저 1번을읽어보면직감적으로무슨뜻인지감이잡힐겁니다. 만약에러가발생하면 font_error 로이동하라는말인데...font_error 가어딨죠? 제일밑에 9번라인입니다. 가장간단한오류처리코드입니다. 중요한것은 9번라인에서반드시콜론 (:) 을써야한다는것, 이정도만아시면되겠네요. o 2번의 Flags 속성은 [ 글꼴 ] 버튼을눌렀을경우나타나는글꼴변경대화상자의옵션을설정하는것입니다. 흔히위와같이 cdlcfboth 값을쓰면무리가없습니다. cdlcfboth 값은대화상자에서화면용글꼴과인쇄용글꼴을모두표시하라는뜻입니다. 다른속성값들에대해서는알필요도없을것입니다. 으례히 Flags 의속성값은 cdlcfboth 뿐이다라고생각하면됩니다. o 3 의 ShowFont 메소드는글꼴을바꾸는대화상자가나타나도록합니다. 아래실습에서계속하겠지만만약색 상을바꾸려면 ShowColor 메소드를사용합니다. o 4~7 까지는글꼴변경대화상자에서 ' 글꼴 ', ' 크기 ', ' 글꼴유형 ' 등의값을변경했을경우적용하라는뜻입니다. 64

65 o 8 은텍스트박스에서입력한문장을레이블에출력하라는것인데, 위의 4~7 의변경값을그대로적용해서보 여주는것입니다. 무슨뜻인지잘이해가안갈경우에는직접실행해보면쉽게이해할수있습니다. 위의코드만입력하더라도일단실행하는데는무리가없으니 [F5] 키를눌러실행해보세요. 그리고 [ 글꼴 ] 단추를눌 러어떤식으로변하는지확인해보세요. 2. 폼의 [ 배경색 ] 버튼을더블클릭해서 Command2 의 Click 이벤트에다음과같이코드를입력합니다. [ 글자색 ] 버튼을더블클릭해서 Command3 의 Click 이벤트에도아래와같이코드를입력합니다. 마지막으로텍스트박스를더블클릭해서 Text1 의 Change 이벤트에아래와같은코드를입력합니다. o Command2 와 Command3 에서각각 Flags 속성값을변경한다음 ShowColor 메소드를사용했습니다. ShowColor 를사용하기전에 Flags 값에따라 ShowColor 를실행해나타나는대화상자의모양이달라집니다. 만약 Flags 의속성값을위와같이 cdccrgbinit 라고지정한후 ShowColor 을사용하면아래와같은대화상자 가나타납니다. 65

66 만약 Flags 의속성값을위와같이 cdccfullopen 이라고지정한후 ShowColor 을사용하면아래와같은대화 상자가나타납니다. o Label1.BackColor 은배경색의속성이고 Label1.ForeColor 은글자색의속성을말합니다. o Text1 의 Change 이벤트에서는텍스트박스 (Text1) 의값이바뀌면레이블 (Label1) 에표시하라는코드를입력했 습니다. 3. 이제모든코드의입력이끝났으니직접실행해보세요 그리고위에서입력한코드를하나하나다시살펴보면서그의미를되새기기바랍니다. 지난시간과이번시간에걸쳐실습한내용에서크게어려운것은없습니다. 66

67 다만 CommonDialog 컨트롤은사용자인터페이지화면을만드는데상당히편리하다는것을실감할수있습니다. 만약 CommonDialog 컨트롤이없다면글자색, 배경색, 글꼴모양을바꾸는프로그램을코딩하려면얼마나복잡하고어려웠겠습니까... 이왕 CommonDialog 컨트롤을실습했으니다음시간에는 CommonDialog 컨트롤의다른메소드들 ( 파일열기, 저장하기, 인쇄하기등 ) 에대해서간단하게실습하는기회를가지도록하겠습니다. 22. 예제로익히는 ActiveX 컨트롤 (5)-MSFlexGrid 예제로익히는액티브 X 컨트롤, 오늘은그다섯번째로 MSFlexGrid 를실습해보겠습니다. 영어사전에서 Grid 를찾아보면 ' 격자 ' 라는뜻이있습니다. 바둑판의눈금과같은것을말합니다. Flex 는 flexible 의준말이니융통성이있다는뜻입니다. 뜻풀이를통해짐작을하셨겠지만 MSFlexGird 는마치엑셀의셀모양과같은도표로표시하는기능을합니다. 다음은오늘실습할 MSFlexGird 를사용한예제를실행한화면입니다. 실습을통해 MSFlexGrid 컨트롤과더불어 For ~ Next 문, SetFocus 메소드등도함께다루기로하겠습니다. 1. VB 를실행합니다.( 늘그렇듯이 ' 표준 EXE' 로실행합니다.) 2. 오늘실습할 MSFlexGird 컨트롤은기본컨트롤도구모음에없으니아래와같이새롭게추가합니다. o 컨트롤도구모음의빈곳을마우스오른쪽으로클릭하여팝업메뉴를표시합니다. o 팝업메뉴에서 [ 구성요소 (O)] 를선택합니다. 67

68 o [ 구성요소 ] 대화상자에서 Microsoft FlexGrid Contrl 6.0 을찾아체크표시를하고 [ 확인 ] 을클릭하면컨트롤 도구모음에 MSFlexGrid 컨트롤이나타납니다. 3. 다음과같이폼을구성합니다. o o 먼저 MSFlexGrid, Label, TextBox, CommandButton 컨트롤을이용하여폼위에컨트롤을배치합니다. o 다음과같이각개체의속성을변경합니다. 68

69 FixedRows 와 FixedCols 속성는고정된열과행의수를지정하는것입니다. 엑셀에서행머리글과열머리글에해당하는것입니다. 즉내용을입력할수없는회색으로표시된셀을말하죠. 그리고 Rows 와 Cols 의숫자를각각 4 와 5 로하여 4 행 5 열의그리드를만든것입니다. 4. 메뉴에서 [ 보기 ] 5. [ 코드 ] 를실행한후다음과같이코드를작성합니다. o 먼저프로그램에사용될변수를선언합니다. 가장윗줄에아래와같이그대로적으면됩니다. Dim temprow, tempcol, tempcell, Sum, Average As Integer o Form 개체의 Load 이벤트를선택하여위 1 과같이코드를입력합니다. Form 개체의 Load 이벤트를선택하려면아래와같이하세요. 또는폼의빈곳을더블클릭해도됩니다. Form_Load() 부분은프로그램을실행했을때가장먼저실행되는부분입니다. 따라서아직은비어있는 MSFlexGrid 에아래와같은내용을집어넣기위한코드입니다. 코드와아래그림을잘보면그뜻을이해하기가어렵지않을것입니다. 69

70 단여기서주의해야할것은 TextMatrix(Row,Col) 와같이행에해당되는숫자를먼저쓰고, 다음에열에해당하 는숫자를씁니다. 그런데행과열의첫숫자는 0 으로시작합니다. 따라서 grdflexgrid(0,0) 이가장왼쪽상단모서리의셀을나타냅니다. o grdfirst 개체의 Click 이벤트를선택하여위 2와같이코드를입력합니다. 첫줄의 txtjumsu.setfocus 의뜻은, 그리드의어떤곳을클릭했을때즉그리드에클릭이벤트가발생했을때 (gridfirst_click()), txtjumsu 라는텍스트박스에커서를위치하고활성화하라는뜻입니다. 따라서셀의어떤곳을클릭하면바로텍스트박스에서입력준비가되는것입니다. o txtjumsu 개체의 Change 이벤트를선택하여위 3 과같이코드를입력합니다. 텍스트박스에내용이바뀌면바로 MSFlexGrid 의해당셀에그내용을반영하라는뜻입니다. o cmdaverage 개체의 Click 이벤트를선택하여위 4와같이코드를입력합니다. 입력된내용을바탕으로평균을계산하는로직입니다. 두개의 For 문으로되어있습니다. 일명중첩된 For~Next 문이라고합니다. 행의숫자를 1 에서 3 까지바뀌는동안, 열의숫자도 1~3 까지하나씩증가하면서각셀의값을더하기위한로직입니다. 즉처음행의숫자가 1 일때, 열의숫자가 1 부터 3 까지바뀌면서값을하나하나누적해서더합니다. 그런다음합계를 3 으로나누어평균을구한값을 grdfirst.textmatrix(1,4) 의값에대입하는것입니다.(1,4 라는표현은실제로는 2 행 5 열이라는뜻입니다.) 다시행의숫자가 2 일때, 마찬가지로열의숫자가 1 부터 3 까지바뀌면서값을누적해서더하고, 평균을구하여 grdfirst.textmatrix(2,4) 에대입합니다. 다시같은방법으로 grdfirst.textmatrix(3,4) 에값을대입하고 For~Next 문을완전히마칩니다. 이부분이프로그램의핵심로직이됩니다. 프로그래밍왕초보분이라면이부분이제일어려울수있습니다. 보 고또봐서그뜻을꼭이해하시기바랍니다. 6. [F5] 를눌러프로그램을실행해보세요. 정상적으로실행이되면적당한이름을저장하세요. 필요하다면실행파일도만드시구요.( 실행파일만드는방법아시 죠? 아주옛날에실습했습니다. 아마도시계만들때했을걸요.) 23. 예제로익히는파일시스템 (1) - 순차접근파일 이번강좌에서는실제로파일의입출력에관한실습을합니다. 비주얼베이직에서다루고있는파일시스템은크게순차접근방식, 임의접근방식, 이진접근방식등으로나눌수있습니다. 흔히순차액세스 (Sequential Access), 랜덤액세스 (Random Access), 이진액세스 (Binary Access) 방식이라말합니다. 70

71 순차접근파일은대개텍스트파일의입출력에많이사용되고, 그외에는랜덤액세스파일이나이진액세스파일이주로사용됩 니다. 구체적인실습을통해그차이를살펴보기로하죠. 총 2 회에걸쳐실습을하겠는데, 이번시간에는순차접근방식으로파일의입출력기능을구현해보기로하고, 다음시간에는 랜덤액세스파일방식의입출력기능을구현해보기로합니다. 일단다음과같이따라하면서프로그램을먼저만들어보겠습니다.( 프로그램을일단완성해서구체적으로실행하면서실제그기 능을눈으로확인한다음자세한설명을하는것이보다쉽게이해하실것이라생각합니다.) 1. VB 를실행합니다. 2. 아래와같이화면을구성합니다. o TextBox 와 CommandButton 컨트롤만사용하면됩니다. o 다음과같이속성을변경합니다. o TextBox 의속성중 MultiLine 속성이 True 로되어있어야여러줄의텍스트를작성할수있습니다. 스크롤바 는세로스크롤바만보이도록설정했습니다. 71

72 3. 아래와같이코드를입력합니다. o cmdoutput, cmdinput, cmdappend, cmdclear 개체 ( 컨트롤 ) 의 Click 이벤트에대한각각의코드입니다. o 만약위의코드를처음부터끝까지그대로입력하지않고, 개체목록과이벤트목록에서선택하여코드를입력하면실제로는위의그림과같은순서대로표시되지않습니다. 설명을편하게하기위해순서를조금바꾸었습니다. 만약 cmdoutput_click() 의코드를입력한다음, cmdinput 개체의 Click 이벤트를선택하면 cmdoutput_click() 코드의위쪽에위치하게됩니다. o 코드에대한자세한설명은일단프로그램을실행한다음하겠습니다. 4. 프로그램을실행합니다. o 먼저임의의문장을입력하고 [ 저장하기 ] 를클릭합니다. 아마도 VB 가설치된폴더인 C: Program Files Microsoft Visual Studio VB98 폴더에 " 순차실습.txt" 파일이생성되었을것입니다. 위의코드에서 " 순차파일.txt" 부분을 "c: data 순차파일.txt" 와같이바꾸면파일이저장되는위치가바뀌겠죠... o [ 화면지우기 ] 를클릭해서텍스트박스의내용을지웁니다. o [ 불러오기 ] 를클릭하면조금전저장했던내용이다시보입니다. 72

73 o [ 화면지우기 ] 를클릭해서텍스트박스의내용을지웁니다. o 텍스트박스에임의로내용을다시입력합니다. o 이번에는 [ 덧붙이기 ] 를클릭합니다. o [ 불러오기 ] 를클릭하면처음텍스트파일에저장했던내용에방금추가했던문장이더해져서보입니다. 이제뭔가감이잡히죠? 몇가지설명을드리겠습니다. 아래표를볼까요. Open 과 Close 는어떤파일형식에든다사용하는것이고입력과출력과관련된명령어가조금다르죠? 오늘과다음실습에사용되는명령어만알아도충분할것입니다. 오늘은 Input# 와 Print# 를사용했습니다. 다음시간에는 Get, Put, Type End Type 을사용할것입니다. Open 파일명 For [ Input Output Append ] As # 번호 o 위에서 [ ] 로둘러쌓인부분은하나만선택해야합니다. 예를들어, Open " 실습.txt" For Input As #1 과같이말입니다. Input 은입력용파일, Ouput 은출력용, Append 는추가용으로파일을사용하겠다는것입니다. 이때혼동하기쉬운것이입력, 출력의개념입니다. 여기서말하는입력은 ' 메모리 ' 에입력한다는뜻으로우리가흔히생각하는디스크에무언가를입력해서저장한다는뜻이아닙니다. 따라서우리가흔히생각하는입력, 즉디스크에무언가를쓰는것이여기서는출력 (Output) 의의미로사용됩니다. 즉메모리에있는내용을디스크로출력한다는뜻입니다. 따라서 VB 프로그래밍에서말하는입력은데이터를읽어온다는뜻으로, 출력은현재의데이터를쓴다는뜻으로이해를해야합니다. o # 번호는임의대로부여하면됩니다. 일종의닉네임이죠. 예를들어 Open " 실습.txt" For Input As #1 으로선언했다면지금부터 " 실습.txt" 파일을지칭할때는 #1 으로대신하겠다는뜻입니다. 반드시 #1 일필요는없습니다. #2, #3 라고부여해도됩니다. Close # 번호 Open 으로파일을열어놓은경우는반드시 Close 문을사용해서닫아야합니다. Close 에서사용한 # 번호는 Open As # 번호에서사용한파일번호와동일한것을사용해야합니다. Print #1, txtdata.text #1 파일, 즉 " 순차실습.txt" 파일에텍스트박스의내용 (txtdata.text) 을쓰라는뜻입니다. 73

74 Do Until EOF(1) Loop Do Until ~ Loop 문은반복문입니다. Until 뒤의조건이참일때계속해서반복하라는뜻입니다. EOF 는 End Of File, 즉파일의끝을의미합니다. EOF(1) 의 1 은참을의미합니다. 0 이면거짓이고... 따라서 EOF(1) 은파일의끝이참인것, 즉 " 파일의끝까지 " 라는뜻입니다. 파일을열어처음부터파일의끝까지 Do Until 과 Loop 사이의명령을반복하라는것이죠. Input #1, InputData #1 파일 (" 순차실습.txt") 의한줄을읽어서 InptuData 라는변수에저장하라는뜻입니다. 아까말했죠? Input 은메모리에입력한다는뜻이라고. 즉파일을열어한줄을읽은다음메모리의 InputData 라는변수에저장하라는뜻입니다. textfile = textfile + InputData + Chr(13) + Chr(10) 읽어들인문장을계속해서더하라 ( 연결하라 ) 는뜻입니다. 여기서 Chr(13) + Chr(10) 은엔터키역할을합니다. 즉다음줄로이동해서다음줄처음으로위치하도록합니다. 처음에파일에서한줄의문장을읽어들이고, 다시한줄을읽어들여서처음읽어들인문장과연결을하되마지막에 Enter 를친효과를추가하라는뜻입니다. 이부분, 이해될때까지다시보고또보세요... 이런식의코드를많이접하게될것입니다. 예를들어 1 부터 10 까지의합을구하는로직이라면 Sum = 0 For i = 1 to 10 Sum = Sum + i Next i 와같이씁니다. 여기서 Sum = Sum + i 가바로이전의값들을누적하는기능을합니다. 위에서실습한 textfile = textfile + InputData 와어딘가많이닮았죠? 꼭이해를하셔야합니다. 위의설명이이해가되었으면나머지코드는그리어렵지않을것입니다. 꼭이해를하고넘어가세요 예제로익히는 ActiveX 컨트롤 (6)-ProgressBar 원래이번강좌는 " 예제로익히는파일시스템 (2) - 랜덤액세스파일 " 을할차례입니다. 그러나파일시스템을하기전에지난강좌에서빠뜨린부분이기도하고머리도식힐겸액티브 X 컨트롤을하나더다뤄볼까 합니다. 오늘다룰예제는 ActiveX 컨트롤중유용하게사용할수있는진행표시줄 (ProgressBar) 컨트롤에대한것입니다. 진행표시줄은여러프로그램에서흔히접할수있는개체입니다. 아래그림을보시죠. 74

75 어떤기능을하는지는이해되시죠? 바로위의그림과같은실습예제를만들어봅니다. 단, 실제복사작업이이루어지지는않고다만화면으로만복사시작, 완료등을표시하는것입니다. 1. VB 를실행합니다.( 물론 ' 표준 EXE' 프로젝트로실행합니다.) 2. Microsoft Windows Common Controls 6.0 을추가합니다. o 새로운컨트롤추가하는방법은이전시간에서도해봤습니다. 컨트롤도구상자의빈곳에마우스오른쪽단추로 클릭하여 [ 구성요소 ] 를선택하는방법이었죠..( 앞의 23 번강좌를참조하세요.) o 이번시간에는다른방법으로추가해볼까요. 아래와같이 [ 프로젝트 ] 메뉴에서 [ 구성요소 ] 를클릭합니다. 그 리고 [ 구성요소 ] 대화상자에서 Microsoft Windows Common Controls 6.0 을선택합니다. o 컨트롤도구상자에새로운컨트롤이여러개추가될것입니다. 아래그림중 3 번컨트롤이바로오늘실습할 ProgressBar 컨트롤입니다. 75

76 3. 다음과같이폼디자인을합니다. 사용된개체와속성은다음과같습니다. 4. 다음과같이코드를작성합니다. o 1번코드는 cmdcopystart 개체 (" 복사시작 " 버튼 ) 의 Click 이벤트에대한실행코드 ( 프로시저 ) 입니다. For ~ Next 문을사용하여 For ~ Next 사이의코드를 temp 값이 0 에서 100 까지변하는동안계속실행합니다. DoEvents 는이프로그램이실행되는동안다른컴퓨터 (CPU) 가다른일도하라는뜻입니다. 무슨말이냐믄요, 지금과같이간단한프로그램이어서 0 부터 100 까지변하는동안채 1 초도걸리지않으면문제가없지만, 만약실제어떤파일의복사작업을한다고생각할경우복사하는파일의크기에따라상당히오랜시간이걸릴수도있습니다. 그런데이프로그램이복사작업을하는동안컴퓨터가틈틈히다른일도해야한다는뜻입니다. 만약 76

77 위에서 DoEvents 명령어를쓰지않았다면컴퓨터는아무리큰파일이라도그것을복사하는동안다른일들을못하게됩니다. 마치컴퓨터가멈춰버린듯한상황이되는거죠... 아시겠죠? 메시지박스 (MsgBox) 는뭔지아시죠? MsgBox 뒤에처음오는문자는메시지박스에서표시할메시지이고, 두번째는메시지박스의유형입니다. 여기서는 vbokonly 즉확인단추만있는유형을선택했습니다. 그리고마지막의옵션은메시지박스의제목입니다. 그래서실행이되면이런모양이나오죠. o 2 번코드는 cmdexit 개체 (" 종료 " 버튼 ) 의 Click 이벤트에대한프로시저입니다. 프로그램을끝내라는뜻입니다. 다끝났습니다. 실행하여 [ 복사시작 ] 단추를누르면순식간에그냥 " 복사완료 " 라는메시지가나타납니다. 실제로복사하는것이아니라그렇게보이도록만들어놓은것이니순식간에끝날수밖에요. 응용프로그램을만들때는위코드중 1 번부분을실제작업이수행되도록고쳐야겠죠 예제로익히는파일시스템 (2) - 랜덤접근파일 ( 上 ) 계획대로이번시간에는전전강좌에이어파일입출력실습을해보겠습니다. 이번시간에는랜덤액세스 ( 임의접근 ) 파일에대한실습을하는데제가알기로는실무활용율이다소떨어집니다. 대개텍스트파일의입출력을위해서는이미실습한순차접근방식으로파일을처리하고, 오늘처럼레코드관리를위해서는 DB 를이용하기때문입니다. 그러나일단파일입출력과관련된개념을익히기위해랜덤파일처리에대해간단한실습을해보겠습니다. 간단한실습이지만설명할것이조금있어서 2 회로나누어설명을하도록하겠습니다. 먼저이번시간과다음시간에걸쳐실습하게될프로그램의실행모습입니다. 어떤실습을할지감이잡히시죠? 77

78 자, 아래와같이일단한번만들어봅시다. 설명은나중에하기로하구요. 1. VB 를 ' 표준 EXE' 프로젝트로실행합니다. 2. 아래와같이폼을만듭니다. o 레이블, 텍스트박스, 커맨드버튼컨트롤을위와같이배치합니다. o 속성을다음과같이변경합니다. 78

79 3. 코드창을열어아래와같이코드를작성합니다. [ 조회 ] 버튼에대한코드는작성하지않았습니다. 조회버튼을눌렀을때의기능에대해서는다음시간에다루기로하겠 습니다. 4. 코드를다작성했으면실행을해야죠...( 잘되죠?) 혹시잘안되면 4 번중간쯤에 Put #ifilename,, tperson 이라는부분에서쉼표를두번쓰지않았을확률이높은데... 코드를잘살펴보세요. 그래도안되면아래해설을보시면서하나하나이해하면서찾아보세요. 설명할게좀많네요. 차근차근설명을하겠습니다. 먼저위코드중에서 1 번부분입니다. Private Type usrperson strname As String * 10 strregion As String * 10 strcontact As String * 13 79

80 End Type 새로운데이터형을선언하는것입니다. 잘보시면알겠지만문자열변수세개를묶어서하나의데이터형을만든것입니다. strname, strregion, strcontact 문자열변수의길이가각각 10, 10, 13 입니다. 여기에각각이름, 지역, 연락처를저장하기위한데이터형을만든것입니다. 즉이름, 지역, 연락처를하나의세트로만들어이것을특별한데이터타입으로선언한것입니다. 이것이레코드가되는것입니다. 레코드는데이터베이스용어인데, " 손병목서울 " 라는전체를하나의레코드라고합니다. 그리고이름, 지역, 연락처를각각필드이름이라고합니다. 예를들어전화번호부가있다면, 이름, 주소, 전화번호등의항목으로구성되는데이것을필드이름이라고하고 " 김갑돌서울시종로구 " 와같이김갑돌에대한주소와전화번호를통틀어하나의레코드라고합니다. 전화번호부는수천 ~ 수만개의레코드로구성되어있는셈이죠. Dim ifilenum As Integer Dim tperson As usrperson ifilenum 변수에는파일번호가들어갑니다. 이미순차파일처리할때실습했듯이파일을열고닫을때는반드시파일번호를써줘야했습니다. #1, #2 와같은식으로사용했는데, 이번실습에서는파일번호를변수로처리하겠습니다. 만약어떤프로그램을만들때여러개의파일을다루어야한다면일일이 #1, #2... 와같이코딩하기가힘드니까파일번호를저장하는변수를만든다음현재사용하지않는파일번호를자동으로대입하는식으로처리하고있습니다. 아래에서다시설명합니다. Dim tperson As usrperson : 위에서새로운 usrperson 이라는새로운데이터형을만들었습니다. tperson 이라는변수는바로 usrperson 과같은데이터를저장할수있는변수가되는것입니다. 2 번부분을살펴보죠. Private Sub Form_Load() ifilenum = FreeFile ' 사용가능한파일번호자동부여 Open App.Path + " cardfile.txt" For Random As ifilenum Len = Len(tPerson) ' App.Path 는현재 VB 파일이저장된위치 End Sub 랜덤파일을열때는다음과같이엽니다 Open 파일이름 For Random As 파일번호레코드길이 FreeFile 명령은현재사용하지않는파일번호를돌려줍니다. App.Path는현재경로를말합니다. 즉지금폼을만들어저장하여작업하고있는디렉토리를나타냅니다. For Random은파일을랜덤형식으로열겠다는뜻이고, Len() 은괄호속의데이터의길이를돌려줍니다. 너무복잡한가요? 결국아래와같은뜻입니다. 80

81 Open "c: vb 실습 cardfile.txt" For Random As #1 Len=33 3 번은폼을닫을때열어둔파일을닫으라는뜻입니다. 설마직접 Private Sub Form_Unload(Cancel As Integer) 를직접입력하신건아니죠? Form 개체를선택하고 Unload 이벤트를선택하면됩니다. 마지막으로 4번부분을살펴봅니다. 그냥보시면거의이해가되죠? tperson.strname과같은식으로사용합니다. tperson은세개의문자열변수로이루어진데이터를저장할수있는변수입니다. 이변수는 strname, strregion, strcontact 변수를모두포함하고있으므로각각의변수를지정할때는 tperson.strname 과같은식으로지정해야합니다. Put 파일번호, 위치, 데이터 : 랜덤파일은이런식으로파일에데이터를기록합니다. Put 명령을사용합니다. 23강에서파일처리와관련된명령을정리한도표가기억나나요?( 기억안나면여기를클릭해서도표를보세요...) Put #ifilenum,, tperson에서 ifilenum은파일번호를저장한변수이고, 두번째매개변수는생략하였습니다. 이렇게생략하면이전데이터의끝에새로운데이터를기록한다는뜻입니다. 정리하면, tperson의데이터를현재열려있는파일의끝에기록한다는뜻이되겠죠. txtname.text = "" 는텍스트박스의내용을지우는것입니다. 즉현재폼에서 [ 추가 ] 버튼을눌러데이터를파일에쓰고난다음에텍스트박스를빈칸으로만들라는뜻입니다. 그래야다른 데이터를쓸테니까요. txtname.setfocus 는커서를이름입력란에서깜빡깜빡하라는것입니다. 26. 예제로익히는파일시스템 (2) - 랜덤접근파일 ( 下 ) 지난시간에이어랜덤파일실습계속합니다. 지난시간과마찬가지로일단폼을만들고코딩을다하고난다음에설명을드리 도록하죠. 1. 지난시간에작성한 frmrandom 폼의코드창을열어 cdmdisplay 개체의 Click 이벤트에다음의코드를추가합니다. [ 조회 ] 단추를누르면 frmdisplay 폼이나타나도록한것입니다. 2. 그러면 frmdisplay 폼을만들어봅시다. 81

82 o 아래와같이폼을디자인합니다. 지난시간의 frmrandom 과거의유사합니다. o 다음과같이속성값을변경합니다. 82

83 3. 코드창을열어다음과같이코딩을합니다. 4. 그럼실행을해보세요. o 실행을하면 frmrandom 폼 ( 랜덤파일실습창 ) 이나타나죠. 데이터를여러개입력하고난다음에 o [ 조회 ] 단추를눌러 frmdisplay 폼 ( 랜덤파일조회창 ) 을엽니다. o [<<] 와 [>>] 단추를눌러입력한데이터를앞뒤로검색해봅니다. 코드를살펴볼까요? 1 부분은지난시간의코드와비슷합니다. tperson 이라는새로은데이터형을선언하고몇가지변수를선언하였습니다. 전체레코드의개수 (ifilenumofrec) 와현재레코드의위치 (icrurec) 를저장하기위한변수가추가되었네요. 2 는사용자정의함수입니다. Display_File( ) 이라는 Sub 함수를만든것입니다. 83

84 3,5,6을살펴보면 Call Display_File 이라고씌어진부분있죠? 바로이함수를실행하라는것이죠. 이함수 ( 프로시저 ) 의기능은쉽게이해됩니다. Get 명령은랜덤파일을읽을때사용합니다. Get 파일번호, 레코드위치, 데이터와같은식으로사용됩니다. #ifilenum 파일을열어서 tperson이라는데이터에서 icurrec 위치의레코드를읽으라는뜻입니다. 그렇게읽어서첫번째텍스트박스에 tperson의이름필드 ( 항목 ) 의내용을표시합니다.(txtName.Text=tPerson.strName) 같은방식으로지역과연락처도표시합니다. 3은폼이열릴때자동으로실행되는부분인데, Form 개체의 Load 이벤트에작성합니다. 파일을랜덤형식으로열어서전체중에서처음레코드를표시하라는것입니다. 현재레코드를표시할때위 2에서작성한 Display_File 함수를실행했습니다. LOF 함수는파일의길이를구할때사용합니다. 형식은 LOF( 파일번호 ) 와같은식으로사용합니다. 따라서위와같이 LOF(iFileNum) 는현재열린파일 (cardfile.txt) 의전체길이를구하라는것입니다. 전체길이를구해서 Len(tPerson) 으로나누었습니다. tperson은하나의레코드가들어갈수있는변수이니까, 전체레코드의길이에서하나의레코드의길이를나누면전체레코드의개수가구해집니다. 대부분레코드의개수를구할때는이와같은방법을사용합니다. 이렇게구한전체레코드이개수를 inumofrec 변수에저장을하는것이죠. 4 는 Form 개체의 Unload 이벤트에작성한코드입니다. 폼을닫을때현재열린파일을닫아주라는것입니다. 5 는 [<<] 단추를눌렀을때현재레코드보다앞쪽의레코드를표시하라는것이죠. 단현재레코드의위치 (icurrec) 가 1 보다클경우에만그렇게하라는것입니다. 현재레코드의위치가맨처음 (1) 레코드이면그 대로두라는뜻입니다. 6 은 [>>] 단추를눌렀을때현재레코드보다뒷쪽의레코드를표시하라는것입니다. 단현재레코드의위치 (icurrec) 가최종레코드의위치 (inumofrec) 보다작을경우에만그렇게하라는것입니다. 만약지난시간의내용을이해하셨다면이번시간이그리어렵지는않을것입니다. 그러나파일의입출력과관련하여프로그래밍경험이없을경우에는개념적으로이해되지않는부분이많아선뜻이해하기쉽지않을수있습니다. 방법은반복학습밖에없습니다. 몇번비슷한예제를만들고실행하다보면어느새그개념을깨치게되는것이죠. 삼일절입니다. 행복한하루되시고요... 이상동주아빠손병목이었습니다. 27. 배포용설치프로그램만들기 84

85 VB 에서는매우쉽게설치프로그램을만들수있습니다. 아주간단한프로그램이지만그래도누군가에게배포하기위해줄때는 Setup.exe 파일이포함된설치프로그램형태로줘야폼 (?) 이나지않을까요? 그리고상대방의컴퓨터에관련 DLL 파일이모두있다는보장도없구요. 무슨말이냐면, VB 로만든프로그램을실행하기위해서는관련 DLL 파일이필요합니다. 지난시간에실습한랜덤파일실습프로그램도실행파일만있다고실행되지는않습니다. 프로그램이실행되는 PC 에 Comcat.dll, Msvbvm60.dll, olepro32.dll, Vb6ko.dll 외에도여러개의 DLL 파일이있어야실행되는것입니다. 이런파일들을모두찾아서배포용디스켓이나 CD 에담는다는것은매우힘든일입니다. 이럴때 VB 에서는 ' 패키지및배포마법사 ' 를사용해손쉽게설치프로그램을만들수있습니다. 지난시간에실습한랜덤파일실습프로그램의배포용설치프로그램을만드는실습을하겠습니다. 1. 지난시간에실습한소스파일을불러오세요.( 소스파일은프로그래밍소스자료실에있습니다.) 그리고프로젝트이름을 ' 랜덤파일 ' 로바꿉니다. 그냥 Project1 이라고두면나중에프로그램이설치된다음 Project1 이라는이름이생깁니다. 2. 설치프로그램을만들려면우선실행파일이필요하겠죠. 실습파일만들기는예전에시계프로그램만들때이미해본 바가있습니다. 85

86 다음과같이파일메뉴에서실행파일을만드세요. 3. 이제 ' 패키지및배포마법사 ' 를실행해야겠습니다. [ 추가기능 ]-[ 패키지및배포마법사 ] 를실행하세요. 만약 [ 패키지및배포마법사 ] 가없다면 [ 추가기능 ]-[ 추가기능관리자 ] 를실행해서다음과같이 ' 패키지및배포마법사 ' 를선택하고 ' 로드 / 언로드 ',' 시작할때로드 ' 를모두체크표시하고 [ 확인 ] 을누르세요. 다시 [ 추가기능 ] 메뉴를보면 [ 패키지및배포마법사 ] 가보입니다. 실행을하세요. 86

87 4. [ 패키지및배포마법사 ] 대화상자에서 ' 패키지 ' 아이콘을선택합니다. 5. 다음과같은메시지가나오면그냥 [ 예 ] 버튼을누르세요. 6. 이후화면부터는계속 [ 다음 ] 버튼만누르면됩니다. o o ' 패키지형식 ' 을묻는화면이나오면 ' 표준설치패키지 ' 가선택된상태에서 [ 다음 ] 버튼을누르고 ' 패키지폴더 ' 를선택하는화면이나오면기본으로제시한폴더나다른폴더를선택한다음 [ 다음 ] 버튼을누르 고 o ' 포함된파일 ' 을선택하는화면이나오면그냥 [ 다음 ] 버튼을누릅니다. 만약배포할프로그램에 Readme.txt 나기타추가로필요한파일이있으면이단계에서 [ 추가 ] 버튼을눌러추가할수있습니다. 위그림에서보이듯이배포용설치프로그램여러개의파일이필요하다는것을알수있습니다. o 'Cab' 옵션화면에서는그냥 ' 단일 Cab 파일 ' 이선택된상태에서 [ 다음 ] 을누릅니다. o ' 설치제목 ' 화면에서는설치프로그램으로설치할때나타나는제목을입력합니다. 여기서는 ' 랜덤파일설치실습 ' 이라고적어보겠습니다. o ' 시작메뉴항목 ' 화면도그냥 [ 다음 ] 을누릅니다. 시작메뉴에서어느곳에위치하는지확인하시고... o ' 설치위치 ' 화면에서도그냥 [ 다음 ] 을누릅니다. 기본지정된위치가왠지오류도없고안심이될것같으니까... 87

88 o ' 공유파일 ' 화면에서도 [ 다음 ] 을눌러넘어가세요. 공유파일은두개이상의프로그램에서함께사용할파일 을선택하는것입니다. o 마지막으로완료화면에서는그냥 [ 마침 ] 을눌러도되고 ' 스크립트이름 ' 란에적당한이름을입력해도됩니다. 7. 설치프로그램을완성하면해당폴더에다음과같은파일이보입니다. Support 폴더도꼭필요합니다. Support 폴더에는각종 DLL 파일이저장되어있습니다. 위그림에서보이는파일중 Setup.lst 파일을메모장에서한번열어보세요. 주 ~ 욱훑어보면아시겠지만배포용설치프로그램에필요한파일과위치등에대한정보가기록되어있습니다. 8. 그럼마지막으로 Setup 파일을실행하여프로그램을직접설치해보세요. 그리고지울때는... 제어판의 ' 프로그램추가제거 ' 를이용하면됩니다. VB 에서제공하는배포용설치프로그램마법사는매우훌륭합니다. 그러나전문가들은 VB 에서자체제공하는설치프로그램마법사가아닌다른설치프로그램툴을이용하는경우가많습니다. VB 에서제공하는설치프로그램마법사로만든설치프로그램의덩치가크고실제설치속도가느리다는이유때문이죠. 28. VB 와데이터베이스 - JET 와데이터컨트롤 VB 처럼쉽고강력하게데이터베이스와연동할수있는프로그래밍언어도없을것입니다. 물론쉽다는것에더욱강점을두어 야겠죠. 1. 데이터베이스 VB 와데이터베이스를연동하는실습을하기전에데이터베이스에대해조금알고넘어가야겠죠? 그러나데이터베이스에대한개념설명은생략하겠습니다. 마침데이터베이스기초강좌가별도로있으니오라클 ( 데이터베이스 ) 입문초기강좌에서비교적자세히다루고있습니다. 그래서데이터베이스, 관계형데이터베이스, 테이블, 필드, 레코드에대한개념설명은생략하겠습니다. 2. JET JET 는 Joint Engine Technology 의약자입니다. 마이크로소프트는가끔이렇게이해안되는이름을짓더라구요. 아마도제트기할때의 jet 와비슷한의미로강력하다는것을강조하기위해서만든이름이아닐까하는생각이드네요. 88

89 JET 는마이크로소프트오피스와비주얼베이직등에의해사용되는데이터베이스엔진을말합니다. 왠엔진? 엔진은 " 핵심적이고본질적인기능을수행하는 " 프로그램이라는뜻을가지고있습니다. 즉기계적인엔진에필적할만한 역할을하는프로그램이라고보면되죠. 결국 JET 는마이크로소프트에서사용하는데이터베이스의핵심기술이라고보면되겠네요. 그럼마이크로소프트에서사용하는데이터베이스가무엇일까요? 흔히액세스파일이라고불리우는확장자가 mdb 인데이터베이스를말합니다. MS 액세스로데이터베이스를만들면확장자가 mdb 가됩니다. 다른데이터베이스와의차이점이라면모든데이터베이스개체들을 mdb 라는확장자를갖는단일파일내에저장한다는것입니다. MS 액세스실행화면 그럼왜 JET 를사용하는가? 조금전에 JET 가데이터베이스의핵심기술이라고했죠? 그러니까데이터베이스를다루는왠만한것은 JET 가다수행 할수있다는말이됩니다. 그럼 VB 는뭘하죠? VB 는 JET 에게명령만합니다. 예를들어 VB 프로그램에서 JET 에게데이터베이스의어떤레코드를삭제하라고명령만합니다.( 삭제할때는 delete 메소드를사용합니다.) 그러면 JET 가실제로레코드를삭제하는것이죠. VB 는데이터베이스의레코드를어떻게삭제하고추가하고갱신하는지에대해자세하게처리할필요는없습니다. 그냥 JET 에게명령만내리는거죠. 3. 데이터컨트롤 폼에데이터컨트롤을추가하면수평스크롤바같은것이생깁니다. 89

90 데이터컨트롤을추가함으로써해당프로그램에서는 JET 를사용할수있게되는것입니다. 이데이터컨트롤은데이터베이스파일 (*.mdb) 과 VB 프로그램을연결시켜주는역할을합니다. 데이터컨트롤의왼쪽또는오른쪽화살표를클릭하면이데이터컨트롤과연결된데이터베이스의전 후레코드로이동하게해줍니다. 데이터컨트롤은폼위에추가하여컨트롤이보이는상태에서사용할수도있고, 예전에시계프로그램만들때처럼컨트롤은추가했지만실제로보이지않은상태에서그기능만이용할수도있습니다. 그외에도바운드컨트롤이나레코드세트객체등의개념에대해이해하는것이좋으나설명이길어지면오히려헤깔릴것같습니다. 이강좌는어디까지나비주얼베이직의여러기능을한번씩훑어보는데그목적이있습니다. " 아하 ~ 이런것도할수있구나 " 하는것만느끼시면됩니다. 보다구체적이고체계적인학습을위해서는별도의참고서적이필요할것입니다. 29. DB 연동프로그램실습 (1/7) - MDB 파일만들기 이번시간에는데이터컨트롤을이용한데이터베이스연동프로그램을만들어보겠습니다. 그런데데이터베이스연동프로그램을만들려면먼저데이터베이스가있어야겠죠. VB 에서는 ' 비주얼데이터관리자 ' 라는것으로직접데이터베이스파일 (*.mdb) 을만들거나구조를변경할수있습니다. 따라서이번시간에는먼저비주얼데이터관리자를이용해데이터베이스파일을만들어보기로하겠습니다. 비주얼데이터관리자로간단하게 mdb 파일을만들수있지만실전에서는 MS 액세스를이용하는경우가많습니다. 아무렴전문데이터베이스관리프로그램이훨씬편리하지않을까요. 그러나이번실습에서는철저하게 VB 만을이용하여데이터베이스를만들고, 이와연동하여작동하는프로그램을만들어보겠습니다. 우리가최종적으로만들프로그램의모습은이러합니다. 다음과같이사번, 성명, 직위, 부서, 토익필드로이루어진데이터베이스에직접데이터를추가하거나삭제, 검색할수있습니다. [ 그림 1] [ 검색 ] 버튼을누르면사번을입력하여해당레코드를찾는기능이구현되고, 90

91 [ 그림 2] [ 그림 1] 에서 [SQL 실행 ] 단추를누르면직접 SQL 문장을입력해서원하는레코드를조회할수있도록하는것입니다. [ 그림 3] 위의예제에는 JET 를이용한데이터베이스연동의기본개념과방법이모두포함되어있습니다. 지금까지와의실습프로그램과는다르게매우어렵게느껴질지도모르겠으나 VB 에서는비교적간단하게이모든기능을구현할 수있습니다. 1. 먼저다음과같은구조의데이터베이스를만들기위해 VB 의 [ 추가기능 ] 메뉴에서 [ 비주얼데이터관리자 ] 를실행합니 다. [ 그림 4] employee 테이블구조 [ 그림 5] 91

92 2. [ 파일 ]-[ 새파일 ]-[Microsoft Access]-[Version 7.0 MDB] 를선택합니다. [ 그림 6] 3. 원하는위치에원하는파일명을입력합니다. 이실습에서는 C 드라이브의 db1 폴더에 db1.mdb 라는파일명으로만들었습니다. [ 그림 7] 4. 그림과같이 Properties 를마우스오른쪽단추로눌러나타나는팝업메뉴에서 [ 새테이블 ] 을클릭합니다. [ 그림 8] 5. 테이블이름입력란에 'employee' 를입력하고 [ 필드추가 ] 단추를클릭합니다. [ 그림 9] 92

93 6. 이름입력란에 'number' 를입력하고형식은 'Text', 크기는 '4' 를입력한다음 [ 확인 ] 단추를누릅니다. [ 그림 10] 7. 위와같은방식으로 name, class, position, toeic 필드를추가합니다. 형식과크기는 [ 그림 4] 를참조하세요. [ 그림 11] 30. DB 연동프로그램실습 (2/7) - 데이터컨트롤을사용하여 VB 연동 지난시간에만든 db1.mdb 파일을 VB 에연결하는실습을하겠습니다. mdb 파일을 VB 와연동하기위해서는 Data 컨트롤을사용합니다. Data 컨트롤은 [ 그림 1] 에서붉은색박스로표시한것입니다. Data 컨트롤을폼위에올려놓으면 [ 그림 1] 과같이 DB 의레코드를앞뒤로이동할수있는컨트롤이나타납니다. 이컨트롤을지난시간에만든 db1.mdb 파일과연결하면됩니다. 93

94 1. 먼저아래 [ 그림 1] 과같은폼을만들어봅시다. [ 그림 1] 2. 각각의컨트롤에다음과같은속성을부여합니다. 여기서주의해야할것은바로 Data 컨트롤입니다. Data 컨트롤의여러속성중에서위의표에서굵게표시한속성들의값을정확하게지정해주어야합니다. o Connect 속성에는 Access 를선택해야합니다. 이외에도 FoxPro, dbase, Excel 등여러데이터베이스파일을사용할수있습니다만지난시간에비주얼데이터관리자로만든 db1.mdb 파일은액세스파일이므로반드시 Access 로지정을해야겠죠. o DababaseName 속성에는 mdb 파일의위치를정확하게지정해줘야합니다. 직접입력해도되지만오른쪽의 [...] 버튼을클릭해서직접지정해주면됩니다. o DefaultType 속성은 Jet 를선택합니다. Jet 에대해서는지난시간에다루었으므로설명은생략합니다. Jet 외에도 ODBC 를사용할수있는데, ODBC 는이강좌에서다루지않습니다. o RecordsetType 는다이너셋으로지정합니다. 다이너셋외에도 테이블, 스냅샷 등이있습니다. 일반적으로다이너셋을가장많이사용합니다. 스냅샷 은데이터의추가 수정등이불가능하고 ( 단지조회만합니다 ), 테이블 은하나의테이블을사용할때는유용하지만 SQL 문을사용할수없어다소제약이따릅니다. 94

95 o RecordSource 속성은선택한 DB 파일에서사용할테이블이름을지정합니다. 지난시간에테이블이름을 employee 라고지정했으므로이곳에도역시 employee 라고입력하면됩니다. 3. 데이터컨트롤이정확하게연결되었다면, 아래와같이 TextBox 컨트롤의 DataField 속성값을 employee 테이블의각각의필드이름과동일하게지정해주어야합니다. 그래야폼을실행할때해당텍스트박스에 employee 테이블의값이표시됩니다. 이상으로 db1.mdb 데이터베이스파일과 VB 가연결되었습니다. 다음시간에는위 [ 그림 1] 의검색단추를클릭했을때보일폼을디자인합니다. 그런다음 SQL 실행단추를클릭했을때보일 폼도디자인합니다. 이렇게세개의폼을모두만든다음본격적인코딩에들어갈것입니다. 31. DB 연동프로그램실습 (3/7) - 검색폼만들기 이번시간에만들폼은지난시간에만든것과거의유사합니다. 지난시간에폼을제대로만들었다면이번실습은매우쉽게처 리할수있을것입니다. 95

96 1. 먼저아래 [ 그림 1] 과같은모양으로컨트롤을배치합니다. 2. 각각의컨트롤에다음과같은속성을부여합니다. 지난시간과동일하니까어렵지는않죠? 3. 위의설정이제대로되었다면아래와같이 TextBox 컨트롤의 DataField 속성값을 employee 테이블의각각의필드이름 과동일하게지정해주어야합니다.( 이것역시지난시간의내용과동일합니다.) 96

97 그래야폼을실행할때해당텍스트박스에 employee 테이블의값이표시됩니다. 이제 frmdb1s 폼도 db1.mdb 데이터베이스파일과연결되었습니다. 데이터베이스연동실습과관련한세개의폼중에서두개 를만들었습니다. 다음시간에는마지막으로 SQL 검색폼을만들어보겠습니다. 32. DB 연동프로그램실습 (4/7) - SQL 실행폼만들기 이제마지막폼을만들차례네요. SQL 문장을직접입력하고실행버튼을누르면 SQL 문장이실행되면서그리드에결과가표시되는폼입니다. 97

98 1. 먼저아래 [ 그림 1] 과같은모양으로컨트롤을배치합니다. 2. 각각의컨트롤에다음과같은속성을부여합니다. 주의해야할것은반드시먼저 Data 컨트롤의속성을설정하고난다음에 MSFlexGrid 의속성을설정해야한다는것입니다. 만약 Data 컨트롤의 DatabaseName 과 RecordSource 속성을정확하게지정하지않으면 MSFlexGrid 컨트롤의 DataSource 속성값을 datdb1 으로지정할수없게됩니다. 이로서 VB 의데이터베이스연동실습을위한껍데기는다만들었습니다. 다음시간부터는레코드의추가, 삭제, 수정, 검색및 SQL 문장실행등을위한본격적인코딩작업에들어가겠습니다. 이런 ~ 위의 Form 이름이잘못되었네요. 폼이름을 frmsqlsearch 로바꿔주세요.(frmDb1S 는 31 강에서만든폼의이름과동일하네요..) 98

99 33. DB 연동프로그램실습 (5/7) - 코딩 (1) 지난시간까지프로그램에필요한껍데기 ( 폼 ) 는모두만들었으니이제본격적인프로그래밍에돌입하겠습니다. 먼저첫번째폼인 frmdb1 폼을열고코드창에서아래와같은코드를입력하면됩니다. 아래는코드를부분별로설명하고있으니전체적인코드를확인하시려면자료실의소스파일을참조하시기바랍니다. 조금어려울수도있습니다. 그리고설명이많이부족할수도있습니다. 그러나비주얼베이직을제대로공부하려는분이라면지금쯤약간은도톰한 VB 책한권씩은사두셨겠죠? [1] Private Sub Form_Load() datdb1.databasename = App.Path + " db1.mdb" datdb1.recordsource = "employee" datdb1.refresh If datdb1.recordset.recordcount = 0 Then Call TextUnabled End If End Sub Form 개체의 Load 이벤트에위와같은코드를추가합니다. 한줄한줄설명드리자면, 데이터컨트롤 (datdb1) 의 DatabaseName 속성값을현재프로그램이실행되고있는경로 (App.Path) 의 db1.mdb 파일로지정하고 데이터컨트롤 (datdb1) 의 RecordSource 속성값을 "employee" 로지정한다음 데이터컨트롤 (datdb1) 을새로고침 (Refresh) 합니다. 레코드셋의레코드가없으면 TextUnabled 함수를실행합니다. 이프로그램에서는 TextUnabled(), TextEnabled() 와같은사용자가직접만든함수를사용합니다. TextEnabled() 는텍스트박스를모두입력할수있는상태로만들고, TextUnabled() 는텍스트박스에입력할수없도록만드는함수입니다.( 아래 [2] 와 [3] 의함수입니다.) 따라서위의 If~End If 는데이터가하나도없으면 [ 추가 ] 단추를누르기전까지데이터를입력할수없도록만드는기능입니다. [2] Private Sub TextEnabled() txtnumber.enabled = True txtname.enabled = True txtclass.enabled = True txtposition.enabled = True 99

100 txttoeic.enabled = True End Sub 사용자정의함수입니다. 코드창에서함수이름부터모두직접입력해야됩니다. 텍스트박스 5 개를모두입력할수있는상태로만들어주는기능을합니다. [3] Private Sub TextUnabled() txtnumber.enabled = False txtname.enabled = False txtclass.enabled = False txtposition.enabled = False txttoeic.enabled = False End Sub 사용자정의함수입니다. 텍스트박스 5 개모두입력할수없는상태로만듭니다. 예를들어 [ 추가 ] 단추를누르지않은상태에서는텍스트박스에아무런데이터도입력하지못하도록할때사용합니다. [4] Private Sub cmdadd_click() datdb1.recordset.addnew Call TextEnabled txtnumber.setfocus End Sub [ 추가 ] 단추를눌렀을때사용되는코드입니다. cmdadd 컨트롤의 Click 이벤트에위와같은코드를추가합니다. 첫번째줄은현재의데이터베이스의레크드셋에새데이터를추가하는메소드 (AddNew) 두번째줄은텍스트박스에모두입력할수있는상태로만드는것 마지막줄은번호입력란 ( 첫번째텍스트박스 ) 로커서를위치시키는기능 입니다. [5] Private Sub cmddelete_click() If datdb1.recordset.recordcount > 0 Then datdb1.recordset.delete datdb1.refresh Else Call TextUnabled End If End Sub [ 삭제 ] 단추를눌렀을때사용되는코드입니다. cmddelete 컨트롤의 Click 이벤트에위와같은코드를추가합니다. 만약레코드가하나라도있으면 ( 즉, RecordCount가 0보다크면 ) 현재의레코드를삭제 (Delete) 하고새로고침 (Refresh) 합니다. 100

101 그렇지않으면 ( 레코드가하나도없으면 ) 텍스트박스를입력하지못하도록만듭니다. [6] Private Sub cmdsearch_click() frmdb1s.show End Sub [ 검색 ] 단추를눌렀을때사용되는코드입니다. cmdsearch 컨트롤의 Click 이벤트에위와같은코드를추가합니다. frmdb1s 폼을보여주는기능입니다. [7] Private Sub cmdsql_click() frmsqlsearch.show End Sub 위와마찬가지로 [SQL 실행 ] 단추를눌렀을때 frmsqlsearch 폼을보여주는기능입니다. [8] Private Sub datdb1_reposition() datdb1.caption = CStr(datDb1.Recordset.AbsolutePosition + 1) + "/" + CStr(datDb1.Recordset.RecordCount) End Sub datdb1 컨트롤의 Reposition 이벤트에추가하는코드입니다.( 데이터컨트롤을더블클릭하고위의코드를추가해도됩니다.) 데이터컨트롤의캡션속성값 (datdb1.caption) 을레코드셋의현재위치 (datdb1.recordset.absoluteposition) 에 1을더한숫자를문자열로바꾸고 (CStr), 레코드셋의전체개수 (datdb1.recordset.recordcount) 를문자열로바꾸어 (Cstr) 현재위치 / 전체숫자와같은식으로표시하라는뜻입니다. 34. DB 연동프로그램실습 (6/7) - 코딩 (2) 먼저 31 강에서만들었던두번째폼인 frmdb1s 폼을열고코드창에서아래와같은코드를입력하면됩니다. 101

102 [1] Form 개체의 Activate 프로시저를선택하고 txtsearchnum.setfocus를입력합니다. Activate 프로시저에는창이활성화될때실행되는코드를입력합니다. 따라서위와같이하면 frmdb1s 창이활성화되면검색을위해사번을입력하는 txtsearchnum 텍스트박스에커서가깜빡거리게됩니다. [2] 창이로드될때실행되는코드입니다. 지난시간의코드와비슷합니다. 현재경로에서 db1.mdb 파일을데이터컨트롤 (datdb1) 과연결시킵니다. 그리고 db1.mdb의 employee 테이블에서레코드를가져옵니다. 그리고새로고침을합니다. 그외의코드는검색을위한사번입력란을제외한다른입력란을모두비활성화시키는기능을합니다. 검색결과를보여주기만하면되니까입력할수없도록만든것입니다. [3] 찾아랏! 단추를누를때실행되는코드입니다. FindFirst 메소드는레코드셋에있는레코드를처음부터검색하여해당조건을만족하는처음레코드를찾아줍니다. FindFirst 메소드뒤의조건식은큰따옴표로둘러싸야합니다. 예를들어, Data1.RecordSet.FindFirst " 점수 Between 90 And 100" 는점수가 90~100인자료검색하라는뜻이됩니다. 따라서만약사번입력란에 0003을입력하고 [ 찾아랏!] 단추를누르면 datdb1.recoredset.findfirst "[number]= '0003 " 과같은식이실행됩니다. 지난시간의실습을무난히마쳤다면이번시간은그리어렵지않았을것입니다. 35. DB 연동프로그램실습 (7/7) - 코딩 (3) 오늘은 VB와 DB 연동마지막시간입니다. VB와 DB 연동방법은이강좌에서소개하고있는 Data 컨트롤을이용한방법만있는것은아닙니다. 이건아주기초적인것이며실전프로그래밍에거의사용되지않을수도있습니다. 비록소스는쉽고빠르게작성할수있을지모르겠지만사용자가 ( 또는프로그래머가 ) 원하는정도의세부적이고다양한기능을구현하기에는부적합하기때문입니다. 102

103 오히려실무에서는 DAO(Data Access Object) 를이용하여데이터베이스를직접생성하거나보다섬세한컨트롤을합니다. ODBC 를이용하여오라클 DB를직접액세스하여사용하기도합니다. 지금까지의강좌는어디까지나프로그래밍의개념을익히는입문수준이라는것을다시말씀드리며, 보다체계적인학습을위해서는관련서적또는프로그래밍전문사이트를통해심화된학습이필요합니다. 강좌를마무리하려다보니서론이길어졌네요. 그럼이제마지막폼에코딩을하는것으로 DB 연동실습을마치도록하겠습니다. 먼저 32 강에서만들었던세번째폼인 frmsqlsearch 폼을열고코드창에서아래와같은코드를입력하면됩니다. 매우간단합니다. [1] 창이로드될때실행되는코드입니다. 지난시간의코드와다르지않죠? 현재경로에서 db1.mdb 파일을데이터컨트롤 (datdb1) 과연결시킵니다. 그리고 db1.mdb의 employee 테이블에서레코드를가져옵니다. 그리고새로고침하는역할을합니다. [2] [1] 에서 RecordSource 속성에 employee" 라는테이블명을대입했습니다. 그런데 [2] 의 RecordSource 속성에 txtsql.text 값을넣었습니다. 다시말해텍스트박스에서입력한내용을 RecordSource 속성값으로설정한거죠. 이렇게되면텍스트박스에입력한 SQL 문장이실행되는결과가나타납니다. 그렇게된결과를다시보기위해아래줄에서 Refresh를한겁니다. 쉽죠? 단, SQL이뭔지전혀모르시는분들은좀처럼이해가지않을수있습니다. SQL에대해서는본사이트의오라클입문강좌에서자세하게다루고있습니다. 특히개념은오라클강좌제19강 SQL과 SQL*Plus 에서소개하고있습니다. 103

104 프로그램이모두완성되었으면직접데이터를입력, 수정, 삭제를해보시기바랍니다. 그러고입력된자료를바탕으로 SQL 검색도해보실수있습니다. 예를들어 SQL 문장입력텍스트박스에다음과같이입력하여실행해보세요. select * from employee select number from employee select number, name from employee select * from employee where toeic > 700 select * from employee where position = " 사원 104

Visual Basic 반복문

Visual Basic 반복문 학습목표 반복문 For Next문, For Each Next문 Do Loop문, While End While문 구구단작성기로익히는반복문 2 5.1 반복문 5.2 구구단작성기로익히는반복문 3 반복문 주어진조건이만족하는동안또는주어진조건이만족할때까지일정구간의실행문을반복하기위해사용 For Next For Each Next Do Loop While Wend 4 For

More information

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx #include int main(void) { int num; printf( Please enter an integer "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 을 작성하면서 C 프로그램의

More information

윈도우즈프로그래밍(1)

윈도우즈프로그래밍(1) 제어문 (2) For~Next 문 윈도우즈프로그래밍 (1) ( 신흥대학교컴퓨터정보계열 ) 2/17 Contents 학습목표 프로그램에서주어진특정문장을부분을일정횟수만큼반복해서실행하는문장으로 For~Next 문등의구조를이해하고활용할수있다. 내용 For~Next 문 다중 For 문 3/17 제어문 - FOR 문 반복문 : 프로그램에서주어진특정문장들을일정한횟수만큼반복해서실행하는문장

More information

학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2

학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2 학습목표 함수프로시저, 서브프로시저의의미를안다. 매개변수전달방식을학습한다. 함수를이용한프로그래밍한다. 2 6.1 함수프로시저 6.2 서브프로시저 6.3 매개변수의전달방식 6.4 함수를이용한프로그래밍 3 프로시저 (Procedure) 프로시저 (Procedure) 란무엇인가? 논리적으로묶여있는하나의처리단위 내장프로시저 이벤트프로시저, 속성프로시저, 메서드, 비주얼베이직내장함수등

More information

PowerPoint Template

PowerPoint Template JavaScript 회원정보 입력양식만들기 HTML & JavaScript Contents 1. Form 객체 2. 일반적인입력양식 3. 선택입력양식 4. 회원정보입력양식만들기 2 Form 객체 Form 객체 입력양식의틀이되는 태그에접근할수있도록지원 Document 객체의하위에위치 속성들은모두 태그의속성들의정보에관련된것

More information

ISP and CodeVisionAVR C Compiler.hwp

ISP and CodeVisionAVR C Compiler.hwp USBISP V3.0 & P-AVRISP V1.0 with CodeVisionAVR C Compiler http://www.avrmall.com/ November 12, 2007 Copyright (c) 2003-2008 All Rights Reserved. USBISP V3.0 & P-AVRISP V1.0 with CodeVisionAVR C Compiler

More information

Microsoft PowerPoint - e pptx

Microsoft PowerPoint - e pptx Import/Export Data Using VBA Objectives Referencing Excel Cells in VBA Importing Data from Excel to VBA Using VBA to Modify Contents of Cells 새서브프로시저작성하기 프로시저실행하고결과확인하기 VBA 코드이해하기 Referencing Excel Cells

More information

Microsoft Word - windows server 2003 수동설치_non pro support_.doc

Microsoft Word - windows server 2003 수동설치_non pro support_.doc Windows Server 2003 수동 설치 가이드 INDEX 운영체제 설치 준비과정 1 드라이버를 위한 플로피 디스크 작성 2 드라이버를 위한 USB 메모리 작성 7 운영체제 설치 과정 14 Boot Sequence 변경 14 컨트롤러 드라이버 수동 설치 15 운영체제 설치 17 운영체제 설치 준비 과정 Windows Server 2003 에는 기본적으로

More information

Studuino소프트웨어 설치

Studuino소프트웨어 설치 Studuino 프로그래밍환경 Studuino 소프트웨어설치 본자료는 Studuino 프로그래밍환경설치안내서입니다. Studuino 프로그래밍 환경의갱신에따라추가 / 수정될수있습니다. 목차 1. 소개... 1 2. Windows... 2 2.1. 프로그래밍환경설치... 2 2.1.1. 웹설치버전설치방법... 2 2.2. Studuino 프로그래밍환경실행...

More information

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc NTAS and FRAME BUILDER Install Guide NTAS and FRAME BUILDER Version 2.5 Copyright 2003 Ari System, Inc. All Rights reserved. NTAS and FRAME BUILDER are trademarks or registered trademarks of Ari System,

More information

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx To be an Android Expert 문양세강원대학교 IT 대학컴퓨터학부 Eclipse (IDE) JDK Android SDK with ADT IDE: Integrated Development Environment JDK: Java Development Kit (Java SDK) ADT: Android Development Tools 2 JDK 설치 Eclipse

More information

금오공대 컴퓨터공학전공 강의자료

금오공대 컴퓨터공학전공 강의자료 C 프로그래밍프로젝트 Chap 14. 포인터와함수에대한이해 2013.10.09. 오병우 컴퓨터공학과 14-1 함수의인자로배열전달 기본적인인자의전달방식 값의복사에의한전달 val 10 a 10 11 Department of Computer Engineering 2 14-1 함수의인자로배열전달 배열의함수인자전달방식 배열이름 ( 배열주소, 포인터 ) 에의한전달 #include

More information

1

1 1 2 3 4 5 6 b b t P A S M T U s 7 m P P 8 t P A S M T U s 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 Chapter 1 29 1 2 3 4 18 17 16 15 5 6 7 8 9 14 13 12 11 10 1 2 3 4 5 9 10 11 12 13 14 15

More information

var answer = confirm(" 확인이나취소를누르세요."); // 확인창은사용자의의사를묻는데사용합니다. if(answer == true){ document.write(" 확인을눌렀습니다."); else { document.write(" 취소를눌렀습니다.");

var answer = confirm( 확인이나취소를누르세요.); // 확인창은사용자의의사를묻는데사용합니다. if(answer == true){ document.write( 확인을눌렀습니다.); else { document.write( 취소를눌렀습니다.); 자바스크립트 (JavaScript) - HTML 은사용자에게인터페이스 (interface) 를제공하는언어 - 자바스크립트는서버로데이터를전송하지않고서할수있는데이터처리를수행한다. - 자바스크립트는 HTML 나 JSP 에서작성할수있고 ( 내부스크립트 ), 별도의파일로도작성이가능하다 ( 외 부스크립트 ). - 내부스크립트 - 외부스크립트

More information

지도상 유의점 m 학생들이 어려워하는 낱말이 있으므로 자세히 설명해주도록 한다. m 버튼을 무리하게 조작하면 고장이 날 위험이 있으므로 수업 시작 부분에서 주의를 준다. m 활동지를 보고 어려워하는 학생에게는 영상자료를 접속하도록 안내한다. 평가 평가 유형 자기 평가

지도상 유의점 m 학생들이 어려워하는 낱말이 있으므로 자세히 설명해주도록 한다. m 버튼을 무리하게 조작하면 고장이 날 위험이 있으므로 수업 시작 부분에서 주의를 준다. m 활동지를 보고 어려워하는 학생에게는 영상자료를 접속하도록 안내한다. 평가 평가 유형 자기 평가 수업주제 경찰 출동! (버튼, LED, 버저 사용하기) 9 / 12 차시 수업의 주제와 목표 본 수업에서는 이전 차시에 배웠던 블록들의 기능을 복합적으로 활용한다. 스위치 기능을 가진 버튼을 활용하여 LED와 버저를 동시에 작동시키도록 한다. 각 블록들을 함께 사용하는 프로젝트를 통해 각각의 기능을 익히고 보다 다양한 활용 방법을 구상할 수 있다. 교수 학습

More information

Visual Basic 기본컨트롤

Visual Basic 기본컨트롤 학습목표 폼 ( Form) 폼의속성, 컨트롤이름, 컨트롤메서드 기본컨트롤 레이블, 텍스트박스, 버튼, 리스트박스 이벤트 버튼 기본컨트롤실습 2 2.1 폼 (Form) 2.2 기본컨트롤 2.3 기본컨트롤실습 3 폼 - 속성 속성 (Name) AutoSize BackColor Font ForeColor Icon StartPosition Transparency WindowState

More information

API - Notification 메크로를통하여어느특정상황이되었을때 SolidWorks 및보낸경로를통하여알림메시지를보낼수있습니다. 이번기술자료에서는메크로에서이벤트처리기를통하여진행할예정이며, 메크로에서작업을수행하는데유용할것입니다. 알림이벤트핸들러는응용프로그램구현하는데있어

API - Notification 메크로를통하여어느특정상황이되었을때 SolidWorks 및보낸경로를통하여알림메시지를보낼수있습니다. 이번기술자료에서는메크로에서이벤트처리기를통하여진행할예정이며, 메크로에서작업을수행하는데유용할것입니다. 알림이벤트핸들러는응용프로그램구현하는데있어 메크로를통하여어느특정상황이되었을때 SolidWorks 및보낸경로를통하여알림메시지를보낼수있습니다. 이번기술자료에서는메크로에서이벤트처리기를통하여진행할예정이며, 메크로에서작업을수행하는데유용할것입니다. 알림이벤트핸들러는응용프로그램구현하는데있어서가장중요한부분이라고도할수있기때문입니다. 1. 새로운메크로생성 새메크로만들기버튺을클릭하여파일을생성합니다. 2. 메크로저장 -

More information

2009년 상반기 사업계획

2009년 상반기 사업계획 기본컨트롤 (2) 윈도우즈프로그래밍 (1) ( 신흥대학교컴퓨터정보계열 ) 2/25 Contents 학습목표 윈도우의구성요소를시각화한표준컨트롤중리스트박스, 콤보박스, 스크롤바등을이해한다. 내용 ListBox와 ComboBox 컨트롤의속성과활용 Shape 컨트롤의이해 HScroll/VScroll 컨트롤의활용 3/25 ListBox 컨트롤 ListBox( 리스트박스

More information

아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상

아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상 Android 용 Brother Image Viewer 설명서 버전 0 KOR 아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상표입니다. Android는

More information

Microsoft Word - PLC제어응용-2차시.doc

Microsoft Word - PLC제어응용-2차시.doc 과정명 PLC 제어응용차시명 2 차시. 접점명령 학습목표 1. 연산개시명령 (LOAD, LOAD NOT) 에대하여설명할수있다. 2. 직렬접속명령 (AND, AND NOT) 에대하여설명할수있다. 3. 병렬접속명령 (OR, OR NOT) 에대하여설명할수있다. 4.PLC의접점명령을가지고간단한프로그램을작성할수있다. 학습내용 1. 연산개시명령 1) 연산개시명령 (LOAD,

More information

tiawPlot ac 사용방법

tiawPlot ac 사용방법 tiawplot ac 매뉴얼 BORISOFT www.borisoft.co.kr park.ji@borisoft.co.kr HP : 00-370-077 Chapter 프로그램설치. 프로그램설치 3 2 Chapter tiawplot ac 사용하기.tiawPlot ac 소개 2.tiawPlot ac 실행하기 3. 도면파일등록및삭제 4. 출력장치설정 5. 출력옵션설정

More information

Microsoft PowerPoint - chap05-제어문.pptx

Microsoft PowerPoint - chap05-제어문.pptx int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); 1 학습목표 제어문인,, 분기문에 대해 알아본다. 인 if와 switch의 사용 방법과 사용시 주의사항에 대해 알아본다.

More information

Install stm32cubemx and st-link utility

Install stm32cubemx and st-link utility STM32CubeMX and ST-LINK Utility for STM32 Development 본문서는 ST Microelectronics 의 ARM Cortex-M 시리즈 Microcontroller 개발을위해제공되는 STM32CubeMX 와 STM32 ST-LINK Utility 프로그램의설치과정을설명합니다. 본문서는 Microsoft Windows 7

More information

OCW_C언어 기초

OCW_C언어 기초 초보프로그래머를위한 C 언어기초 2 장 : C 프로그램시작하기 2012 년 이은주 학습목표 을작성하면서 C 프로그램의구성요소 주석 (comment) 이란무엇인지알아보고, 주석을만드는방법 함수란무엇인지알아보고, C 프로그램에반드시필요한 main 함수 C 프로그램에서출력에사용되는 printf 함수 변수의개념과변수의값을입력받는데사용되는 scanf 함수 2 목차 프로그램코드

More information

Office 365 사용자 가이드

Office 365 사용자 가이드 [ 여기에입력 ] Office 365 사용자가이드 OFFICE 365 모바일설정 목차 1. 모바일에메일계정추가하기... 2 2. Lync 2013 App 설치하기... 7 3. Office Mobile App 설치하기... 10 4. Office for ipad 설치하기... 16-1 - 모바일기기에 Office 365 를설정해보세요. 모바일기기에 Office

More information

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 (   ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각 JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( http://java.sun.com/javase/6/docs/api ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각선의길이를계산하는메소드들을작성하라. 직사각형의가로와세로의길이는주어진다. 대각선의길이는 Math클래스의적절한메소드를이용하여구하라.

More information

4장기본프로그래밍2

4장기본프로그래밍2 4-2 마우스 (Mouse) 마우스이벤트 Click 이벤트 마우스버튼이눌렸다가떼어질때발생 DblClick 이벤트 마우스버튼이두번눌렸다가떼어질때발생 MouseDown 이벤트 마우스버튼이눌렸을때발생 MouseUp 이벤트 마우스버튼이떼어질때발생 MouseMove 이벤트 마우스가움직일때발생 DragOver 이벤트 마우스버튼을누른상태에서끌기를했을때발생 DragDrop

More information

Microsoft Word - 3부A windows 환경 IVF + visual studio.doc

Microsoft Word - 3부A windows 환경 IVF + visual studio.doc Visual Studio 2005 + Intel Visual Fortran 9.1 install Intel Visual Fortran 9.1 intel Visual Fortran Compiler 9.1 만설치해서 DOS 모드에서실행할수있지만, Visual Studio 2005 의 IDE 를사용하기위해서는 Visual Studio 2005 를먼저설치후 Integration

More information

메뉴얼41페이지-2

메뉴얼41페이지-2 데이터 기반 맞춤형 성장관리 솔루션 스마트빌 플러스 은행계좌등록 은행계좌를 조회하여 등록합니다. 신용카드등록 신용카드를 조회하여 등록합니다. 금융정보 자동수집을 위하여 인증서이름, 아이디, 비밀번호를 등록합니다. 통합 자동 수집 금융정보 통합 자동수집을 실행합니다 은행계좌등록 은행계좌를 조회하여 등록합니다. 신용카드등록 신용카드를 조회하여

More information

View Licenses and Services (customer)

View Licenses and Services (customer) 빠른 빠른 시작: 시작: 라이선스, 라이선스, 서비스 서비스 및 주문 주문 이력 이력 보기 보기 고객 가이드 Microsoft 비즈니스 센터의 라이선스, 서비스 및 혜택 섹션을 통해 라이선스, 온라인 서비스, 구매 기록 (주문 기록)을 볼 수 있습니다. 시작하려면, 비즈니스 센터에 로그인하여 상단 메뉴에서 재고를 선택한 후 내 재고 관리를 선택하십시오. 목차

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 실습 1 배효철 th1g@nate.com 1 목차 조건문 반복문 System.out 구구단 모양만들기 Up & Down 2 조건문 조건문의종류 If, switch If 문 조건식결과따라중괄호 { 블록을실행할지여부결정할때사용 조건식 true 또는 false값을산출할수있는연산식 boolean 변수 조건식이 true이면블록실행하고 false 이면블록실행하지않음 3

More information

Visual Basic Visual Basic 소개

Visual Basic Visual Basic 소개 1. Visual Basic 소개 학습목표 MS 비주얼베이직 6.0과 2010의차이 비주얼베이직 2010 express 설치 비주얼베이직 2010의통합개발환경 프로그램의시작과실행 2 1. 소개 1.1 MS 비주얼베이직 6.0과 2010의차이 1.2 비주얼베이직 2010 express 설치 1.3 비주얼베이직 2010의통합개발환경 1.4 프로그램의시작과실행 3

More information

PathEye 공식 블로그 다운로드 받으세요!! 지속적으로 업그래이드 됩니다. 여러분의 의견을 주시면 개발에 반영하겠 습니다.

PathEye 공식 블로그 다운로드 받으세요!!   지속적으로 업그래이드 됩니다. 여러분의 의견을 주시면 개발에 반영하겠 습니다. PathEye Mobile Ver. 0.71b 2009. 3. 17 By PathEye 공식 블로그 다운로드 받으세요!! http://blog.patheye.com 지속적으로 업그래이드 됩니다. 여러분의 의견을 주시면 개발에 반영하겠 습니다. PathEye 설치 1/3 최종 배포 버전을 다 운로드 받습니다. 다운로드된 파일은 CAB 파일입니다. CAB 파일에는

More information

PowerPoint Presentation

PowerPoint Presentation #include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 을작성하면서 C 프로그램의구성요소에대하여알아본다.

More information

1. 매크로활성화체크홈페이지에서예제파일을직접다운받으신경우, 예제파일은매크로가포함된파일이므로상단에 [ 매크로활성화버튼 ] 을체크해주세요. 2. 옵션버튼편집하기 각옵션버튼을누를때마다, 선택된포탈사이트의커맨드버튼이나타나도록옵션버튼에 Click 이벤트명령문을입혀줍니다. 네이버

1. 매크로활성화체크홈페이지에서예제파일을직접다운받으신경우, 예제파일은매크로가포함된파일이므로상단에 [ 매크로활성화버튼 ] 을체크해주세요. 2. 옵션버튼편집하기 각옵션버튼을누를때마다, 선택된포탈사이트의커맨드버튼이나타나도록옵션버튼에 Click 이벤트명령문을입혀줍니다. 네이버 포탈사이트 로그인프로그램 만들기 #2 Copyright 2018 by 오빠두 0 1. 매크로활성화체크홈페이지에서예제파일을직접다운받으신경우, 예제파일은매크로가포함된파일이므로상단에 [ 매크로활성화버튼 ] 을체크해주세요. 2. 옵션버튼편집하기 각옵션버튼을누를때마다, 선택된포탈사이트의커맨드버튼이나타나도록옵션버튼에 Click 이벤트명령문을입혀줍니다. 네이버로그인, 구글로그인,

More information

NTD36HD Manual

NTD36HD Manual Upnp 사용 D7 은 UPNP 를지원하여 D7 의네크워크에연결된 UPNP 기기에별다른설정없이연결하여, 유무선으로네트워크상의연결된 UPNP 기기의콘텐츠를재생할수있습니다. TV 화면의 브라우저, UPNP 를선택하면연결가능한 UPNP 기기가표시됩니다. 주의 - UPNP 기능사용시연결된 UPNP 기기의성능에따라서재생되지않는콘텐츠가있을수있습니다. NFS 사용 D7

More information

Microsoft PowerPoint - Java7.pptx

Microsoft PowerPoint - Java7.pptx HPC & OT Lab. 1 HPC & OT Lab. 2 실습 7 주차 Jin-Ho, Jang M.S. Hanyang Univ. HPC&OT Lab. jinhoyo@nate.com HPC & OT Lab. 3 Component Structure 객체 (object) 생성개념을이해한다. 외부클래스에대한접근방법을이해한다. 접근제어자 (public & private)

More information

Microsoft Word - Armjtag_문서1.doc

Microsoft Word - Armjtag_문서1.doc ARM JTAG (wiggler 호환 ) 사용방법 ( IAR EWARM 에서 ARM-JTAG 로 Debugging 하기 ) Test Board : AT91SAM7S256 IAR EWARM : Kickstart for ARM ARM-JTAG : ver 1.0 ( 씨링크테크 ) 1. IAR EWARM (Kickstart for ARM) 설치 2. Macraigor

More information

1

1 2/33 3/33 4/33 5/33 6/33 7/33 8/33 9/33 10/33 11/33 12/33 13/33 14/33 15/33 16/33 17/33 5) 입력을 다 했으면 확인 버튼을 클릭합니다. 6) 시작 페이지가 제대로 설정이 되었는지 살펴볼까요. 익스플로러를 종료하고 다시 실행시켜 보세요. 시작화면에 야후! 코리아 화면이 뜬다면 설정 완료..^^

More information

경우 1) 80GB( 원본 ) => 2TB( 복사본 ), 원본 80GB 는 MBR 로디스크초기화하고 NTFS 로포맷한경우 복사본 HDD 도 MBR 로디스크초기화되고 80GB 만큼포맷되고나머지영역 (80GB~ 나머지부분 ) 은할당되지않음 으로나온다. A. Window P

경우 1) 80GB( 원본 ) => 2TB( 복사본 ), 원본 80GB 는 MBR 로디스크초기화하고 NTFS 로포맷한경우 복사본 HDD 도 MBR 로디스크초기화되고 80GB 만큼포맷되고나머지영역 (80GB~ 나머지부분 ) 은할당되지않음 으로나온다. A. Window P Duplicator 는기본적으로원본하드디스크를빠르게복사본하드디스크에복사하는기능을하는것입니다.. 복사본 하드디스크가원본하드디스크와똑같게하는것을목적으로하는것이어서저용량에서고용량으로복사시몇 가지문제점이발생할수있습니다. 하드디스크는사용하려면, 디스크초기화를한후에포맷을해야사용가능합니다. Windows PC는 MBR과 GPT 2 개중에 1개로초기화합니다. -Windows

More information

IRISCard Anywhere 5

IRISCard Anywhere 5 이 빠른 사용자 가이드는 IRISCard Anywhere 5 및 IRISCard Corporate 5 스캐너의 설치와 시작을 도와 드립니다. 이 스캐너와 함께 제공되는 소프트웨어는: - Cardiris Pro 5 및 Cardiris Corporate 5 for CRM (Windows 용) - Cardiris Pro 4 (Mac OS 용) Cardiris 의

More information

제이쿼리 (JQuery) 정의 자바스크립트함수를쉽게사용하기위해만든자바스크립트라이브러리. 웹페이지를즉석에서변경하는기능에특화된자바스크립트라이브러리. 사용법 $( 제이쿼리객체 ) 혹은 $( 엘리먼트 ) 참고 ) $() 이기호를제이쿼리래퍼라고한다. 즉, 제이쿼리를호출하는기호

제이쿼리 (JQuery) 정의 자바스크립트함수를쉽게사용하기위해만든자바스크립트라이브러리. 웹페이지를즉석에서변경하는기능에특화된자바스크립트라이브러리. 사용법 $( 제이쿼리객체 ) 혹은 $( 엘리먼트 ) 참고 ) $() 이기호를제이쿼리래퍼라고한다. 즉, 제이쿼리를호출하는기호 제이쿼리 () 정의 자바스크립트함수를쉽게사용하기위해만든자바스크립트라이브러리. 웹페이지를즉석에서변경하는기능에특화된자바스크립트라이브러리. 사용법 $( 제이쿼리객체 ) 혹은 $( 엘리먼트 ) 참고 ) $() 이기호를제이쿼리래퍼라고한다. 즉, 제이쿼리를호출하는기호 CSS와마찬가지로, 문서에존재하는여러엘리먼트를접근할수있다. 엘리먼트접근방법 $( 엘리먼트 ) : 일반적인접근방법

More information

5장프로그래밍II

5장프로그래밍II 5 장비주얼베이직을이용한 기본프로그래밍 Ⅱ Timer 보통일정한시간만큼을지연시킨후어떤작업을하려고할때사용되는컨트롤 Timer 이벤트프로시저에하려고하는작업의내용을기술 Interval 속성에지정된일정한시간만큼을기다렸다가 Timer 이벤트프로시져의내용을수행 일단시작되면프로그램에다른기능들이작동하더라도독립적이고영속적으로계속수행 ( 즉, 멀티태스킹작업을한다 ) 실습 5-1

More information

Microsoft PowerPoint - gnu-w06-python_[실습]_day13-turtle-shape

Microsoft PowerPoint - gnu-w06-python_[실습]_day13-turtle-shape DAY 13 거북이그래픽응용하기 모두의파이썬 20 일만에배우는프로그래밍기초 거북이그래픽응용하기 01 자주사용하는거북이그래픽명령어 02 03 키보드로거북이를조종해서그림그리기 마우스로거북이를조종해서그림그리기 2 1. 자주사용하는거북이그래픽명령어 자주사용하는거북이그래픽명령어 2 함수설명사용예 pos( ) / position( ) xcor( ), ycor( ) goto(x,

More information

C 프로그램의 기본

C 프로그램의 기본 C 프로그램의기본 목차 C 프로그램의구성요소 주석 main 함수 출력 C 언어의입력과출력 변수 printf 함수 scanf 함수 2 예제 2-1 : 첫번째 C 프로그램 3 2.1.1 주석 주석의용도 프로그램에대한설명 프로그램전체에대한대략적인정보를제공 프로그램수행에영향을미치지않는요소 4 2.1.1 주석 주석사용방법 /* 과 */ 을이용한여러줄주석 // 을이용한한줄주석

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Chapter 06 반복문 01 반복문의필요성 02 for문 03 while문 04 do~while문 05 기타제어문 반복문의의미와필요성을이해한다. 대표적인반복문인 for 문, while 문, do~while 문의작성법을 알아본다. 1.1 반복문의필요성 반복문 동일한내용을반복하거나일정한규칙으로반복하는일을수행할때사용 프로그램을좀더간결하고실제적으로작성할수있음.

More information

윈도 모바일 6.1을 OS로 사용하는 스마트폰(옴니아2 등)에서의 Tcl/Tk의 사용

윈도 모바일 6.1을 OS로 사용하는 스마트폰(옴니아2 등)에서의 Tcl/Tk의 사용 일, 12/27/2009-18:11 bonkora 첨부 파일 1.png [1] 2.png [2] 3.png [3] 4.png [4] 5.png [5] 6.png [6] 7.png [7] 8.png [8] 9.png [9] 10.png [10] 11.png [11] study4etcl.zip [12] 파일 크기 11.91 KB 19.69 KB 21.67 KB

More information

목차 1. 시스템요구사항 암호및힌트설정 ( 윈도우 ) JetFlash Vault 시작하기 ( 윈도우 ) JetFlash Vault 옵션 ( 윈도우 )... 9 JetFlash Vault 설정... 9 JetFlash Vault

목차 1. 시스템요구사항 암호및힌트설정 ( 윈도우 ) JetFlash Vault 시작하기 ( 윈도우 ) JetFlash Vault 옵션 ( 윈도우 )... 9 JetFlash Vault 설정... 9 JetFlash Vault 사용자매뉴얼 JetFlash Vault 100 ( 버전 1.0) 1 목차 1. 시스템요구사항... 3 2. 암호및힌트설정 ( 윈도우 )... 3 3. JetFlash Vault 시작하기 ( 윈도우 )... 7 4. JetFlash Vault 옵션 ( 윈도우 )... 9 JetFlash Vault 설정... 9 JetFlash Vault 찾아보기... 10 JetFlash

More information

Microsoft PowerPoint - chap06-1Array.ppt

Microsoft PowerPoint - chap06-1Array.ppt 2010-1 학기프로그래밍입문 (1) chapter 06-1 참고자료 배열 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 배열의선언과사용 같은형태의자료형이많이필요할때배열을사용하면효과적이다. 배열의선언 배열의사용 배열과반복문 배열의초기화 유연성있게배열다루기 한빛미디어

More information

비주얼프로그래밍 (Visual Basic .NET)

비주얼프로그래밍 (Visual Basic .NET) 비주얼프로그래밍 (Visual Basic.NET) 2016-09-05 (02 주차 ) 홍명덕 Artificial Intelligence Lab. http://ailab.inha.ac.kr 1 장 ~ 5 장범위요약 2 VB.NET 다운로드 https://www.visualstudio.com/ 3 4 개발환경 5 VB.NET 단축키 VB.NET 기본개념 (1)

More information

OCW_C언어 기초

OCW_C언어 기초 초보프로그래머를위한 C 언어기초 4 장 : 연산자 2012 년 이은주 학습목표 수식의개념과연산자및피연산자에대한학습 C 의알아보기 연산자의우선순위와결합방향에대하여알아보기 2 목차 연산자의기본개념 수식 연산자와피연산자 산술연산자 / 증감연산자 관계연산자 / 논리연산자 비트연산자 / 대입연산자연산자의우선순위와결합방향 조건연산자 / 형변환연산자 연산자의우선순위 연산자의결합방향

More information

쓰리 핸드(삼침) 요일 및 2405 요일 시간, 및 요일 설정 1. 용두를 2의 위치로 당기고 반시계방향으로 돌려 전날로 를 설정합니다. 2. 용두를 시계방향으로 돌려 전날로 요일을 설정합니다. 3. 용두를 3의 위치로 당기고 오늘 와 요일이 표시될 때까지 시계방향으로

쓰리 핸드(삼침) 요일 및 2405 요일 시간, 및 요일 설정 1. 용두를 2의 위치로 당기고 반시계방향으로 돌려 전날로 를 설정합니다. 2. 용두를 시계방향으로 돌려 전날로 요일을 설정합니다. 3. 용두를 3의 위치로 당기고 오늘 와 요일이 표시될 때까지 시계방향으로 한국어 표준 설정안내 서브 초침 시간 및 설정 1. 용두를 2의 위치로 뽑아냅니다. 2. 용두를 시계방향 또는 반시계방향으로 돌려(모델에 따라 다름) 를 전날로 설정합니다. 3. 용두를 3의 위치로 당기고 현재 가 표시될 때까지 시계방향으로 돌립니다. 4. 용두를 계속 돌려 정확한 오전/오후 시간을 설정합니다. 5. 용두를 1의 위치로 되돌립니다. 169 쓰리

More information

사용설명서를 읽기 전에 ios용 아이디스 모바일은 네트워크 연결을 통해 ios 플랫폼 기반의 모바일 기기(iOS 버전 6.0 이상의 ipod Touch, iphone 또는 ipad)에서 장치(DVR, 네트워크 비디오 서버 및 네트워크 카메라)에 접속하여 원격으로 영상을

사용설명서를 읽기 전에 ios용 아이디스 모바일은 네트워크 연결을 통해 ios 플랫폼 기반의 모바일 기기(iOS 버전 6.0 이상의 ipod Touch, iphone 또는 ipad)에서 장치(DVR, 네트워크 비디오 서버 및 네트워크 카메라)에 접속하여 원격으로 영상을 IDIS Mobile ios 사용설명서 Powered by 사용설명서를 읽기 전에 ios용 아이디스 모바일은 네트워크 연결을 통해 ios 플랫폼 기반의 모바일 기기(iOS 버전 6.0 이상의 ipod Touch, iphone 또는 ipad)에서 장치(DVR, 네트워크 비디오 서버 및 네트워크 카메라)에 접속하여 원격으로 영상을 감시할 수 있는 프로그램입니다.

More information

3 권 정답

3 권 정답 3 권 정답 엄마표학습생활기록부 엄마가선생님이되어아이의학업성취도를평가해주세요. 021 계획준수 학습기간 월일 ~ 월일 원리이해 시간단축 정확성 종합의견 022 계획준수 학습기간 월일 ~ 월일 원리이해 시간단축 정확성 종합의견 023 계획준수 학습기간 월일 ~ 월일 원리이해 시간단축 정확성 종합의견 024 계획준수 학습기간 월일 ~ 월일 원리이해 시간단속 정확성

More information

인쇄하기, 내보내기, 이메일로 문서 보내기

인쇄하기, 내보내기, 이메일로 문서 보내기 저작권 이 문서의 저작권은 본 페이지의 저자 단락에 나열된 기고자들에게 있습니다.(Copyright 2005-2010) GNU General Public License 3 이후 버전, 또는 Creative Commons Attribution License 3.0 이후 버전에 근거하여 배포 및 변경할 수 있습니다. 이 문서에 있는 모든 상표권은 법적 소유자가

More information

untitled

untitled 시스템소프트웨어 : 운영체제, 컴파일러, 어셈블러, 링커, 로더, 프로그래밍도구등 소프트웨어 응용소프트웨어 : 워드프로세서, 스프레드쉬트, 그래픽프로그램, 미디어재생기등 1 n ( x + x +... + ) 1 2 x n 00001111 10111111 01000101 11111000 00001111 10111111 01001101 11111000

More information

System Recovery 사용자 매뉴얼

System Recovery 사용자 매뉴얼 Samsung OS Recovery Solution 을이용하여간편하게 MagicInfo 의네트워크를설정하고시스템을백업및복원할수있습니다. 시스템시작시리모컨의 - 버튼이나키보드의 F3 키를연속해서누르면복구모드로진입한후 Samsung OS Recovery Solution 이실행됩니다. Samsung OS Recovery Solution 은키보드와리모컨을사용하여조작할수있습니다.

More information

Oracle VM VirtualBox 설치 VirtualBox에서 가상머신 설치 가상머신에 Ubuntu 설치

Oracle VM VirtualBox 설치 VirtualBox에서 가상머신 설치 가상머신에 Ubuntu 설치 Oracle VM VirtualBox 설치 VirtualBox에서 가상머신 설치 가상머신에 Ubuntu 설치 VirtualBox를 사용하기 위해서는 일단 https://www.virtualbox.org/wiki/downloads 사이트에서 윈도우용 버추얼박스 설치화일을 다운로드 해야합니다. Ubuntu를 사용하기 위해서는 Ubuntu 디스크 이미지 화일을 다운로드

More information

Windows 8에서 BioStar 1 설치하기

Windows 8에서 BioStar 1 설치하기 / 콘텐츠 테이블... PC에 BioStar 1 설치 방법... Microsoft SQL Server 2012 Express 설치하기... Running SQL 2012 Express Studio... DBSetup.exe 설정하기... BioStar 서버와 클라이언트 시작하기... 1 1 2 2 6 7 1/11 BioStar 1, Windows 8 BioStar

More information

Microsoft PowerPoint - chap06-2pointer.ppt

Microsoft PowerPoint - chap06-2pointer.ppt 2010-1 학기프로그래밍입문 (1) chapter 06-2 참고자료 포인터 박종혁 Tel: 970-6702 Email: jhpark1@snut.ac.kr 한빛미디어 출처 : 뇌를자극하는 C프로그래밍, 한빛미디어 -1- 포인터의정의와사용 변수를선언하는것은메모리에기억공간을할당하는것이며할당된이후에는변수명으로그기억공간을사용한다. 할당된기억공간을사용하는방법에는변수명외에메모리의실제주소값을사용하는것이다.

More information

캘크 시작하기

캘크 시작하기 저작권 이 문서의 저작권은 본 페이지의 저자 단락에 나열된 기고자들에게 있습니다(Copyright 2005 2008). GNU General Public License 버전 3 이후 버전, 또는 Creative Commons Attribution License 버전 3 이후 버전에 근거하여 배포 및 변경할 수 있습니다. 이 문서에 있는 모든 상표권은 법적 소유자가

More information

Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx

Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx To be an Android Expert 문양세강원대학교 IT 대학컴퓨터학부 개발환경구조및설치순서 JDK 설치 Eclipse 설치 안드로이드 SDK 설치 ADT(Androd Development Tools) 설치 AVD(Android Virtual Device) 생성 Hello Android! 2 Eclipse (IDE) JDK Android SDK with

More information

사용설명서를 읽기 전에 안드로이드(Android)용 아이디스 모바일은 네트워크 연결을 통해 안드로이드 플랫폼 기반의 모바일 기기에서 장치 (DVR, NVR, 네트워크 비디오 서버, 네트워크 카메라) 에 접속하여 원격으로 영상을 감시할 수 있는 프로그램입니다. 장치의 사

사용설명서를 읽기 전에 안드로이드(Android)용 아이디스 모바일은 네트워크 연결을 통해 안드로이드 플랫폼 기반의 모바일 기기에서 장치 (DVR, NVR, 네트워크 비디오 서버, 네트워크 카메라) 에 접속하여 원격으로 영상을 감시할 수 있는 프로그램입니다. 장치의 사 IDIS Mobile Android 사용설명서 Powered by 사용설명서를 읽기 전에 안드로이드(Android)용 아이디스 모바일은 네트워크 연결을 통해 안드로이드 플랫폼 기반의 모바일 기기에서 장치 (DVR, NVR, 네트워크 비디오 서버, 네트워크 카메라) 에 접속하여 원격으로 영상을 감시할 수 있는 프로그램입니다. 장치의 사양 및 버전에 따라 일부

More information

Infinity(∞) Strategy

Infinity(∞) Strategy 반복제어 표월성 passwd74@cherub.sungkyul.edu 개요 for() 문 break문과 continue문 while문 do-while문 for() 문 for() 문형식 for( 표현식1; 표현식2; 표현식3) 여러문장들 ; 표현식 1 : 초기화 (1 번만수행 ) 표현식 2 : 반복문수행조건 ( 없으면무한반복 ) 표현식 3 : 반복문수행횟수 for()

More information

MF5900 Series MF Driver Installation Guide

MF5900 Series MF Driver Installation Guide 한국어 MF 드라이버설치설명서 사용자소프트웨어 CD-ROM................................................ 1.................................................................... 1..............................................................................

More information

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp");

다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) <% RequestDispatcher dispatcher = request.getrequestdispatcher( 실행할페이지.jsp); 다른 JSP 페이지호출 forward() 메서드 - 하나의 JSP 페이지실행이끝나고다른 JSP 페이지를호출할때사용한다. 예 ) RequestDispatcher dispatcher = request.getrequestdispatcher(" 실행할페이지.jsp"); dispatcher.forward(request, response); - 위의예에서와같이 RequestDispatcher

More information

3 Contents 8p 10p 14p 20p 34p 36p 40p 46P 48p 50p 54p 58p 생명다양성재단 영물이라는 타이틀에 정 없어 보이는 고양이, 날카롭게 느껴지시나요? 얼음이 따뜻함에 녹듯이, 사람에게 경계심 많은 길고양이도 곁을 내어주면 얼음 녹듯이 당신을 바라봅니다. 길 위에 사는 생명체라 하여 함부로 대하지 말아주세요. 싫으면 외면해주세요.

More information

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

학습목차 2.1 다차원배열이란 차원배열의주소와값의참조 - Part2- 제 2 장다차원배열이란무엇인가 학습목차 2.1 다차원배열이란 2. 2 2 차원배열의주소와값의참조 2.1 다차원배열이란 2.1 다차원배열이란 (1/14) 다차원배열 : 2 차원이상의배열을의미 1 차원배열과다차원배열의비교 1 차원배열 int array [12] 행 2 차원배열 int array [4][3] 행 열 3 차원배열 int array [2][2][3]

More information

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Function) 1. 함수의개념 입력에대해적절한출력을발생시켜주는것 내가 ( 프로그래머 ) 작성한명령문을연산, 처리, 실행해주는부분 ( 모듈 ) 자체적으로실행되지않으며,

More information

Microsoft Word - Crackme 15 from Simples 문제 풀이_by JohnGang.docx

Microsoft Word - Crackme 15 from Simples 문제 풀이_by JohnGang.docx CrackMe 15.exe (in Simples) 문제풀이 동명대학교정보보호동아리 THINK www.mainthink.net 강동현 Blog: johnghb.tistory.com e-mail: cari2052@gmail.com 1 목차 : 1. 문제설명및기본분석 --------------------------- P. 03 2 상세분석 ---------------------------

More information

학습목표 배열에대해서안다. 언어통합질의 (LINQ) 에대해서안다. 2

학습목표 배열에대해서안다. 언어통합질의 (LINQ) 에대해서안다. 2 학습목표 배열에대해서안다. 언어통합질의 (LINQ) 에대해서안다. 2 7.1 배열 7.2 언어통합질의 (LINQ) 3 배열 - 필요성 100 명의이름과국어, 영어, 수학과목에대한각각의합계와평균계산을위한프로그램? name_1 name_2 name_100 kuk_1 kuk_2 kuk_100? young_1 4 배열 -? name_1 name_2 name_100

More information

SBR-100S User Manual

SBR-100S User Manual ( 1 / 13 ) SBR-100S 모델에 대한 사용자 펌웨어 업그레이드 방법을 안내해 드립니다. SBR-100S 는 신규 펌웨어가 있을시 FOTA(자동업데이트) 기능을 통하여 자동 업그레이드가 되며, 필요시 사용자가 신규 펌웨어를 다운받아 수동으로 업그레이드 할 수 있습니다. 1. 준비하기 1.1 연결 장치 준비 펌웨어 업그레이드를 위해서는 SBR-100S

More information

Cubase AI installation guide

Cubase AI installation guide Steinberg Cubase AI 프로그램 및라이선스설치가이드 (2018. 1. 31) Ver. 1.0.0 1 목차 1. 계정만들기 2. Download access code 등록및 Activation Code 발급 3. Steinberg Download Assistant 다운로드및설치 4. Cubase AI 다운로드및설치 5. 라이선스활성화 (Activation)

More information

MF Driver Installation Guide

MF Driver Installation Guide Korean MF 드라이버 설치설명서 사용자 소프트웨어 CD-ROM... 드라이버 및 소프트웨어 정보...1 지원되는 운영 체제...1 MF 드라이버 및 MF Toolbox 설치... [쉬운 설치]를 사용한 설치...2 [사용자 정의 설치]를 사용한 설치...10 USB 케이블 연결(USB를 이용해 연결하는 경우만)...20 설치 결과 확인...21 온라인

More information

슬라이드 1

슬라이드 1 CCS v4 사용자안내서 CCSv4 사용자용예제따라하기안내 0. CCS v4.x 사용자 - 준비사항 예제에사용된 CCS 버전은 V4..3 버전이며, CCS 버전에따라메뉴화면이조금다를수있습니다. 예제실습전준비하기 처음시작하기예제모음집 CD 를 PC 의 CD-ROM 드라이브에삽입합니다. 아래안내에따라, 예제소스와헤더파일들을 PC 에설치합니다. CD 드라이브 \SW\TIDCS\TIDCS_DSP80x.exe

More information

JAVA 플랫폼 개발 환경 구축 및 활용

JAVA 플랫폼 개발 환경 구축 및 활용 페이지 1 / 9 작성일 : 2011/7/30 JDK Download Eclipse IDE 구축및홗용 For Java JDK Download JDK Setting the Path Eclipse Download Eclipse Font Setting Eclipse API Setting > 1. http://www.oracle.com/index.html

More information

Microsoft PowerPoint - chap04-연산자.pptx

Microsoft PowerPoint - chap04-연산자.pptx int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); } 1 학습목표 수식의 개념과 연산자, 피연산자에 대해서 알아본다. C의 를 알아본다. 연산자의 우선 순위와 결합 방향에

More information

슬라이드 1

슬라이드 1 Pairwise Tool & Pairwise Test NuSRS 200511305 김성규 200511306 김성훈 200614164 김효석 200611124 유성배 200518036 곡진화 2 PICT Pairwise Tool - PICT Microsoft 의 Command-line 기반의 Free Software www.pairwise.org 에서다운로드후설치

More information

6. 설치가시작되는동안 USB 드라이버가자동으로로드됩니다. USB 드라이버가성공적으로로드되면 Setup is starting( 설치가시작되는중 )... 화면이표시됩니다. 7. 화면지침에따라 Windows 7 설치를완료합니다. 방법 2: 수정된 Windows 7 ISO

6. 설치가시작되는동안 USB 드라이버가자동으로로드됩니다. USB 드라이버가성공적으로로드되면 Setup is starting( 설치가시작되는중 )... 화면이표시됩니다. 7. 화면지침에따라 Windows 7 설치를완료합니다. 방법 2: 수정된 Windows 7 ISO Windows 7 설치및 PCIE RAID 설정정보 DK173 초판 11월 2016 A. Windows 7 및 USB 드라이버설치 칩셋사양에따라 Windows 7 설치중에 USB 키보드 / 마우스를사용하려면시스템에서 USB 드라이버를사전로드해야합니다. 이절에서는 USB 드라이버사전로드방법과 Windows 7 설치방법에대해서설명합니다. 방법 1: SATA ODD

More information

PowerPoint Presentation

PowerPoint Presentation 자바프로그래밍 1 배열 손시운 ssw5176@kangwon.ac.kr 배열이필요한이유 예를들어서학생이 10 명이있고성적의평균을계산한다고가정하자. 학생 이 10 명이므로 10 개의변수가필요하다. int s0, s1, s2, s3, s4, s5, s6, s7, s8, s9; 하지만만약학생이 100 명이라면어떻게해야하는가? int s0, s1, s2, s3, s4,

More information

Windows Server 2012

Windows Server  2012 Windows Server 2012 Shared Nothing Live Migration Shared Nothing Live Migration 은 SMB Live Migration 방식과다른점은 VM 데이터파일의위치입니다. Shared Nothing Live Migration 방식은 Hyper-V 호스트의로컬디스크에 VM 데이터파일이위치합니다. 반면에, SMB

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 Chapter 03 일단짜보는그럴듯한 C 프로그램... 1. 프로그램작성순서복습 2. 주석 3. scanf_s( ) 맛보기 1. 프로그램작성순서복습 프로그래밍작성순서요약 프로젝트만들기 : 소스파일보다프로젝트를먼저생성해야함 코딩 : C 컴파일러가알아들을수있는형식으로문서작성 빌드 : 컴파일과링크를합친개념 컴파일 : 소스를컴퓨터가이해하는오브젝트파일로변환 링크 :

More information

Tcl의 문법

Tcl의 문법 월, 01/28/2008-20:50 admin 은 상당히 단순하고, 커맨드의 인자를 스페이스(공백)로 단락을 짓고 나열하는 정도입니다. command arg1 arg2 arg3... 한행에 여러개의 커맨드를 나열할때는, 세미콜론( ; )으로 구분을 짓습니다. command arg1 arg2 arg3... ; command arg1 arg2 arg3... 한행이

More information

프로그래밍개론및실습 2015 년 2 학기프로그래밍개론및실습과목으로본내용은강의교재인생능출판사, 두근두근 C 언어수업, 천인국지음을발췌수정하였음

프로그래밍개론및실습 2015 년 2 학기프로그래밍개론및실습과목으로본내용은강의교재인생능출판사, 두근두근 C 언어수업, 천인국지음을발췌수정하였음 프로그래밍개론및실습 2015 년 2 학기프로그래밍개론및실습과목으로본내용은강의교재인생능출판사, 두근두근 C 언어수업, 천인국지음을발췌수정하였음 CHAPTER 9 둘중하나선택하기 관계연산자 두개의피연산자를비교하는연산자 결과값은참 (1) 아니면거짓 (0) x == y x 와 y 의값이같은지비교한다. 관계연산자 연산자 의미 x == y x와 y가같은가? x!= y

More information

Java ...

Java ... 컴퓨터언어 1 Java 제어문 조성일 조건문 : if, switch 어떠한조건을조사하여각기다른명령을실행 if 문, switch 문 if 문 if - else 문형식 if 문형식 if ( 조건식 ) { 명령문 1; 명령문 2;... if ( 조건식 ) { 명령문 1; 명령문 2;... else { 명령문 a; 명령문 b;... 예제 1 정수를입력받아짝수와홀수를판별하는프로그램을작성하시오.

More information

Microsoft PowerPoint - MonthlyInsighT-2018_9월%20v1[1]

Microsoft PowerPoint - MonthlyInsighT-2018_9월%20v1[1] * 넋두리 * 저는주식을잘한다고생각합니다. 정확하게는주식감각이있다는것이맞겠죠? 예전에애널리스트가개인주식을할수있었을때수익률은엄청났었습니다 @^^@. IT 먼쓸리가 4주년이되었습니다. 2014년 9월부터시작하였으니지난달로만 4년이되었습니다. 4년간누적수익률이최선호주는 +116.0%, 차선호주는 -29.9% 입니다. 롱-숏으로계산하면 +145.9% 이니나쁘지않은숫자입니다.

More information

설계란 무엇인가?

설계란 무엇인가? 금오공과대학교 C++ 프로그래밍 jhhwang@kumoh.ac.kr 컴퓨터공학과 황준하 6 강. 함수와배열, 포인터, 참조목차 함수와포인터 주소값의매개변수전달 주소의반환 함수와배열 배열의매개변수전달 함수와참조 참조에의한매개변수전달 참조의반환 프로그래밍연습 1 /15 6 강. 함수와배열, 포인터, 참조함수와포인터 C++ 매개변수전달방법 값에의한전달 : 변수값,

More information

버퍼오버플로우-왕기초편 10. 메모리를 Hex dump 뜨기 앞서우리는버퍼오버플로우로인해리턴어드레스 (return address) 가변조될수있음을알았습니다. 이제곧리턴어드레스를원하는값으로변경하는실습을해볼것인데요, 그전에앞서, 메모리에저장된값들을살펴보는방법에대해배워보겠습

버퍼오버플로우-왕기초편 10. 메모리를 Hex dump 뜨기 앞서우리는버퍼오버플로우로인해리턴어드레스 (return address) 가변조될수있음을알았습니다. 이제곧리턴어드레스를원하는값으로변경하는실습을해볼것인데요, 그전에앞서, 메모리에저장된값들을살펴보는방법에대해배워보겠습 앞서우리는버퍼오버플로우로인해리턴어드레스 (return address) 가변조될수있음을알았습니다. 이제곧리턴어드레스를원하는값으로변경하는실습을해볼것인데요, 그전에앞서, 메모리에저장된값들을살펴보는방법에대해배워보겠습니다. 여러분모두 Windows 에서 hex editor(hex dump, hex viewer) 라는것을사용해보셨을겁니다. 바로바이너리파일을 16 진수

More information

학습목표 텍스트파일을다룰수있다. 스트림읽기, 쓰기를안다. 2

학습목표 텍스트파일을다룰수있다. 스트림읽기, 쓰기를안다. 2 학습목표 텍스트파일을다룰수있다. 스트림읽기, 쓰기를안다. 2 8.1 텍스트파일다루기 8.2 스트림읽기, 쓰기 3 텍스트파일 문자, 숫자, 단어들이하나이상의줄로구성 파일확장명 :.txt,.ini,.log, OpenFileDialog 컨트롤 : 파일의위치를사용자가쉽게선택가능 Filter 속성 : 파일의형식선택가능 ShowDialog 메서드 : 열기대화상자 FileName

More information

<C6F7C6AEB6F5B1B3C0E72E687770>

<C6F7C6AEB6F5B1B3C0E72E687770> 1-1. 포트란 언어의 역사 1 1-2. 포트란 언어의 실행 단계 1 1-3. 문제해결의 순서 2 1-4. Overview of Fortran 2 1-5. Use of Columns in Fortran 3 1-6. INTEGER, REAL, and CHARACTER Data Types 4 1-7. Arithmetic Expressions 4 1-8. 포트란에서의

More information

MVVM 패턴의 이해

MVVM 패턴의 이해 Seo Hero 요약 joshua227.tistory. 2014 년 5 월 13 일 이문서는 WPF 어플리케이션개발에필요한 MVVM 패턴에대한내용을담고있다. 1. Model-View-ViewModel 1.1 기본개념 MVVM 모델은 MVC(Model-View-Contorl) 패턴에서출발했다. MVC 패턴은전체 project 를 model, view 로나누어

More information

<4D F736F F F696E74202D20C1A632C0E520C7C1B7CEB1D7B7A5B0B3B9DFB0FAC1A4>

<4D F736F F F696E74202D20C1A632C0E520C7C1B7CEB1D7B7A5B0B3B9DFB0FAC1A4> 쉽게풀어쓴 C 언어 Express 제 2 장프로그램개발과정 통합개발환경 통합개발환경 (IDE: integrated development environment) 에디터 + 컴파일러 + 디버거 Visual C++: 이클립스 (eclipse): Dev-C++: 마이크로소프트제작 오픈소스프로젝트 오픈소스프로젝트 통합개발환경의종류 비주얼 C++(Visual C++)

More information

윈도우즈 프로그래밍(1)

윈도우즈 프로그래밍(1) 기본컨트롤 (1) 윈도우즈프로그래밍 (1) ( 신흥대학교컴퓨터정보계열 ) 2/33 Contents 학습목표 기본컨트롤에서레이블컨트롤, 텍스트박스컨트롤, 프레임컨트롤, 옵션버튼컨트롤, 체크박스컨트롤을이해하고메시지박스를활용할수있다. 내용 레이블컨트롤 텍스트박스컨트롤 프레임컨트롤 옵션버튼컨트롤 체크박스컨트롤 메시지박스함수 3/33 기본컨트롤 기본컨트롤 : 비주얼베이직통합개발환경의도구상자에포함되어있는컨트롤로서화면디

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 System Software Experiment 1 Lecture 5 - Array Spring 2019 Hwansoo Han (hhan@skku.edu) Advanced Research on Compilers and Systems, ARCS LAB Sungkyunkwan University http://arcs.skku.edu/ 1 배열 (Array) 동일한타입의데이터가여러개저장되어있는저장장소

More information

목차 윈도우드라이버 1. 매뉴얼안내 운영체제 (OS) 환경 윈도우드라이버준비 윈도우드라이버설치 Windows XP/Server 2003 에서설치 Serial 또는 Parallel 포트의경우.

목차 윈도우드라이버 1. 매뉴얼안내 운영체제 (OS) 환경 윈도우드라이버준비 윈도우드라이버설치 Windows XP/Server 2003 에서설치 Serial 또는 Parallel 포트의경우. 소프트웨어매뉴얼 윈도우드라이버 Rev. 3.03 SLP-TX220 / TX223 SLP-TX420 / TX423 SLP-TX400 / TX403 SLP-DX220 / DX223 SLP-DX420 / DX423 SLP-DL410 / DL413 SLP-T400 / T403 SLP-T400R / T403R SLP-D220 / D223 SLP-D420 / D423

More information

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과 임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과 System call table and linkage v Ref. http://www.ibm.com/developerworks/linux/library/l-system-calls/ - 2 - Young-Jin Kim SYSCALL_DEFINE 함수

More information

쉽게

쉽게 Power Java 제 4 장자바프로그래밍기초 이번장에서학습할내용 자바프로그램에대한기초사항을학습 자세한내용들은추후에. Hello.java 프로그램 주석 주석 (comment): 프로그램에대한설명을적어넣은것 3 가지타입의주석 클래스 클래스 (class): 객체를만드는설계도 ( 추후에학습 ) 자바프로그램은클래스들로구성된다. 그림 4-1. 자바프로그램의구조 클래스정의

More information

설치 순서 Windows 98 SE/Me/2000/XP 1 PC를 켜고 Windows를 시작합니다. 아직 컴퓨터에 프린터를 연결하지 마십시오. 2 PC에 P-S100 CD-ROM(프 린터 드라이버)을 삽입합니다. 3 설치 프로그램을 시작합니다. q CD-ROM의 PS1

설치 순서 Windows 98 SE/Me/2000/XP 1 PC를 켜고 Windows를 시작합니다. 아직 컴퓨터에 프린터를 연결하지 마십시오. 2 PC에 P-S100 CD-ROM(프 린터 드라이버)을 삽입합니다. 3 설치 프로그램을 시작합니다. q CD-ROM의 PS1 디지털 사진 프린터 P-S100 프린터 드라이버 설치 가이드 사용하는 컴퓨터에 따라 제공된 프린터 드라이버를 설치합니다. 설치 절차 에 대한 자세한 내용은 CD-ROM의 Readme 파일을 참조하십시오. 작동 환경 Windows 호환 모델: IBM PC/AT 및 호환품 운영 체제: Windows 98 SE/Me/2000/XP (Windows 98 SE/Me/2000/XP

More information

<4D F736F F F696E74202D20C1A63036C0E520BCB1C5C3B0FA20B9DDBAB928B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20C1A63036C0E520BCB1C5C3B0FA20B9DDBAB928B0ADC0C729205BC8A3C8AF20B8F0B5E55D> Power Java 제 6 장선택과반복 이번장에서학습할내용 조건문이란? if 문 if, else 문 중첩 if 문 switch 문 break문 continue문 지금까지는문장들이순차적으로실행된다고하였다. 하지만필요에따라서조건이만족되면문장의실행순서를변경할수있는기능이제공된다. 3 가지의제어구조 조건문 문장이실행되는순서에영향을주는문장 조건에따라서여러개의실행경로가운데하나를선택

More information

정부3.0 국민디자인단 운영을 통해 국민과의 소통과 참여로 정책을 함께 만들 수 있었고 그 결과 국민 눈높이에 맞는 다양한 정책 개선안을 도출하며 정책의 완성도를 제고할 수 있었습니다. 또한 서비스디자인 방법론을 각 기관별 정부3.0 과제에 적용하여 국민 관점의 서비스 설계, 정책고객 확대 등 공직사회에 큰 반향을 유도하여 공무원의 일하는 방식을 변화시키고

More information