C#
-
C# 문자열을 문장으로 나누기 (Split('')할 때 'string'에서 'char'(으)로 변환할 수 없습니다. 해결 방법)프로그래밍/C# 2020. 11. 11. 10:29
string characterString = "123,456,789,000,000"; string[] splitCharacter = characterString.Split(','); // splitCharacter[0] : 123 // splitCharacter[1] : 456 // splitCharacter[2] : 789 // splitCharacter[3] : 000 // splitCharacter[4] : 000 2019/06/19 - [프로그래밍/C#] - C# 문자열을 열 글자씩 쪼개기, 문자열 자르기 C# 문자열을 열 글자씩 쪼개기, 문자열 자르기 텍스트박스나 문자열에 줄바꿈없이 문자들이 나열되어 있을 때 줄바꿈을 주기위해 몇 글자마다 줄바꿈을 줄 것인지에 대한 방법이다. 예시 코드에는 10..
-
C# foreach 루프를 LINQ로 변환하는 아주 쉬운 방법프로그래밍/C# 2020. 10. 16. 15:41
내용: IEnumerable을 사용하는 foreach 루프를 LINQ 쿼리 또는 LINQ 호출 양식(LINQ 메서드라고도 함)으로 쉽게 변환할 수 있습니다. 시기: IEnumerable을 사용하는 foreach 루프가 있고 이 루프를 LINQ 쿼리로 읽으려고 합니다. 이유: foreach 루프가 아닌 LINQ 구문을 사용하고 싶습니다. LINQ를 사용하면 쿼리가 C#의 고급 언어 구문이 됩니다. LINQ는 파일의 코드양을 줄이고, 코드를 읽기 쉽게 하며, 다른 데이터 소스가 유사한 쿼리 식 패턴을 갖도록 할 수 있습니다. 참고 LINQ 구문은 일반적으로 foreach 루프보다 효율이 떨어집니다. LINQ를 사용하면 코드의 가독성은 좋아지는 대신 성능이 떨어질 수 있다는 점을 알고 있는 것이 좋습니다. f..
-
C# 윈폼에서 배경 불투명도 조절하기 WinForm Opacity프로그래밍/C# 2020. 9. 30. 01:22
C#에서 윈폼에서 원하는 부분을 투명하게 하는 방법에 대해 예전에 포스팅했었다. 2016/07/19 - [프로그래밍/C#] - C# WindowsForm에서 배경 투명하게 하는 방법 C# WindowsForm에서 배경 투명하게 하는 방법 WindowsForm의 특정부분만 투명하게 하는 방법은 폼 속성의 TransparencyKey을 이용하면 된다. 예를 들어 FormBorderStyle을 None으로 하고 배경이미지를 넣었을 경우에 아래와 같이 이미지 외의 배경이 폼색 jasmintime.com 이 방법은 투명하게만 만들 수 있는 방법이어서 반투명 혹은 투명도를 세밀하게 조절할 때 이 방법은 옳지 않다. 윈폼이나 컨트롤의 배경을 투명하게만 하는 것이 아니라 불투명도를 세밀하게 조절하는 방법은 다음과 같다..
-
C# 텍스트파일 읽기 응용편: 텍스트파일에서 해당 문자가 있는지 확인하기프로그래밍/C# 2020. 3. 29. 11:12
2018/03/14 - [프로그래밍/C#] - C# 텍스트파일 읽기 이전글에 C#에서 텍스트파일을 읽는 방법에 대해 적었었다. 이 것을 응용하면 텍스트파일에 해당 문자가 있는지 없는지 확인(체킹)하는 메소드를 만들 수 있다. // 라인(한 줄) == 찾는 텍스트 일 때 private bool FindLineText(string text) { bool b = false; try { string filename = "D:\\test.txt"; using (StreamReader sr = new StreamReader(filename)) { string line; // 텍스트파일 한줄씩 읽기 while ((line = sr.ReadLine()) != null) { // 해당 문자가 있으면 브레이크 if (li..
-
C# 난수, 랜덤 Random 사용법 (+ 문자열 배열에서 랜덤으로 출력하기)프로그래밍/C# 2020. 3. 9. 18:58
Random은 무작위의 숫자를 발생시키는 함수이다. 사용방법 1. 정수(int) private void intRandom() { Random random = new Random(); int min = int.Parse(textBoxMin.Text); int max = int.Parse(textBoxMax.Text); // 음수가 아닌 임의의 정수 iValue = random.Next(); listBoxInt.Items.Add("Next() : " + iValue.ToString()); // maxValue보다 작은 음수가 아닌 임의의 정수 iValue = random.Next(max); listBoxInt.Items.Add("Next(max) : " + iValue.ToString()); // minVa..
-
C# 번역 파파고 API 사용하기 (영어를 한글로, 한글을 영어로 번역)프로그래밍/C# 2020. 3. 3. 13:51
구글 번역기 API는 연동을 다 했으니까 이제 파파고를 연동할 차례! 네이버 계정이 있다는 가정 하에 네이버 디벨로퍼(네이버 개발자센터)에 들어가서 로그인을 한다. 그 다음 Application에서 애플리케이션 등록을 클릭한다. 애플리케이션 이름은 아무거나 입력하고, 사용 API에서 Papago 번역을 선택한다. 환경은 앱으로 만드는게 아니므로 WEB 설정을 선택 한 다음 웹 서비스 URL은 가지고 있는 도메인으로 입력하였는데 네아로를 사용하며 이것저것 테스트해봤을 때 실제 사용되고 있는 도메인이면 아무거나 사용해도 문제는 없었으므로 도메인이 없는 경우 티스토리 혹은 네이버 도메인으로 해도 될 듯. 모든 것이 입력이 다 되었으면 [등록하기] 클릭 내 애플리케이션에서 방금 등록한 것을 클릭하면 Client..
-
C#에서 구글번역 Google Translation API Basic 사용하기프로그래밍/C# 2020. 2. 28. 11:58
영어공부를 하기 위해 다른 티스토리에 영문 자료들을 수집하여 포스팅하는데이때 구글번역기와 파파고에서 번역한 것도 같이 올린다.일일이 원문사이트 복사해서구글번역기에 붙여놓고 번역된 걸 복사해서 또 붙여놓고...또 파파고에도 똑같이... 매우매우 반복되는 작업이다. 반복되는 작업은 컴퓨터에게 시켜야지! 자동번역기를 만들어야지! 다행이도 구글번역기와 파파고 모두 API가 지원된다. 그 중에서 구글번역기 API 사용 방법. 먼저 구글계정이 있고, 구글 클라우드 플랫폼에 가입되어 있다는 가정 하에 1. 환경 변수 설정https://cloud.google.com/translate/docs/basic/setup-basic구글 클라우드 플랫폼에서 구글 번역기 API 사용을 신청한다. 프로젝트 설정을 클릭하고,기존의 프..
-
"이 파일에 디자인할 수 있는 클래스가 없으므로 디자이너에서 이 파일을 표시할 수 없습니다." 두번째 해결방법끄적이는/정보공유 2020. 1. 20. 18:54
2016/07/21 - [끄적이는/정보공유] - [비주얼 스튜디오 오류] 이 파일에 디자인할 수 있는 클래스가 없으므로 디자이너에서 이 파일을 표시할 수 없습니다. 디자이너에서 검사한 파일의 클래스는 다음과 같습니다.[비주얼 스튜디오 오류] 이 파일에 디자인할 수 있는 클래스가 없으므로 디자이너에서 이 파일을 표시할 수 없습니다. 디자이너에서 검사한 파일의 클래스는 다음과 같습니다.비주얼 스튜디오에서 코딩을 하다가 발생한 오류. 원인은 A클래스로 작업을 하다가 B라는 클래스(여기선 윈폼)를 생성하고 이 B 클래스를 참조할 때 인식하지 못해서 발생하는 것이다. 이것을 해결하려면 비주얼스..jasmintime.com 2016년에 같은 주제로 오류를 해결하는 방법을 적은 적이 있다.그때 당시에는 이 방법으로 ..
-
C# 웹크롤링 selenium 사용기프로그래밍/C# 2020. 1. 8. 22:42
쿠팡사이트를 크롤링하려는데 단순히 웹브라우저나 WebClient 통해서 html을 가져오는 것으로는 브라우저에 보이는 그대로 크롤링을 할 수가 없었다. (이는 해당 사이트에서 오른쪽마우스를 클릭해 페이지 소스보기했을 때 나오는 것과 같다.) selenium은 chrome 브라우저를 열어서 크롤링을 하는 부분이라 사이트에서 F12를 눌렀을 때 보이는 것과 같아 내가 원하는 것을 딱딱 크롤링할 수가 있었다. 프로젝트에서 selenium을 사용하려면 먼저, 비주얼스튜디오에 도구> NuGet 패키지 관리자> 솔루션용 NuGet 패키지 순으로 클릭한다. 찾아보기 탭을 클릭하고, selenium으로 검색한다. 그 중에서 Selenium.WebDriver, Selenium.WebDriver.ChromeDriver, ..
-
C# 웹이미지 다운로드 내폴더에 저장하기프로그래밍/C# 2020. 1. 3. 00:26
private bool DownloadRemoteImageFile(string uri, string fileName) { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); bool bImage = response.ContentType.StartsWith("image", StringComparison.OrdinalIgnoreCase); if ((response.StatusCode == HttpStatusCode.OK || response.StatusCode == HttpStatusCode.Moved || response.S..
-
C# WebBrowser없이 HTML 파싱하기(HtmlAgilityPack 사용기)프로그래밍/C# 2019. 12. 26. 19:56
웹브라우저로 사이트 띄우고 html을 가져오고 하는게 은근히 손이 많이 들어간다. 처음부터 끝까지 오로지 하나의 메소드 안에서 코드로만 작업하고 싶다. 또 사이트 주소는 모르고 html 형식으로 된 텍스트만 가지고 있을때 html을 파싱할 수 있는 방법이 어디 없을까? 도구 > NuGet 패키지 관리자 > 솔루션용 NuGet 패키치관리 순으로 클릭한다. HtmlAgilityPack을 검색한다. HtmlAgilityPack을 설치한다. HtmlAgilityPack이 설치된 후 사용할 폼 코드 맨 윗줄에 System의 HtmlDocument랑 충돌나므로 using hap = HtmlAgilityPack; 이런 식으로 입력한다. private void buttonSystem_Click(object sender..
-
C# 문자열을 열 글자씩 쪼개기, 문자열 자르기프로그래밍/C# 2019. 6. 19. 17:17
텍스트박스나 문자열에 줄바꿈없이 문자들이 나열되어 있을 때 줄바꿈을 주기위해 몇 글자마다 줄바꿈을 줄 것인지에 대한 방법이다. 예시 코드에는 10글자마다 줄바꿈을 주었다. private void button1_Click(object sender, EventArgs e) { string strings = textBox5.Text; int indexStart = 0; // 시작 위치 int indexEnd = 0; // 종료 위치 int iSplit = 11; // 몇 글자씩 쪼갤 것인지 + 1 (문자열을 10글자씩 쪼갤 때 = 11) int totalLength = strings.Length; // 문자열 길이 int forCount = totalLength / iSplit; // 글자를 몇 번 쪼개야 하..
-
C#에서 내가 원하던 기능! 멀티스레딩에서 쓸 수 있는 큐 Queue! 드디어 찾았다!끄적이는/생각들 2019. 5. 30. 18:22
작년에 멀티스레딩 환경에서 올바르게 작동 되는 큐를 만들려고 책도 보고 MSDN도 보고 구글링도 하고 별의 별짓을 다했는데 실패했다. 혹시나 내가 원하는 기능을 가진 이미 구현된 클래스는 없을까 하고도 찾아봤지만 못 찾았다. 그런데!! 오늘!! 이벤트핸들러 멀티스레드에 대해 구글링 하다가 우연찾게 멀티스레드에 안전한 구조 설계라는 제목의 글이 끌려서 봤는데 총 글이 세 편이었는데 첫 편만 보다가 이미 다 아는 내용이네 하고 그냥 끌려고 했지만 그래도 끝까지 다 봤다. 아아. 짜릿함이 몰려왔다. 드디어 찾았다!! 그 이름하야 ConcurrentQueue. 그 글 주인장이 매 글마다 쓰는 말이지만 역시 나 또한 그렇게 생각한다. 역시 C#은 만들어져있는 걸 써야해!! 그나저나 나는 왜 MSDN까지 다 찾아봤..
-
C# 책 추천 네트워크, 소켓, 문법, 디자인패턴 등등도서 2019. 5. 21. 18:15
1. TCP/IP 소켓 프로그래밍 - C# 버전 David B. Makofske (지은이),최낙준 (옮긴이)사이텍미디어(희중당)2005-01-24 TCP/IP 소켓 프로그래밍 - C# 버전 TCP/IP 뿐만 아니라 넌블로킹 소켓, 멀티플렉싱, 쓰레드, 비동기 프로그래밍 그리고 멀티캐스팅 등 주요 소켓 프로그래밍 기법에 대한 튜토리얼 형태의 설명과 그에 해당하는 많은 코드 예제가 있다. 또한, 빠른 속... www.aladin.co.kr 2. 실무자를 위한 C# 네트워크 프로그래밍 Richard Blum 저 / 김형규, 최낙준 편역 | 지앤선(志&嬋) | 2004년 01월 09일 | 원제 : C# Network Programming 실무자를 위한 C# 네트워크 프로그래밍 초보자들이 C#의 네트워크 클래스와..