Hashtable.. 이놈을 당연히 모든 개발자들을 알 것이죠.

-_- 근데.. 이놈을 출력할때는 랜덤입니다..

1,2,3,4 로 넣었다고 할 경우

1 3 2 4 라던지 경우의 수대로 막 -_-..

그런게 싫다면 sortedList 를 이용하면 좋죠

정해진 기준에 순차적으로~ 슈슉~ 나오지만.. -_- 네.. 무겁습니다.. 것도 아주 제대로 -_-

Hashtable을 이용하면 key와 value 값을 구분해서 쉽게 이용되죠

Hashtable table = new Hashtable();
table.add(key,value);

이런 식으로 쓰면 됩니다.

물론 key와 value에 정해진 타입은 없습니다.

쓰시고 싶은 형태로 정의하시면 됩니다.!!

가장 기초적이라 할 수도 있는 컬렉션이지만..

다시 한번 돌아보면 좋겠죠?^_^/

TripleDES를 이용하여 C#에서는 손쉽게!! 암호화를 한다.

TripleDESCryptoServiceProvider tDESalg = new TripleDESCryptoServiceProvider();

하지만 -_- 이놈에 대해서 한번이라도 생각해 본 적 있는가?

생성할때마다 Key와 IV 의 값이 달라진다.

그래서 생각해 낸것이!!

File.WriteAllBytes(경로,Key 또는 IV)를 이용하여 파일로 빼둔다!!

그리고 난다음 복호화 할때 저 파일을 File.ReadAllBytes(경로)를 해서 해 놓으면!!

APP 개발에 도움이 많이 될 것이다!! 라고 필자는 생각한다 ^_^/

우힛~ -_-;
C#에는 TCP방식에 헬퍼 클래스를 이용할 수도 있고

Socket을 열어서 적용 시켜줄 수도 있다.

그럼 여기서 각각의 NetworkStream을 받아서 적용하는 법을 알아보자

1. Socket

Socket server=null;
Socket client=null;
...
이렇게 정의 되어 있다고 한다면
server 소켓에 연결된 것을 client에 바인딩 해 준다
client = server.Accept();

이렇게 하면 연결이 된 것이다

하면 NetworkStream은 어떻게 쓰느냐?
NetworkStream ns = new NetworkStream(client);
를 해 주면 ns에 대해서 확보를 한다.

SreamWriter나 StreamReader를 이용할 경우 new 스트림 종류(ns) 를 해 주면 적용이 된다.

2. 헬퍼 클래스

TCPListener 를 통하여 연결되었다고 할 경우에

NetworkStream ns =null;

상태에서

ns = client.getStream();

처리를 해 준다음

SreamWriter나 StreamReader를 이용할 경우 new 스트림 종류(ns) 를 해 주면 적용이 된다.

간단하지만.. 약간의 차이점이랄까?
솔직히.. -_- 이거 땀시.. 머리 좀 많이 굴렸다..

왜? -_- 스레드의 생명 주기와 같이 끝나는 시점을.. 몰랐기에..

그냥 MSDN 볼걸... ㅠ_ㅠ

브레이크 포인트 찍어서 정확하게 알아낸게 어딘지.. ㅠ_ㅠ

일단 Stream을 통해서 ReadLine()을 한 것은 바로 제어권이 넘어간다

하지만!!

ReadToEnd()한 것은.. -_-

해당 Stream이 닫혀야지만.. 그 제어권이 넘어갔다..

필자는.. -_- 솔직히 이 두개 똑같은 형식일거라 생각하고 아무 생각없이..

-_- 뭐지.. 하면서 여러 수십번 실행을 해 봤다..

테스트 해 보실 분은 FileStream을 열어서 각각 ReadLine()과 ReadToEnd()

두가지를 적용해 보시면 금방 알아채실 것이다..

-_- 아 글고 딱 보면 알 것이다.

ReadLine()은 한줄 한줄 불러들이지만!!

ReadToEnd()는.. -_- 끝까지~ 다 긁어온다!!
[C#]일본어 인코딩 C# 2009. 4. 7. 18:28
Encoding sjisEnc = Encoding.GetEncoding("Shift_JIS");

처리를 한 후 당겨 쓰면 된다 -_-a

DllImport를 오랜만에 하면서 이래저래 손댔더니 -_-;;

기억 저 멀리에서 -_-..

반갑게 맞이하네;;
MSDN에서 찾았다.

컬럼을 지정해 주지 않고는 GridView에 데이터가 표현이 되지 않아서 어떻게 할까 했다

가변적으로 변하는 컬럼들의 이름과 타입때문에 직접받아와서 해 보고 했지만..

내키지 않아서 찾아본 결과.. 좋은 예가 있었다.

그 코드 내용은 다음과 같다.

OracleDataAdapter dataAdapter = new OracleDataAdapter("select * from test_khw", _connectionString);
                OracleCommandBuilder commandBuilder = new OracleCommandBuilder(dataAdapter);
                DataTable table = new DataTable();
                table.Locale = System.Globalization.CultureInfo.InvariantCulture;
                dataAdapter.Fill(table);
                dataGridView1.DataSource = table;*/
                //dataGridView1.AutoResizeColumns(DataGridViewAutoSizeColumnsMode.AllCellsExceptHeader);

데이터 베이스 종류를 바꿔서 이용할때는 각기 맞는 클래스로 변경해서 해 주면 출력이 된다.
[C#]GridView에 CheckBox 넣기 C# 2009. 3. 24. 13:07
먼저 테이블을 생성하고 그 테이블에 아래와 같이 넣어 주면 된다.

_tbl.Columns.Add("select", typeof(System.Boolean));

물론 GridView를 생성할때 VS를 이용해도 된다.

체크 유무의 값은 True와 False로 나타난다.

그 값을 확인하기 위해서는

GridView[i, j].Value를 이용하면 얻을 수가 있다!

필자는 것도 모르고 -_-;; 상태가 바뀔때마다 체크를 했다가

삽질아닌 삽질을 했다 ㅠ_ㅠ
일전에 쉽게 데이터 타입을 가져온 부분이다.

MSDN인가.. 거기서는 Row와 Column 이중 루프를 돌아서 받아오는 것을 봤었다.

하지만.. 코드 양도 줄이고 탐색 시간 면에서도 필자가 보기엔 이것이 더 좋은 것 같다.
                foreach (DataColumn col in ds.Tables[_table].Columns)
                {
                    if (i < _cloumntoken.Length)
                    {
                        if (col.ColumnName.ToString().Equals(_cloumntoken[i].ToString()))
                        {                           
                            lstColumn.Items.Add(col.DataType.ToString());
                            _type[i] = col.DataType.ToString();
                            i++;
                        }                       
                    }
                }

너무나 당연히 모두들 알고는 있지만 다이얼로그를 이용한 파일 열기에 대해서

주절거리는 시간이 왔다!!

OpenFileDialog open = new OpenFileDialog();

            open.Filter = "SQL File(*.sql)|*.sql|Config File(*.ini)|*.ini|AllFiles(*.*)|*.*";
            open.InitialDirectory = @"C:\";
            open.Title = "원하시는 파일을 선택해 주십시오";

            if (open.ShowDialog() == DialogResult.OK)
            {
                this.txt_Filepath.Text = open.FileName;
            }

먼저 다이얼로그의 객체를 생성한다.

다음은 필터다. 자기가 원하는 필터를 설정해 준 다음

기본 디렉토리를 정해 준다.

그럼.. 끝이다 -_-;;

Sava 다이얼로그도 같은 형식이다.

너무 기초적이라고들 하지만.. 난 이렇게 생각한다.

분명!! 모르는 사람 많다.

그래서.. 필자는;; -_-;; 올릴까 말까 하다가 스스로의 발전을 위해서

글을 올려본다.

[C#]Ping Test C# 2009. 3. 22. 18:27

C#으로 Ping을 테스트하는 방법이 없을까.. 하는 생각에 -_-;

그냥 무작정;; 바보같은 짓을 하다가 MSDN에 있는 코드를 발견했다 -_-;

Ping pingSender = new Ping();
PingOptions options = new PingOptions();

            // Use the default Ttl value which is 128,
            // but change the fragmentation behavior.
            options.DontFragment = true;

            // Create a buffer of 32 bytes of data to be transmitted.
            string data = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
            byte[] buffer = Encoding.ASCII.GetBytes(data);
            int timeout = 120;
            PingReply reply = pingSender.Send("127.0.0.1", timeout, buffer, options);
            if (reply.Status == IPStatus.Success)
            {
                Console.WriteLine("Address: {0}", reply.Address.ToString());
                Console.WriteLine("RoundTrip time: {0}", reply.RoundtripTime);
                Console.WriteLine("Time to live: {0}", reply.Options.Ttl);
                Console.WriteLine("Don't fragment: {0}", reply.Options.DontFragment);
                Console.WriteLine("Buffer size: {0}", reply.Buffer.Length);
            }

C#에서 지원하는 Ping, PingOption, PingReply, PingSender에 의해서 이루어지는 순서이다.
많은 분들이 당연히 알고 있으신 DataBase Connection에서 open()을 실행 했을시

conn.state 를 하면 Open의 유무를 알 수 있듯

여기에서는 PingReply에 의한 Status를 체크하여 성공 유무를 받아 처리한다.

하움.. -_- 확실한건.. 왠만하면 MSDN에서 먼저 찾아보자라는 것을 몸으로 느껴버린 사례이다 ㅠ_ㅠ
앞으로 갈 길은 많고.. 할 것도 많은.. Neo의 삽질은!!

계속된다!!