본문 바로가기
반응형

c#26

[C#] winForm 에서 deepL api 호출하기 프로젝트에서 우클릭 -> Nuget 패키지 관리 DeepL.net 찾아서 설치 using DeepL; // api key Translator translator = new Translator("your deepL api key here"); api key 를 받아야되는데, 아래 DeepL 사이트에 가입하면 확인 가능합니다. https://www.deepl.com/ DeepL 번역: 세계에서 가장 정확한 번역기 텍스트 및 전체 문서 파일을 즉시 번역하세요. 개인과 팀을 위한 정확한 AI 번역. 매일 수백만 명이 DeepL 번역기로 작업합니다. www.deepl.com 무료 가입 가능 카드 정보 입력 필수 ( 결제되지 않음 ) 계정 -> 계정 탭 -> 페이지 최하단에 key 확인 기본적인 코드 var tra.. 2023. 10. 29.
[Selenium] input text 입력 및 삭제 방법 input text 에 값을 입력하고, 삭제하는 방법 입력 우선 input element 를 가져옵니다. var input = driver.FindElement(By.TagName("input")); id 로 가져오든 name 으로 가져오든 정확한 input 을 가져와야합니다. SendKey 를 이용해서 값을 입력합니다. input.SendKeys("Hello~ Bryan~"); 입력 값 삭제 방법1. input.Clear(); 간혹 안먹히는 경우가 있습니다. 방법2. input.Click(); input.SendKeys(Keys.Control + "A"); input.SendKeys("Hello~Bryan"); input 에 focus를 주고 (click()), 컨트롤+A를 눌러서 전체 텍스트가 선택되.. 2023. 2. 25.
[Selenium] Page Load Timeout 설정하기 C# Selenium Page Load Timeout Error OpenQA.Selenium.WebDriverException The HTTP request to the remote WebDriver server for URL http://localhost:55282/session/3594c33da895850a9f51c1e52174f9de/url timed out after 60 seconds 크롤링 실행 중 위와 같은 오류가 발생합니다. 이유는 페이지가 뜨는데 Timeout으로 설정한 60초 보다 오래걸렸기 때문입니다. 페이지에 이상이 없고, 로딩시간이 길더라도 페이지가 뜨긴한다면 Timeout 시간을 늘려주는게 답입니다. 만약에 오랜시간을 기다려도 페이지 오류로 무한로딩이 된다면, timeout 을 .. 2022. 9. 25.
[C#] Callback, Action으로 간단히 사용하기 (delegate 사용안함) C# Action Callback 역시 설명은 예시로~ 여러가지 경우에 쓰이지만 아래와 같은 예를 들어보겠습니다. Main Class 가 있습니다. 여기에서 Watcher 라는 클래스의 객체를 만들어서 파일 모니터링을 한다고 합니다. 특정 경로의 폴더에 어떤 파일이 생기거나 삭제되거나하면 알림을 주는건데요. 프로세스는 아래와 같습니다. 1. 프로그램이 실행되면 Watcher 를 띄워서 모니터링을 시작합니다. 이때 Main Class 에서는 본인이 할일을 합니다. 2. Watcher 가 모니터링 중에 파일 생성을 감지했습니다. Watcher는 Main 을 호출해서 Main 에서 해당 작업을 처리해야 합니다. 이럴때 코드를 어떻게 만드시겠습니까? 제가 주니어였을 땐 아래와 같이 코딩했습니다. (이렇게 하지마.. 2021. 11. 25.
[C#] 크롤링에 유용한 라이브러리 HtmlAgilityPack HtmlAgilityPack 꽤 많이 사용되고 있는 라이브러리입니다. html string 을 load 하여 그 문자열을 파싱하는 방법입니다. 이것만으로 크롤링 할 수 없는 사이트가 많습니다. 왜냐하면 데이터를 async 하게 로드하는 경우는 사용할 수 없습니다. (스크롤 다운 -> 로딩 같은) 그래서 Selenium 과 HtmlAgilityPack 을 같이 사용하면 유용한 경우가 있습니다. Selenium 으로 많은 element 를 loop 돌며 처리할 때, 느린경우가 있습니다. (N 쇼핑 같은...) 이렇게 느린 부분을 HtmlAgilityPack 을 사용해서 파싱하여 처리합니다. 1. 설치 NugetPackage 관리자로 들어갑니다. 검색으로 HtmlAgilityPack 을 찾아서 설치합니다. (.. 2021. 10. 31.
[C#] 여러 개 Thread 사용 시 주의사항 (파라메터 사용 시) 여러 개 Thread 사용 시 주의사항 (파라메터 주의) For 문에서 여러 Thread 를 실행할 때 Thread 에 parameter 를 넘길때 주의할 점이 있습니다. 우선 코드를 보고 결과를 예상해 보세요. using System; using System.Collections.Generic; using System.Threading; namespace TestConsole { class Program { static void Main(string[] args) { Console.WriteLine("Hello World!"); List threadList = new List(); for(int i=0; i myThre.. 2021. 10. 30.
[C#] Tuple 사용하기 1. 함수의 return type 에 괄호로 리턴 형식과 이름을 지정합니다. 2. return 할때 그 형식에 맞게 괄호 안에 값을 넣어서 리턴합니다. private (bool isValid, string hh, string mm) getControlValues() { if (comboBox_hh.SelectedItem == null || comboBox_mm.SelectedItem == null) { MessageBox.Show("Time is required."); return (false, "", ""); } string hh = comboBox_hh.SelectedItem.ToString(); string mm = comboBox_mm.SelectedItem.ToString(); return (t.. 2021. 10. 20.
[C#] Tuple 사용 방법 먼저 예제로~ (아래쪽엔 설명) 예제 - Tuple 을 리턴하는 메소드 private (bool isValid, string hh, string mm) getControlValues() { if (comboBox_hh.SelectedItem == null || comboBox_mm.SelectedItem == null) { MessageBox.Show("Time is required."); return (false, "", ""); } string hh = comboBox_hh.SelectedItem.ToString(); string mm = comboBox_mm.SelectedItem.ToString(); return (true, hh, mm); } 메소드 리턴 타입을 ( ) 안에 타입과 함께 변수명을.. 2021. 6. 1.
[C#] Class 를 file 로 저장/로드하기 (class to file, file to class) Serialize Class 를 File 로 저장/로드 대상 class 일단 아래와 같은 class 가 있고, 이 class 를 file 로 저장하려고 하면, 상단에 [Serializable] 을 붙혀줍니다. [Serializable] // 추가 public class CateInfo { public CateInfo(string name, string link, int depth) { this.name = name; this.link = link; this.depth = depth; } public string name { get; set; } public string link { get; set; } public int depth { get; set; } } using 및 선언 - 사용 할 class에서 // 상단에 u.. 2021. 4. 4.
[LocalDB] Table key column Auto Increase 설정하기 Table 생성 시 key 컬럼을 자동으로 증가 시키려고 할때 하는 설정입니다. insert 문에서 굳이 이 key 컬럼을 명시하지 않아도 key 값이 1씩 증가 하며 자동으로 입력됩니다. 서버 탐색기에서 생성된 LocalDB 파일을 선택하고 테이블을 선택합니다. 우클릭 > 테이블 정의 열기 Key 값 선택 우클릭 속성 ( type이 int 이어야 합니다.) 우측에 속성창으로 갑니다. ID 사양을 펼치고 ID여부를 True 로 선택해 줍니다. (증가값등 설정 가능) 데이터베이스 업데이트도 잊지마세요~ 끝. 2020. 11. 6.
728x90
반응형