본문 바로가기

반응형

C#

(60)
C#- Log File Manager 라이브러리를 만들자 ! [C#] 실행경로, 시작경로, 현제경로를 가져오는 방법 1. Application.StartupPath - 현재 application이 존재하는 경로 - winform 인 경우에만 사용가능 - 레지스트리 관계없이 실제 실행 파일 - Application.ExcutablePath 와 동일 - string filePath = Application.StartupPaht + @"testFile.txt"; 2. System.Environment.CurrentDirectory - 현재 작업 실행되는 경로 - winform 이외의 개발 환경에서도 사용가능 - winform 에서는 "C:/Windows/System32" 경로가 나옴 ( svchost.exe 를 통해 서비스가 등록 되기 때문 ) - System.IO.D..
C# Thread(스레드) 주요 속성과 메서드 ! 스레드 주요 속성과 메서드 ! MSDN을 보는게 도움이된다. 스레드의 속성 *Name :스레드의 명칭 지정 *IsAlive :bool형 스레드가 살이있는지 죽었는지 확인 *IsBackground : foreground : 주스레드의 종료와 상관없이 독립적 작동하는 부스레드 background : 주스레드의 종료와 연계하여 같이 종료하는 부스레드 public bool IsBackground { get; set; } thread.IsBackground = true ; 넣어 보았습니다. 스레드 기능이 신기하여 이렇게도 코딩해 보았다. 스레드 속성 CurrentThread public static Thread CurrendThread{ get ;} 스레드는 독립된 아이디를 가진다. Thread.CurrentTh..
EXCEL에서 CODE 128 폰트로 읽을 수 있는 바코드 만들기 렛츠 고우 조천 농협 선과 프로그램 개발중에 라벨 프린터에 바코드를 담은 엑셀 파일을 던져줘야 하는 상황이 발생했다 . 단순히 Code 128 폰트만 다운 받아서 설치하면 되는 줄 알았던 나는 생성된 바코드가 리더기를 통해 읽어지지 않는 상황을 받아 드릴 수 가 없었다. 왜 다른 바코드는 읽히는데 내가 만든 바코드는 읽히지 않을까 Code 128 은 Code 38에 비해 바코드 구성이 복잡하고 동일한 데이터도 훨씬 짧은 바코드를 구성한다. -> Code 38를 사용하는경우 단순하게 *1234* 별표를 앞뒤로 추가하여 작성 후 폰트 변경을 해주면 정상적인 바코드가 생성된다. -> 하지만 농협에서 사용하는 바코드는 Code 128이라 무조건 해당 바코드를 생성 해내야 했다. -> 유투브: www.youtube.com/..
C#- ASP.NET 으로 웹 로그인 화면 만들기(MVC-모델-뷰-컨트롤러) ! 일단 ASP.NET 설치를 해야한다! 맴버쉽 컨트롤러( using System; using System.Collections.Generic; using System.Globalization; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; using Microsoft.VisualStudio.Web.CodeGeneration.Contracts.Messaging; using NetCore.Web.Models; namespace NetCore.Web.Controllers { public class MembershipController : Controller { public IActionResult Index() {..
C# - 네트워크 , Socket , TCP소켓 대해 알아보자 using System; using System.Net; using System.Net.Sockets; class Program { static void Main(string[] args) { //Socket Server - 어서 오십시오 하는 소켓 (밑에 소켓 하나 더있다) Socket Server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); //한꺼 번에 건물을 올려주는 변수 선언 //1,2,3층을 한꺼번에 아우르는 기능이 들어 있다. Server.Bind(new IPEndPoint(IPAddress.Any, 7000)); //아이피와 포트를 확인하고 SOCKET과 같이 묶어주는게 Bind 기능 ! //I..
C# 문법 - String 문자열을 Enum으로 바꾸는 방법 /Trim(Char[])로 원하는 문자 제거 /구조체의 차이점 복습 이런 Enum 들이 있다. 여기에 String으로 얻어온 문자를 추가할려면 이와 같은 코딩이 필요하다. (Grade)Enum.Parse(typeof(Grade), Grade) 입력 또는 추가된 string value -> enum 타입으로 변환하여 해당 (Grade):형변환 Enum으로 변환해준다! 3. Trim(Char[]), TrimStart(Char[]), TrimEnd(Char[]) 메서드의 정의와 사용법 많은 분들이 Trim()이 "공백"만 제거해주는 메서드로 알고 계시는데, 전혀 아닙니다. Trim() 메서드는 공백 뿐만 아니라 특정 char (들)을 앞뒤로 제거해주는 메서드로 얼마든지 변.신. 할수있습니다. 킹갓 Trim(). ▼ Trim(char), TrimStart(char), TrimE..
C# - PDA 프로그램 개발 DataGridView 정렬과 row 이동하기 (DataTable, DataView 사용) 선과 작업 리스트를 확인할 수 있는 데이터 그리드 뷰를 윈폼에 띄웠다. 해당 농가의 접수 번호가 포함된 QR코드를 PDA를 통해 스캐닝하여 ERP 시스템 상에서도 작업 시작 예정인 농가가 그리드 최상단에 위치 할 수 있도록 프로그램을 개발 하였다. 이와 같은 프로그래밍을 통해 업 다운 버튼의 필요성을 없에 UI이를 더욱 깔끔하게 개선할 수 있다. UI는 데모 버전으로 만든거라 못생겨도 이해 부탁드립니다. 중점을 둔 것은 바코드 리딩을 하면 해당 접수 번호를 가진 농가의 데이터로우가 최상단에 올라 올 수 있게 만들었다 . 예외 사항들을 조건문을 통해 리턴해주고 바코드 스캐닝을 통해 읽어들인 작업 번호와 현재 그리드에서 최상단에 위치한 작업 번호를 스트링 변수에 담아 준다. 담은 두 작업 번호를 비교하여 동..
C# -Thread 동기화 ! (lock 키워드/Monitor 클래스 사용) 동기화 란 ? 작업들 사이의 수행 시기를 맞추는 것 -> 다수의 스레드가 동시에 공유 자원을 사용할 때 순서를 정하는 것 복수의 스레드가 있을 때 문제가 된다. 지금 작업하고 있으니까 너는 대기해 이런식으로 순서를 정하는 것을 동기화라고 합니다. 동기화 키워드와 클래스 lock : 동기화 키워드 Monitor Mutex Interlocked AutoResetEvent ManualResetEvent 동기화 대상 * 공유 자원에 대한 접근이 예상되는 스레드 * 한 객체를 다수의 스레드가 사용되는 때 lock 형식 private object obj = new object(); lock( obj ) { 임계(경계) 영역 (critical section) } lock 주의할 점 *lock(this) *lock(t..

반응형