반응형

현재 비주얼 베이직으로 간단한 암호화 프로그램 하나 제작 했습니다.


현재 열기/저장 기능은 수행되지 않고, 기능만 넣어 두었습니다.



ASC En'Decoder.exe



문자를 아스키코드로 변환한뒤 설정된 키값으로 가감하여 다시 문자열로 뿌려주는 프로그램입니다.


숨기고 싶은 문자나 글을 해당 프로그램으로 암호화 시켜놓으시고

메모장에 저장해두셨다가 나중에 꺼내 보실때는

복호화할 내용에 넣고, 복호화하기 하면

원래 내용이 보여집니다.


암호화할 내용에 내용을 입력후


F1키 혹은 암/복호화 -> 암호화 탭을 클릭하시면


아래 처럼 뜹니다.


반대로

복호화할 내용에

받값슷닉닥!묵꼭읜!븜록극잇닉닥/

를 입력하고, F2키 혹은 암/복호화 -> 복호화 탭을 클릭하시면



...과연 뭐가 나올까요?

정답을 댓글로 달아주시고, 메일주소 알려주시면

해당 프로그램의 코딩 내용을 전달해 드리겠습니다~!


아, 참고로 복호화 할때 키값은 1입니다.



코딩 내용은 추후 어느정도 시간이 지난 후 포스팅에 공개 하겠습니다 ㅎㅎ

반응형
반응형

오늘은 변수의 심층 이해를 돕는 강좌를 시작하겠습니다.


변수에는 전역변수(Global)와 지역변수(Local)가 있습니다.


사전적의미로 단어로만 보시면


Global 글로벌~ 세계적인; 지구의, 전반적인

Local 로컬~ 지역의


자, 그럼 지역안에서만 쓰는 변수가 지역변수고,

지역과 지역간에도 모두 소통되는 변수가 전역변수라는걸 대강 감이 오시죠?


그렇다면, 지역 변수와

전역변수는 어떻게 규정 되느냐.


비주얼 베이직내에서는

각각의 서브가 있죠?


이 서브들을 하나의 마을이라고 생각해보세요.

그럼 각각

Command1_Click 이란 마을

Command2_Click 이라는 마을

form_Load 라는 마을

Label1_Click 이라는 마을


하지만 이 비주얼베이직 세상에서는 사람이 아니라 '변수'라는 동물이 살고 있어요.

그 마을들 중에

Command1_Click 이라는 마을에

각각 이름 아래와 같은 이름을 가진 변수가 태어났어요 (변수 선언)

Dim Temp_Str As String

Dim Temp_Int As Integer



각각 변수 이름과 각각 개개인이 해야될 역할을 전부 입력해주었죠?


그럼 이 변수라는 동물들이 활동을 하기 시작합니다~!

그런데 변수라는 녀석들은 멍청해서 마을 밖으로 절대 나가려고 하질 않아요.

그러다보니

다른 마을에서는 Temp_Str이라는 녀석과 Temp_Int라는 녀석의 존재를 절대 모르죠.

오로지 Command1_Click 이라는 마을에서만 이 두녀석의 존재를 안다는 것이죠.


이게 바로 지역 변수입니다.


다른 마을에서 관여를 할 수도 없고, 다른 마을로 이전 할 수도 없는 녀석이 지역변수!

오로지 그 마을(Sub)에서만 쓰이고,

그 마을(Sub)가 종료 되면 같이 산화 되어버리죠(값 초기화).


그러면 코딩으로 설명 하면 어떻게 될지 볼까요?



그럼 해당 폼을 실행을 해보면?


우선 Command1 (A확인)을 누르면



Dim Temp_Str As String

Dim Temp_Int As Integer

Temp_Str = "안녕하세요 저는 지역변수입니다."

Temp_Int = "1234"

이녀석들이 실행 되겠죠?

그럼 변수도 선언되었고, 각 변수에 값도 들어가있는 상황입니다.


그다음에 Command2 (B확인)을 누르면


 Label1.Caption = Temp_Str

이 명령이 실행 되겠죠?


그러면, 예상되는 값은

label1의 Caption 값이 "안녕하세요 저는 지역변수입니다." 가 나와야 겠죠?


하지만 결과는 아무것도 없는 ""가 뜹니다. 비어있는게 뜨죠.



이유는 아까 말씀드렸다 시피,


서브안에서 선언이 된 변수는 서브가 종료되면('End Sub') 산화되어 없어집니다.

다른 서브에서 관여 할 수가 없는거죠.




한번더 보강해서 설명을 하자면

상위 계층에서 선언된 변수는 그 하위 계층에서도 사용이 가능합니다.(물론 서브가 종료되기 전까지.)

Form1에서 선언된 지역변수는 Form2에서는 사용이 불가능합니다.

즉, 같은 계층을 포함한 하위 계층에서 선언된 변수는 다른데에서 사용을 할 수 없습니다.


어렵나요?


그럼 마을을 예로 설명드리면


나라에서 만든 법은 각각 도, 시, 마을들에게 전파되어 법으로 인정받고 사용이 가능하지요?

그럼 '도'안에서 만들어진 법은 '시', '동', 마을에 전파되어 사용을 할 수 있습니다.

그럼 마을에서 만들어진 법은 나라 전체에 통용이 될까요?

안되죠.

우물 안에서만 쓰는 법(변수)라는 말입니다.


전체적으로 통용이 되려면 전역변수로 선언을 하든지,

아니면 최상위 계층에서 선언을 하게되면 모든 서브에서 사용이 가능하게 됩니다!


이해 하셨나요?


자, 그럼 한번에 전역 변수와 지역변수에 대해 설명을 드렸죠?


그럼 위 코딩에서 제대로된 코딩을 하려면 폼자체가 Command1과 Command2보다 높은 상위계층이니까

아래 처럼 코딩을 하면 제대로 되겠죠



한번 테스트 해보세요~!


그리고 이번 강의에서는 문제를 하나 내겠습니다.


아, 그전에

'Msgbox' 라는 함수가 있는데,

간단하게 이번강의에서 사용방법만 설명하자면


Msgbox ("메세지내용입력")

이렇게 입력하시고 실행해보시면


폼이 로드될때 메세지창이 이렇게 뜹니다.


물론 Command1_Click 서브에 넣게 되면

커맨드버튼1을 클릭했을때 위 메세지가 뜨겠지요?


그럼 문제입니다.



텍스트 박스를 하나와

커맨드 버튼 하나를 만드세요


그 다음에 텍스트 박스에 숫자를 입력하고 커맨드 버튼을 누르면

메세지박스에 해당 텍스트 박스에 입력되었던 문자열이 출력되게 해보세요!

반응형

+ Recent posts