programing/C# 26

[C#] 2차원 배열 1차원 배열에 복사. (How to copy a row values from a 2D array into a 1D array?)

정말 한참을 고민하고 찾아보았다. 2차원 배열을 선언하고 사용하다가 갑자기 1차원 배열을 인자로 주어야 하는 상황이 발생한 것이다. 반복문으로 하기는 싫고, 틀림 없이 제공해 주는 기능이 있을 것이라 생각 했다. 그러다가 stack overflow 에서 답을 찾았다. 검색 :" c# convert 2d array to 1d" 참조 : https://stackoverflow.com/questions/797354/how-to-copy-a-row-of-values-from-a-2d-array-into-a-1d-array 매우 간단하게 해결한 것을 보았다.. 이전에 찾은것은 전부 Array.copy() 를 사용했었는데 이것은 같은 차수여야만 가능했다. 이번에 찾은 것을 정리해 보자 int[,] oGridCell..

programing/C# 2018.03.26

[C#] 다른 프로세스에 키보드 이벤트 발생

이건 그냥 개인 취미 생활을 위해 한번 만들어 보았다.매우 단순하게 어떤 프로세스에 스페이스바 키가 주기적으로 입력되게 하는 걸 만들려고 했는데생각보다 시간이 오래 걸렸다. 코드는 매우 간단하다. using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Diagnostics; using System.Drawing; using System.Linq; using System.Runtime.InteropServices; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace ..

programing/C# 2017.04.18

[C#] 32bit dll 사용 시 "...호출 결과 스택이 불안정하게 되었습니다." 에러

C++ 64bit Dll 을 만들어서 C# 에서 사용하고 있었다...그런데... 문제가 발생했다. 사용해야 할 PC가 Stick PC 로 바뀌면서 32bit로 변환해주어야 하는 상황이 발생한 것.. dll을 32bit로 컴파일해서 넣으면 끝나는 줄 알았다.그렇게 쉬운게 아니었다. 에러는 계속 나고.. 해결은 안되고.. 다른 에러들은 쉽게 해결했지만 마지막 에러가 오래 걸렸다. 추가 정보: PInvoke 함수 'H-Stage_Demo!H_Stage_Demo.MainForm::SetMagnification'에 대한 호출 결과 스택이 불안정하게 되었습니다. 관리되는 PInvoke 시그니처와 관리되지 않는 대상 시그니처가 일치하지 않기 때문인 것 같습니다. 호출 규칙 및 PInvoke 시그니처의 매개 변수와 관..

programing/C# 2017.03.20

[C#] 비프(Beep)음 내기

모터가 멈췄는지 확인하는 함수가 있는데 이게 순식간에 지나가니까 진행되는지 확인이 안되더군..그래서 C# 하기 전에 비프음을 썻던게 생각이 나서 적용해 보기로 햇지.. 출처 : https://msdn.microsoft.com/ko-kr/library/system.media.systemsounds.beep(v=vs.110).aspx 사용법은 간단 간단하다.namesapce = System.Media'using System.Media'를 추가해 주면 된다. 함수는SystemSounds.Beep.Play();간단하죠 ? 주의할점은 SystemSound(s)로 쓰면 안됩니다. 's'를 꼭 체크해주십시오.. 소리는 바꿀 수 있나 모르겠네

programing/C# 2017.02.21

[C#] 시리얼 포트 검색

모터 구동 드라이버 연결을 해서 동작시키는 프로그램을 짜게 되었다.갑자기 짜던 사람이 퇴사하는 바람에... 차근차근 해봅시다. 우선 시리얼 포트로 연결되어 있기에 콤보박스에 시리얼 포트를 검색해서리스트를 추가하는 것을 알아봅시다. 출처 : http://leekd123.tistory.com/48 우선 Ports 추가. using System.IO.Ports; 검색하고 콤보박스에 추가하는 코드 string[] portNames; portNames = SerialPort.GetPortNames(); cbPortList.Items.Clear(); foreach (var item in portNames) { cbPortList.Items.Add(item); } GetPortNames 로 연결된 시리얼 포트를 검색..

programing/C# 2017.02.10

[C#] 배열 0으로 초기화(Enumerable.Repeat)

배열을 선언하면서 0또는 같은 수로 초기화 하고 싶다.그러나 생성자에는 없는듯 하여 알아보았다.한글로 검색하면 나오질 않더이다. 구글 검색 : Array Zero Initialize 참고 : http://stackoverflow.com/questions/14210369/initialize-an-integer-array-with-a-single-value-in-c-sharp-net 정말 단 한줄로 가능.double[] array= Enumerable.Repeat(0, length).ToArray(); 한줄로 끝난다. 굿 ? 자료형만 맞춰주면 되고 '0'에 초기화 하고 싶은 숫자를 넣어 주면 된다.length 는 할당하고 싶은 크기를 넣어 주면 된다.

programing/C# 2017.01.24

[C#] DataTable To CSV File (String.Join() 사용)

아학학학학학학.. 매우 간단하게 DataTable을 CSV 파일로 저장하는 방법을 찾아냈다. 포지션 위치랑 각도 등을 테이블로 만든 후 csv 파일로 저장해야 되서 해보았다.반복도 매우 심플하게 해놓았다. 가져다 쓰시게.. 난 까먹을거 같아서 정리를.. 1. 파일 저장 위치 지정2. dataTable columns를 String.Join()을 사용해서 파일에 저장.3. 각 row를 String.Join()을 사용해서 파일에 저장.4. 저장 확인. 우선 코드 private void btnSaveTable_Click(object sender, EventArgs e) { //파일 저장 위치 선택. SaveFileDialog saveDlg = new SaveFileDialog(); saveDlg.InitialD..

programing/C# 2017.01.04

[C#] c++ Dll import (출처 및 팁..)

출처 : http://blog.danggun.net/16 위의 출처대로 하면 일단은 잘 됩니다. 단 제가 무시하고 했던것이 1-0.인크루드 이 부분이었는데꼭!!!!!!!!! #include 이거를 헤더에서 추가를 해주어야 합니다!!!! 꼮 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! tip1. 전달할 인자가 포인터 이면 ref를 사용해서 넘기면 됩니다.예를 들어 void swap(int *a, int *b) 로 c++에서 선언했다면C#에서는 void swap(ref int a, ref int b) 이렇게 해주면 됩니다. tip2. c++ 컴파일 환경과 C# 컴파일 환경이 맞아야 합니다. C#의 경우 anyCpu 라고 나오는데 이거스로 하면 c++ x86 DLL을 ..

programing/C# 2017.01.03

[C#] openFileDialog.FileName에서 파일 이름만(Path.GetFileName)

OpenFileDialog로 파일 경로를 구해온 뒤FileName에서 파일 이름만 구해오고 싶다.어떤 사람은 "\\"위치에서 그다음 인덱스를 이용해서 구해오는 사람도 있었으나.. 매우 간단하게 구해주는 함수가 있어서 정리할 겸 공유 할겸 정리를 해본다. 우선 경로에서 파일 이름과 확장자 를 가져오는 방법은Path.GetFileName(openFileDialog1.FileName); 위의 방법으로 하면 파일명과 확장자를 전부 가져 온다. 사실 내가 필요한건 확장자를 빼고 파일명만 가져오고 싶었다. 확인결과 역시나 함수가 있었다. Path.GetFileNameWithoutExtension(openFileDialog1.FileName); 위의 방법을 사용하면 확장자를 뺀 파일명만 리턴해준다. 매우 간단 ㅇㅈ?..

programing/C# 2016.12.22

[C#] CSV 파일 만들기(string.Join 함수)

CSV 파일을 만들어야 한다.내가 원하는 기능은 1. 한줄씩 파일에 입력하는 것.2. listbox에 있는 데이터를 csv에 입력하는 것.3. chart에 있는 y축 값을 차례대로 csv에 입력하는 것. 우선 코드를 다 붙여놓고 설명을 해보자. private void btnSaveAngle_Click(object sender, EventArgs e) { //저장 위치 결정. SaveFileDialog saveDlg = new SaveFileDialog(); saveDlg.InitialDirectory = System.Environment.CurrentDirectory; saveDlg.Filter = "csv (*.csv)|*.csv|txt (*txt)|*.txt|All files (*.*)|*.*"; i..

programing/C# 2016.12.20