'C#'에 해당되는 글 5건
- 2009.11.19 C#에서 Json 사용하기 - JSON for .NET 6
- 2008.11.26 [C#] 화면 깜빡임 처리 - 더블버퍼링 6
- 2008.11.18 [C#] 리스트뷰 속도 향상
- 2008.11.18 [C#] 특정 내용이 있는 파일 검색하기
- 2008.11.18 [C#] 실행시간 측정
2009. 11. 19. 20:48
C#에서 Json 사용하기 - JSON for .NET
2009. 11. 19. 20:48 in C#
반응형
여기에서 받아서 사용합니다.
http://sourceforge.net/projects/csjson/
C:\Program Files (x86)\CsJson\Bin\System.Net.Json.dll
를 Add Reference 로 추가하여 사용합니다.
using System.Net.Json;
를 추가해 주시구요.
JsonObjectCollection collection = new JsonObjectCollection();
collection.Add(new JsonStringValue("bank", strBankCode)); // 은행
collection.Add(new JsonStringValue("accno", strAccno)); // 계좌번호
collection.Add(new JsonStringValue("pass", strPass)); // 비밀번호
collection.ToString(); 의 내용은
{
"bank": "dg",
"accno": "1111",
"pass": "rlawnsgh"
}
가 됨
위의 결과를 역으로 다시 사용 하려면
JsonTextParser parser = new JsonTextParser();
JsonObject obj = parser.Parse(strResponse);
JsonObjectCollection col = (JsonObjectCollection)obj;
String accno = (String)col["accno"].GetValue();
와 같이 사용 하면 됩니다.
2008. 11. 26. 14:18
[C#] 화면 깜빡임 처리 - 더블버퍼링
2008. 11. 26. 14:18 in C#
반응형
어플리케이션 프로그래밍시 화면에 그림을 그릴때 화면에 이미지를 하나하나 그리면 그려지는 과정이 화면에 나타나서 깜빡 거리는 현상이 발생합니다.
그 때문에 미리 다른곳에 그린 후 그려진 결과를 화면에 뿌리는 방법을 사용하게 되는데 이를 "더블버퍼링"기법이라고 하죠.
C#에서는 이게 정말 간단히 구현이 되더군요.
폼이 로드 될 때 (ex public Form1() {})
를 넣어주면 됩니다
이렇게 해도 됩니다.
ps.
Paint 이벤트 함수 호출 함수는
입니다.
그 때문에 미리 다른곳에 그린 후 그려진 결과를 화면에 뿌리는 방법을 사용하게 되는데 이를 "더블버퍼링"기법이라고 하죠.
C#에서는 이게 정말 간단히 구현이 되더군요.
폼이 로드 될 때 (ex public Form1() {})
this.SetStyle(ControlStyles.DoubleBuffer, true);
this.SetStyle(ControlStyles.AllPaintingInWmPaint, true);
this.SetStyle(ControlStyles.UserPaint, true);
this.SetStyle(ControlStyles.AllPaintingInWmPaint, true);
this.SetStyle(ControlStyles.UserPaint, true);
를 넣어주면 됩니다
this.SetStyle(ControlStyles.DoubleBuffer | ControlStyles.AllPaintingInWmPaint | ControlStyles.UserPaint, true);
이렇게 해도 됩니다.
ps.
Paint 이벤트 함수 호출 함수는
Invalidate();
입니다.
2008. 11. 18. 16:26
[C#] 리스트뷰 속도 향상
2008. 11. 18. 16:26 in C#
반응형
ListView에서 add를 많이 하다 보면 속도가 느려지기 마련입니다.
아무런 처리를 하지 않고 그냥 add를 하면 하나 추가하고 그리고 하나 추가하고 그리다 보면 느려지겠죠;
결론부터 말하자면
BeginUpdate를 하게 되면 add가 되어도 목록에 적용이 되지 않습니다.
ps.
처음에는 그냥 배열에 있는 내용 한번에 빵~하고 넣어주는거 있나 찾아 봤는데 못찾았고
다음에 사용한 방법은 Hide() 후 Show() 였습니다. 이 방법도 속도는 빨랐지만 add 추가 작업하기 전에 listView가 통째로 사라져 버리는 문제가 있습니다 -_-;
아무런 처리를 하지 않고 그냥 add를 하면 하나 추가하고 그리고 하나 추가하고 그리다 보면 느려지겠죠;
결론부터 말하자면
listView.BeginUpdate();
// listView.Items.Add 처리
listView.EndUpdate();
BeginUpdate를 하게 되면 add가 되어도 목록에 적용이 되지 않습니다.
ps.
처음에는 그냥 배열에 있는 내용 한번에 빵~하고 넣어주는거 있나 찾아 봤는데 못찾았고
다음에 사용한 방법은 Hide() 후 Show() 였습니다. 이 방법도 속도는 빨랐지만 add 추가 작업하기 전에 listView가 통째로 사라져 버리는 문제가 있습니다 -_-;
2008. 11. 18. 13:19
[C#] 특정 내용이 있는 파일 검색하기
2008. 11. 18. 13:19 in C#
반응형
요즘 C#을 간간히 사용해보는 중인데 정말 간단하게 구현이 되는게 많네요.
간단한 유틸은 C#으로 만드는게 상당히 유용한거 같습니다.
그냥 File클래스의 ReadAllText하고 거기 내용 검색 하면 끝.
처음에는 StreamReader로 읽어서 ReadLine()으로 한줄한줄 읽어 와서 검색했었는데
ReadAllText를 이용 하니 365개의 파일 검색하는게 이전방식(StreamReader -> ReadLine -> Contains)으로 8초 정도 걸리던게 지금(File.ReadAllText -> IndexOf)은 600ms 정도 걸리네요.
추가.
StreamReader로도 좀 더 개선할 수 있더군요.
간단한 유틸은 C#으로 만드는게 상당히 유용한거 같습니다.
using System.IO;
bool bExist = false;
string sPath = @"C:\text.txt";
string sContents = File.ReadAllText(sPath, Encoding.Default);
int result = sContents.IndexOf("검색어");
if (result != -1)
bExist = true;
그냥 File클래스의 ReadAllText하고 거기 내용 검색 하면 끝.
처음에는 StreamReader로 읽어서 ReadLine()으로 한줄한줄 읽어 와서 검색했었는데
ReadAllText를 이용 하니 365개의 파일 검색하는게 이전방식(StreamReader -> ReadLine -> Contains)으로 8초 정도 걸리던게 지금(File.ReadAllText -> IndexOf)은 600ms 정도 걸리네요.
추가.
StreamReader로도 좀 더 개선할 수 있더군요.
StreamReader sr = new StreamReader(fi.FullName, Encoding.Default);ReadLine은 한줄단위고 그냥 한꺼번에 읽어 올 수 있는 ReadToEnd함수가 있군요.
string sContents = sr.ReadToEnd();
2008. 11. 18. 13:05
[C#] 실행시간 측정
2008. 11. 18. 13:05 in C#
반응형
C#에서 실행시간 측정하는 방법은 아주아주 간단합니다.
우선 using System.Diagnostics 를 선언해 주시고
Stopwatch 를 사용해 주시면 됩니다.
.Net 2.0부터 지원한다고 합니다. 하지만 이전버전에서도 손쉽게 만들어 쓸수 있는거 같더군요.
using System.Diagnostics;
Stopwatch sw = new Stopwatch();
sw.Start();
// 처리 프로세스
// while, for, foreach 등
sw.Stop();
MessageBox.Show(sw.ElapsedMilliseconds.ToString() + "ms");
Stopwatch sw = new Stopwatch();
sw.Start();
// 처리 프로세스
// while, for, foreach 등
sw.Stop();
MessageBox.Show(sw.ElapsedMilliseconds.ToString() + "ms");
우선 using System.Diagnostics 를 선언해 주시고
Stopwatch 를 사용해 주시면 됩니다.
.Net 2.0부터 지원한다고 합니다. 하지만 이전버전에서도 손쉽게 만들어 쓸수 있는거 같더군요.