일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- flutter
- atmega328
- Pointer
- Overloading
- Contour
- Encapusulation
- java
- preprocessing
- Unity
- APP
- UNO
- Barcode
- public
- stream
- digitalRead
- length
- Class
- mfc
- parameter
- wpf
- memory
- inheritance
- Android
- SERIAL
- Binary
- Read
- compare
- file access
- aduino
- sensor
- Today
- Total
목록C#, WF, WPF(.NET) (38)
폴크(FOLC)
# WPF 를 이용하는 과정에서 HDD 에 존재하는 파일 ( binary format ) 제어 > Save, Load 형태 - List 형태 이용 > exe 파일 위치에 test.dat 파일 생성 # 소스 코드 using System.Runtime.Serialization.Formatters.Binary; public class BINformat { [Serializable] struct Data { public string key; public string value; public Data(string _key, string _value) { key= _key; value= _value; } } public void WriteReadTest() { string path = System.Reflectio..
# WPF 를 이용하는 과정에서 HDD 에 존재하는 파일 ( ini format ) 제어 > Save, Load 형태 - DllImport("kernel32") 이용 > exe 파일 위치에 test.ini 파일 생성 # 소스 코드 using System.Runtime.InteropServices; public class INIformat { DllImport("kernel32")] private static extern long WritePrivateProfileString(string section, string key, string val, string filepath); DllImport("kernel32")] private static extern int GetPrivateProfileString..
# Main 화면에 표시되는 영역의 정보를 페이지 단위로 변경 > 1개 Category ROI 안에 N개 Category Page 로 구성 > Page1, Page2, Page3, ... # Main 화면에서 각 페이지를 선택하여 화면에 표시 > xaml 파일에 3개의 버튼을 생성하고 각 버튼에 Event 를 설정한다. # 소스 코드 ( Form1.cs ) private void Button1_Click(object sender, EventArgs e) { for(int i = 0; i < this.Panel.Controls.Count; ++i) { this.Panel.Controls[i].Hide(); } Page1 form = new Page1(); form.TopLevel = false; this...
# Main 화면에 표시되는 영역의 정보를 페이지 단위로 변경 > 1개 Category ROI 안에 N개 Category Page 로 구성 > Page1, Page2, Page3, ... # Main 화면에서 각 페이지를 선택하여 화면에 표시 > xaml 파일에 3개의 버튼을 생성하고 각 버튼에 Event 를 설정한다. # 소스 코드 ( MainWindow.xaml ) # 소스 코드 ( MainWindow.xaml.cs ) private void Button_Click_1(object sender, RoutedEventArgs e) { PageHome.Source = new Uri("NaviPage\\Page1.xaml", UriKind.Relative); } private void Button_Clic..
# 데이터를 수집하는 과정(Selenium 이용)에서 WebPage 상태를 그대로 캡처해서 파일로 저장 # 옵션 설정 확인 > ChromeOptions 에서 AddArgument("--start-maximized"); 추가 > ChromeOptions 에서 AddArgument("--start-fullscreen"); 추가 - 데이터 화면만 표시되도록 하기 위함. > ChromeOptions 에서 AddArgument("headless"); 제거 - headless 를 사용하게 되면 WebPage 가 전체 화면으로 표시되지 않고 scroll 에 의해서 가려지는 현상 있음 # 소스 코드 public void ScreenshotFromUrlPage(ChromeDriver driver) { try { Stri..
# PictureBox 를 추가한다. > Name 을 pictureBox로 설정한다. # pictureBox 의 위치를 Form1 에 원하는 위치로 옮겨 놓는다. > 이미지 파일 LOAD 를 위해서 버튼 을 추가한다. # Open 버튼에 이미지 파일을 연동 시킨다. private void buttonOpenImage_Click(object sender, EventArgs e) { OpenFileDialog ofd = new OpenFileDialog(); if(ofd.ShowDialog() == DialogResult.OK) { pictureBox.Image = Bitmap.FromFile(ofd.FileName); } } # 이미지 파일을 선택하고 화면에 표시됨을 확인한다. > 이미지 파일 상태 그대로..
1. Visual Studio 사이트 검색 2. Visual Studio 사이트 진입 3. Download Visual Studio - Community 버전(2015 이상) 클릭 4. Visual Studio Installer 를 설치하고 개발 환경을 선택한다. > .NET 데스크톱 개발 5. 설치 끝! # 부가적인 기능이나 개발 환경을 추가 할때는 "확장 및 업데이트" 메뉴를 이용한다.
# 아파치의 오픈소스 라이브러리이다. > Java, C++, .NET 등 다양한 언어와 플랫폼을 지원한다. > 파일, 콘솔, DB로 출력할 수 있고 날짜, 파일 크기마다 생성가능하다. # 적용 방법 > NuGet 에서 "log4net" 검색 후 설치(download) # 환경 설정 > 환경설정을 code level 로 작성할 수도 있고 xml 파일을 연결해서 사용 가능하다. > 솔루션 탐색기에 추가 - 출력 디렉토리에 복사 ( 항상 복사 ) # source code / 로그 작성자를 활용하는 영역 > Class 단위 또는 포함 관계에 있는 Class 까지 운용 가능 # source code > using log4net.Config; > > namespace WindowsFormsApp1 { > publi..
# xls 파일에 Local Storage 에 있는 Image 를 Load 해서 추가한다. > 추가하는 이미지의 크기를 파라미터로 입력할 수 있다. # 관련 소스 코드 > using Excel = Microsoft.Office.Interop.Excel; > Excel.Range PositionXY = (Excel.Range)workSheet.Cells[Row, Col]; > workSheet.Shapes.AddPicture(strSaveFileFullPath, Microsoft.Office.Core.MsoTriState.msoFalse, Microsoft.Office.Core.MsoTriState.msoTrue, PositionXY.Left, PositionXY.Top, 100, 100);
# web site 에 존재하는 Image 를 Local Storage 에 저장하는 방법 > http 방식 이용 # 관련 소스 코드 > using System.Net; > HttpWebRequest REQ = (HttpWebRequest)WebRequest.Create(cover_image_full_path); > HttpWebResponse RES = (HttpWebResponse)request.GetResponse(); > bool bImage = RES.ContentType.EndsWith("image/jpeg", StringComparison.OrdinalIgnoreCase); > if (bImage) > { > using (Stream inputStream = response.GetRespons..
# xls 파일에 Local Storage 에 있는 Image 를 Load 해서 추가 하려면 Picture 형태의 정보를 이용한다. > 추가하는 이미지의 크기를 변경할 수 있다. ( LockAspectRatio ) # 관련 소스 코드 > using Excel = Microsoft.Office.Interop.Excel; > Excel.Range PositionXY = (Excel.Range)workSheet.Cells[Row, Col]; > Excel.Pictures excelPictures = workSheet.Pictures(Type.Missing) as Excel.Pictures; > Excel.Picture pictureInfo = excelPictures.Insert(strFilePath, Sys..
# 최소화 버튼을 눌렀을 때 프로그램을 트레이 아이콘 형태로 축소 시켜서 가동시키는 방법 >>> 다시 요청하면 윈도우상에 원래 크기로 프로그램을 표시한다. # 공용 컨트롤 에서 NotifyIcon 을 검색 후 선택하여 리소스 화면에 끌어놓는다. 그리고 이름을 TrayIcon 으로 변경하고 Text 에는 표시되는 이름이므로 Application 이름을 기록한다. >>> 추가적으로 Icon 도 변경 가능하고 ContextMenu 도 연결 가능한다. # 화면이 축소되는 상황에서 TrayIcon 으로 전환하기 위해서 resize 이벤트 함수를 생성한다. private void NotifyResizeTrayIcon(object sender, EventArgs e) { if (this.WindowState == F..
# Excel 파일로 데이터를 연동 > Excel 관련 Reference 를 연결시키면 파일 저장 및 열기를 손 쉽게 진행 한다. # 솔루션 탐색기 - 참조 - COM - Excel 를 검색 > 설치되어있는 Excel 버전에 따라서 Object Library 번호가 다르다. # using Excel = Microsoft.Office.Interop.Excel; # SaveFileDialog saveFile = new SaveFileDialog(); > saveFile.Filter = "Excel Files|*.xls"; > saveFile.Title = "Save Excel File"; > if (saveFile.ShowDialog() == DialogResult.OK) { Excel.Application..
# 크롤링(Crawling) / 스크레이핑(Scraping) 은 웹에 노출된 데이터를 가져와서 특정한 규칙 또는 위치의 데이터를 추출한다. # 전용 소프트웨어를 크롤러(crawler)라고 한다. # 스파이더(spider), 봇(bot)과 같은 지능형 검색엔진들도 크롤링 기법을 많이 이용한다. # 미리 입력된 방식에 따라 끊임없이 새로운 웹 페이지를 찾고 찾은 결과를 이용해 새로운 정보에 색인을 추가 1. Selenium 설치한다. > Visual Studio 에서 메뉴 - 도구 - NuGet 패키지 관리자로 이동 > Selenium.WebDriver, Selenium.Support 설치 > Selenium.WebDriver.ChromeDriver, DotNetSeleniumExtras.WaitHelper..
1. 프로그램 구조 # main() 가 반드시 포함되어 있어야 한다. # main() 을 진입하면서 프로그램이 시작하고 빠져나오면서 종료한다. 2. 변수 선언 및 종류 # 정수형, 실수형, 문자형으로 나뉜다. ㄱ. 정수형 # short - 부호 있는 2바이트 # int - 부호 있는 4바이트 정수(16비트 운영체제에선 int는 2바이트) # long - int와 같은 부호있는 4바이트 정수 # long long int - 부호 있는 8바이트 정수 ㄴ. 실수형 # float - 부호 있는 4바이트 (부동소수점 자료형) # double - 부호 있는 8바이트 (부동소수점 자료형 - float 의 2배) ㄷ. 문자형 # char - 부호 있는 1바이트 (문자를 담을수 있는 자료형) *** 부호없는 정수를 선언..
윈도우 프레젠테이션 파운데이션(Windows Presentation Foundation)은 윈도우 기반 응용프로그램에서 사용자 인터페이스를 표시하기 위한 목적으로 MS에서 만든 Graphic System이다. 처음에는 닷넷 프레임워크 3.0의 일부분으로 Avalon 이라고 불렸으며, DirectX를 사용한다. 특히, 사용자 인터페이스와 비즈니스 로직을 분리해준다. 다양한 인터페이스 요소들을 정의하고 연결하기 위해 XAML(XML 기반) 언어를 사용하고 데스크탑에서 단독으로 실행될 수도 있고 웹사이트에 내장된 객체로 서비스될 수도 있다. 2D/3D 렌더링, 고정 및 가변 문서, 타이포그래피, 벡터 그래픽스, 실시간 애니메이션, 프리렌더링 미디어와 같은 여러가지 보편적인 UI를 통합 하여 다양한 이벤트, 사..
윈도우 폼(Windows Forms, WinForms)은 윈도우 API를 관리 코드로 래핑(wrapping)함으로써 MS Window Interface 요소로의 접근성을 제공하는 MS .NETFramework의 API를 의미한다. C++ 기반의 MFC를 향상시킨 내용이지만 모델-뷰-컨트롤러와 상응하는 패러다임을 제공하지는 않는다. 대신, 사용자 인터페이스 프로세스 응용 프로그램 블록을 제공한다.
마이크로소프트에서 개발한 닷넷 프레임워크의 한 부분으로 만들어졌으며, .NETFramework를 개발하던 시절 클래스 라이브러리는 SMC(Simple Managed C)라 불리는 관리 코드(managed code)를 사용했었다. 1999년 1월, 아네르스 하일스베르가 이끄는 팀이 새로운 언어인 Cool(C-like Object Oriented Language)을 개발했다. 마이크로소프트는 언어의 최종 이름을 Cool로 유지할지도 고려해봤지만 상표 문제로 인해 이뤄지지 않았다. 2000년 7월 PDC에서 닷넷 프로젝트가 발표될 때 즈음 Cool의 이름은 C#으로 정해졌고 클래스 라이브러리와 ASP.NET 런타임은 C#으로 옮겨갔다. C#은 ISO 소위원회 JTC 1/SC 22에 ISO/IEC 23270:2..