본문 바로가기

c#41

C# DateTime Format DataTime의 Format 예제들입니다. 항상 헷갈렸는데 아래의 예를 자주 참고할 듯 합니다. ^^ Format Result DateTime.Now.ToString("MM/dd/yyyy") 05/29/2015 DateTime.Now.ToString("dddd, dd MMMM yyyy") Friday, 29 May 2015 DateTime.Now.ToString("dddd, dd MMMM yyyy") Friday, 29 May 2015 05:50 DateTime.Now.ToString("dddd, dd MMMM yyyy") Friday, 29 May 2015 05:50 AM DateTime.Now.ToString("dddd, dd MMMM yyyy") Friday, 29 May 2015 5:50 Dat.. 2021. 4. 27.
C# 파일 끝에 추가하기 텍스트 파일의 끝에 텍스트를 추가하는 방법입니다. File 클래스에 파일 끝에 텍스트를 추가 할 수 있는 여러 함수가 존재하는데 간단하게 추가해보도록 하겠습니다. [함수] ※ 자세한 내용은 아래의 링크를 참조하세요. https://docs.microsoft.com/ko-kr/dotnet/api/system.io.file.appendalltext?view=net-5.0 File.AppendAllText 메서드 (System.IO) 지정된 문자열을 파일에 추가합니다. 파일이 아직 없으면 만듭니다.Appends the specified string to the file, creating the file if it does not already exist. docs.microsoft.com [코드] using .. 2021. 4. 15.
C#에서 NSoup을 이용한 HTML 파싱하기 NSoup은 JSoup의 닷넷 버전입니다. HTML과 XML을 파싱할 때 번거롭게 XPath를 사용하지 않아도 됩니다. 간편하게 HTML의 class, id, name 등을 이용하여 쉽게 Element를 찾을 수 있답니다. C# 프로젝트의 NuGet에서 NSoup을 설치하세요. 심플한 NSoup 예제입니다. // 위키에 연결하며, Timeout은 5초로 지정합니다. Document doc = NSoupClient.Parse(new Uri("https://en.wikipedia.org/"), 5000); // HTML의 타이틀입니다. Debug.WriteLine(doc.Title); // id가 mp-itn인 태그 하위에 b태그의 하위 a태그 Elements 추출 Elements newsHeadlines .. 2021. 4. 6.
C# - DataGridView의 Column 높이 변경하기 아래의 이미지는 DataGridView의 Column 높이입니다. Column 높이를 변경하는 방법은 2가지가 있는데, 하나는 XAML에서 수정하는 것과 C# 코드로 처리하는 방법이 있습니다. 두가지 방법에 대해서 알려주릴께요. 1. XAML에서 변경하기 DataGridView 속성중 RowTemplate의 Height 속성을 변경하면 됩니다. 2. C# 코드로 처리하기 DataGridView의 RowTemplate의 Height 속성을 변경하면 됩니다. dataGridView.RowTemplate.Height = 100; [실행 결과] DataGridView의 Column Header 높이 변경은 아래의 포스트를 참고하세요. https://docko.tistory.com/entry/C-DataGridV.. 2021. 2. 26.
C# 이미지(Bitmap) 회전하기 이미지(Bitmap)을 각도로 회전하는 간단한 소스입니다. [소스] using System; using System.Drawing; using System.Windows.Forms; namespace ImgRotateForm { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { Bitmap srcBitmap = new Bitmap(@"d:\temp\earth3d.png"); pbSrc.Image = srcBitmap; pbTrg.Image = RoateImage(srcBitmap, 45); } // 이미지 회전 priva.. 2021. 2. 10.
C# NPOI를 이용한 엑셀 생성 자바에서는 아파치의 POI 라이브러리로 엑셀, 워드 등을 유용하게 사용하고 있습니다. C#에서는 NPOI(.NET POI 인듯..)를 활용하여 엑셀, 워드 등을 생성, 변경 할 수 있습니다. C#에서 MS Office COM 을 이용하여 엑셀 리포트를 작업했는데 클라이언트 환경에 따라 작동이 안되는 경우가 많았습니다. NPOI를 이용하면 클라이언트의 환경(MS 오피스 버전 등) 문제는 자유로워집니다. 1. NPOI 라이브러리를 설치하기 위해서 참조의 팝업메뉴에서 NeGet 패키지 관리를 클릭합니다. 2. NeGet에서 NPOI를 검색하고 설치합니다. 3. NPOI이가 설치되면 아래와 같이 참조에 추가됩니다. 4. 간단한 예제입니다. using NPOI.SS.UserModel; using NPOI.XSSF.. 2021. 2. 9.
C# 파일 유무, 복사, 이동, 삭제, 텍스트 파일 읽기/쓰기 System.IO.File 클래스에는 여러 유용한 메소드가 존재합니다. 파일 유무, 복사, 이동, 삭제를 쉽게 할 수 있습니다. 소스는 아주 간단하니 주석은 생략합니다. ^^ 1. 파일 유무 using System; using System.Diagnostics; using System.IO; namespace FileTest { class Program { static void Main(string[] args) { String filePath = @"D:\temp\test.txt"; if (File.Exists(filePath)) { Debug.WriteLine("파일 있음"); } else { Debug.WriteLine("파일 없음"); } } } } 2. 파일 복사 using System; usi.. 2021. 2. 6.
C# 폴더내의 파일 목록 특정 폴더내의 파일들을 찾는 코드입니다. 간단 하지만 자주 사용하는 코드랍니다. System.IO.DirectoryInfo di = new System.IO.DirectoryInfo(@"c:\Windows"); foreach (System.IO.FileInfo file in di.GetFiles()) { Debug.WriteLine("파일명 : " + file.Name); } [결과] 2020. 11. 5.
C# 윈도우(창) 이름으로 핸들(hWnd) 찾기 다른 프로세스에 SendMessage 또는 PostMessage로 처리하기 위해서 핸들을 찾는 방법입니다. user32.dll의 함수를 사용해서 윈도우(창)의 이름으로 쉽게 찾을 수 있습니다. 아래의 코드를 참고하세요. using System; using System.Diagnostics; using System.Runtime.InteropServices; namespace ConsoleApp { class Program { [DllImport("user32.dll")] private static extern IntPtr FindWindow(string lpClassName, string lpWindowName); static void Main(string[] args) { IntPtr hWnd = Fi.. 2020. 11. 4.
C# 프로젝트로 생성한 EXE 또는 DLL의 실제 경로 얻기 프로젝트로 생성된 exe나 dll의 경로를 알아야 할 경우가 종종 있습니다. 작업 디렉토리(Working Directory)가 아닌 다른 폴더에 exe나 dll이 존재 하는 경우 경로를 찾아서 처리해야겠죠. exe나 dll내의 클래스를 이용하여 실제 경로를 간단히 얻어 올 수 있습니다. 코드는 아래와 같습니다. string fileName = new ClassName().GetType().Assembly.ManifestModule.Name; string filePath = new ClassName().GetType().Assembly.Location; Debug.WriteLine("파일이름 : " + fileName); Debug.WriteLine("파일경로 : " + filePath); 2020. 11. 4.
C#의 GUID & MSSQL의 Uniqueidentifier 생성하기 C#의 GUID와 MSSQL의 Uniqueidentifier 생성하는 방법입니다. 1. C#에서 GUID 생성하기 // 빈 GUID Guid emptyID = Guid.Empty; // 새 GUID Guid newID = NewGuid(); 2. MSSQL에서 GUID(Uniqueidentifier) 생성하기 SELECT NEWID() 3. Visual Studio에서 GUID 생성하기 (1) Visual Studio의 도구 메뉴 중 GUID 만들기를 클릭한다. (2) GUID 만들기 화면에서 GUID를 생성하거나 복사 할 수 있다. 2018. 2. 22.
C# 시간 차이 구하기(날짜 비교) 아래의 코드는 DateTime을 이용하여 시간의 차이를 구하는 코드입니다. 코드 상에서 작업 시간을 측정하는데 유용하게 사용할 수 있습니다. DateTime sTime = DateTime.Now; // 1초 대기 Thread.Sleep(1000) DateTime eTime = DateTime.Now; // 시간 차이 구함 TimeSpan gapTime = eTime - sTime; int diffDay = gapTime.Days; int diffHour = gapTime.Hours; int diffMinute = gapTime.Minutes; int diffSecond = gapTime.Seconds; string msg = ""; if (diffDay != 0) msg += diffDay + "일 ";.. 2018. 1. 25.
C# using-namespace-directive C#의 Namespace를 using으로 지정 할 때, Namespace가 너무 길고 동일이름의 Class에 다른 Namespace인 경우 Namespace.Class로 변수를 지정하게됩니다. 이런 경우 Namespace를 Alias처럼 사용 할 수 있는 방법입니다. [문법] // using 선언 using alias = namespace // Class 변수 선언 alias.Class class = new alias.Class(); [예제] // using-namespace-directive using PP = Microsoft.Office.Interop.PowerPoint namespace PptExample { class Program { static void Main(string[] args) {.. 2017. 6. 2.
C# PDF 라이브러리 사이트 C# PDF 라이브러리 사이트입니다. http://pdfmosaic.com/ 2016. 11. 17.
C# UI Control에 Tooltip 지정하기. 버튼, 체크박스 등에 툴팁(Tooltip)을 지정하는 방법입니다. 1. Toolbox의 Tooltip을 드래그하여 Form에 넣습니다. 2. 아래와 같이 Form의 Load Event를 생성하고, Tooltip을 지정합니다. using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace Tooltip { public partial class Form1 : Form { public Form1() { InitializeCompo.. 2016. 9. 13.
C# DataTable에서 중복 제거한 결과 얻기(Select Distinct) 데이타베이스에 쿼리를 수행하여 얻은 DataTable의 중복을 제거한 결과를 얻는 방법입니다. 쿼리에서는 Select Distinct Column1, Column2, ... From TableName과 동일 합니다. 아래의 코드를 참고하세요. //DataTable 생성 DataTable table = new DataTable(); // 컬럼 생성 table.Columns.Add("YEAR", typeof(int)); table.Columns.Add("MONTH", typeof(int)); table.Columns.Add("WEIGHT", typeof(int)); // 데이터 생성 table.Rows.Add(new object[] { 2016, 1, 10 }); table.Rows.Add(new objec.. 2016. 8. 8.
C# 텍스트 파일 복사 코드 텍스트 파일 복사 코드입니다. public void CopyFile(string sourceFileName, string targetFileName) { StreamReader sr = null; StreamWriter sw = null; try { sr = new StreamReader(sourceFileName); sw = new StreamWriter(targetFileName); string str; while ((str = sr.ReadLine()) != null) { sw.WriteLine(str); } } catch (Exception ex) { throw ex; } finally { try { sr.Close(); } catch { } try { sw.Close(); } catch { } .. 2016. 5. 31.
C# 개행문자 Replace하기 C#에서 문자를 치환(Replace)하는 함수는 아래와 같이 2가지를 제공하고 있습니다. 개행문자를 치환(Replace)하기 위해서는 아래의 코드와 같이 코딩을 하는데, 이런 경우 치환(Replace)라 되지 않습니다 string str = "문자\r\n치환"; str = str.Replace("\r\n", ""); 개행문자를 치환(Replace)하기 위해서는 아래와 같이 Enviroment.NewLine을 이용하면 개행문자를 치환 할 수 있습니다. string str = "문자\r\n치환"; str = str.Replace(Enviroment.NewLine, ""); 2016. 5. 31.
C# DateTimePicker 커스텀 포맷(Custom Format) 적용하기 C#의 컴포넌트 중 날짜를 선택하는 유용한 DateTimePicker가 있습니다.DateTimePicker의 경우 아래와 같이 날짜가 표시되는데 일반적으로 2016-02-23과 같이 많이 사용합니다.이렇게 변경하기 위해서는 Custom Format을 수정해야합니다. 관련 URL : https://msdn.microsoft.com/ko-kr/library/system.windows.forms.datetimepicker.customformat(v=vs.110).aspx 1. Form에 DateTimePicker 컴포넌트를 넣습니다. 2. 아래와 같이 DateTimePicker가 추가됩니다. 3. Custom Format을 적용하기 위해서는 아래와 같이 2개의 속성(CustomFormat, Format)을 수.. 2016. 2. 23.
엑셀파일에 ODBC를 연결하여 엑셀의 데이터 가지고 오기 엑셀파일에 ODBC를 연결하여 엑셀의 데이터를 DataGridView에 표시해 보도록 하겠습니다. 1. 엑셀파일에 ODBC 연결하기 string excelODBCConString = "Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};Extended Properties='Excel 8.0;HDR=YES';DBQ="; string conStr = excelODBCConString + excelFilePath; OdbcConnection con = new OdbcConnection(conStr); 2. 엑셀의 시트명 얻기 string sheetName = null; string excelODBCConString = "Driver={Microso.. 2015. 12. 24.
C# 엑셀 셀 형식(서식) 정의하기 엑셀의 서식에는 텍스트, 숫자, 날짜 등의 셀 형식(Cell Type)이 있습니다. 엑셀의 셀형식을 변경하고자 하려면, 아래의 코드와 같이 엑셀의 셀 형식을 지정할 수 있습니다. (Type을 지정하는 것이 아니고, 셀의 NumberFormat을 지정하여 셀형식을 지정합니다.) Microsoft.Office.Interop.Excel.Workbooks workbooks = application.Workbooks; Microsoft.Office.Interop.Excel._Workbook workbook = workbooks.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet); Microsoft.Office.Interop.Excel.Sheets .. 2015. 12. 15.