본문 바로가기

c#19

C# ini 파일 읽기/쓰기 클래스 Application 운영중 임시 데이터를 파일에 저장해야할 일들이 종종 발생하는데 이때 ini가 유용하게 활용된다. C#에서는 kernel32.dll을 import 시켜 Win32의 WritePrivateProfilesString(), GetPrivateProfilesString() 이용하여 제어할 수 있는데, 이참에 class화하여 종종 사용하고자 한다. INI 파일의 구조는 아래와 같으며, 이에 따른 class의 사용법은 아래와 같다. [SECTION] KEY=VALUE //READ string sValue = Common.INIHelper.Read("SECTION_NAME", "KEY", "DEFAULT_VALUE", "FILE_PATH"); //WRITE Common.INIHelper.Write.. 2019. 12. 7.
data to byte로 변환하기 개발중에 획득한 데이터를 byte로 변경해야할 일이 종종 있는데, 그때마다 생각은 잘 안나고 google 검색을 해야하니 이참에 정리해 둔다.상당수 자료를 StackOverflow에서 많이 수집 했다. 이 페이지는 생각나는대로 계속 추가할 생각이다.1) int to byte / byte to intbyte[] bytes = BitConverter.GetBytes(i); int value = BitConverter.ToInt(bytes);2) string to byte | byte to stringbyte[] bytes = Encoding.Default.GetBytes(str); string value = Encoding.Default.GetString(bytes);3) byte reverse (embed.. 2019. 1. 17.
C# delegate 사용법 - 사례2 WinForm 환경에서 C#으로 개발중 스레드 혹은 이벤트 콜백 내에서 화면의 Control에 접근하게 될 경우 아래와 같은 오류가 발생한다.(*'크로스 스레드 작업이 잘못되었습니다.')SerialPort 선언 후 DataReceived 이벤트 핸들러를 등록, SeriaPort 이벤트 핸들러 내에서 스캐너로부터 받은 데이터를 ListBox에 Add 시키는 과정이다. 직접 연결해서 접근할 수 없으니 우회해서 Add 시켜줄 수 밖에 없다. 여기서도 function pointer 즉 delegate가 이용된다.SerialPort objBarcodeScanner = new SerialPort();objBarcodeScanner.PortName = "COM4";objBarcodeScanner.BaudRate = .. 2019. 1. 15.
C# 유효한 생년월일 확인 개요회원으로부터 입력받은 생년월일의 유효성 체크를 위해 정규식을 작성해 보았다.public static bool IsValidBirthday(string inValue) { bool isValidate = false; isValidate = Regex.IsMatch(inValue, "[1-2]{1}[0-9]{3}[0-1]{1}[0-9]{1}[0-3]{1}[0-9]{1}"); return isValidate;}하지만, 단점이 '19800536' 입력할 경우 그대로 통과해 버린다. 문제는 입력받은 생년월일을 이후 DateTime으로 변환시 Exception 문제가 발생했다.그래서 입력 받은 생년월일 'DateTime.TryParseExact()' 통해 한번더 확인했다.using System.Globaliza.. 2019. 1. 11.