'C# > Network' 카테고리의 다른 글

GetHostName 및 GetHostByName  (0) 2012.06.13
C# POSTDATA 파일 업로드  (0) 2012.06.04
Socket Server 연결 Sample  (0) 2012.04.18
Socket Client 연결 Sample  (0) 2012.04.18
네트워크 바이트 오더 변경 클래스  (0) 2012.04.17
/*
	MyHeight 의존 프로퍼티 선언

	PropertyMetadata 의 Default 값을 줄 때 해당 데이터형으로 캐스팅을 하지 않으면 문제가 발생할수 있다.
*/
public static readonly DependencyProperty MyHeightProperty = 
	DependencyProperty.Register ("MyHeight", typeof (double), typeof (MainPage), 
	new PropertyMetadata ((double) 0, new PropertyChangedCallback (OnMyHeightChanged)));

/*
	프로퍼티 수정시 처리하는 핸들러
*/
private static void OnMyHeightChanged (DependencyObject d, DependencyPropertyChangedEventArgs args)
{
	((MainPage)d).OnMyHeightChanged (args);
}

/*
	실제 데이터를 처리할 핸들러
*/
protected virtual void OnMyHeightChanged (DependencyPropertyChangedEventArgs args)
{
	// 로직
}

/*
	의존 프로퍼티
*/
public double MyHeight
{
	get { return (double) GetValue (MyHeightProperty); }
	set { SetValue (MyHeightProperty, value);  }
}

public MainPage ()
{
	/*
		스크롤Viewer 의 ExtentHeight 와 MyHeight 를 연결한다.
	*/

	// 데이터 바인딩..
	Binding newBinding = new Binding ("ExtentHeight");
	newBinding.Source = sView;

	// 바인딩 데이터를 연결한다.
	SetBinding (MyHeightProperty, newBinding);

}

TreeView 기본 틀

C#/SilverLight 2012. 6. 1. 09:57 Posted by 퓨어레드

<!-- 네임 스페이스 선언 -->

<UserControl x:Class="FreeTest.MainPage"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:sdk="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls"
    mc:Ignorable="d"
    d:DesignHeight="300" d:DesignWidth="400">

<Grid x:Name="LayoutRoot" Background="White">
        <sdk:TreeView>
            <sdk:TreeViewItem Header="바탕 화면">
                <sdk:TreeViewItem.Items>
                    <sdk:TreeViewItem>
                        <sdk:TreeViewItem.Header>
                            <TextBlock Text="내 문서" Margin="2" />
                        </sdk:TreeViewItem.Header>
                        <sdk:TreeViewItem.Items>
                            <sdk:TreeViewItem>
                                <sdk:TreeViewItem.Header>
                                    <TextBlock Text="내 사진" Margin="2" />
                                </sdk:TreeViewItem.Header>
                            </sdk:TreeViewItem>
                            <sdk:TreeViewItem>
                                <sdk:TreeViewItem.Header>
                                    <TextBlock Text="내 비디오" Margin="2" />
                                </sdk:TreeViewItem.Header>
                            </sdk:TreeViewItem>
                        </sdk:TreeViewItem.Items>
                    </sdk:TreeViewItem>
                </sdk:TreeViewItem.Items>
            </sdk:TreeViewItem>
        </sdk:TreeView>
    </Grid>
</UserControl>

 

C#.NET 입출력 관련 정리

C#/기본 2012. 5. 24. 12:56 Posted by 퓨어레드

닷넷 강의를 듣다가 한번 쯤 정리하고 싶어서 정리 했다. ^^ 필요한 내용임~

 

C#.NET 입출력 정리

 

스트림

, 출력 작업을 대행해 주는 중간 매개체

-       , 출력의 대상이 되는 장치에 상관없이 동일한 방법으로 자료 조정

 

스트림의 종류

-       입력 스트림 : TextReader, BinaryReader

-       출력 스트림 : TextWriter, BanaryWrtier

-       스트림 클래스는 입출력이 동시에 사용 가능함

 

.NET 에서 파일과 디렉토리 클래스

 

FileSystemInfo

파일 시스템 객체를 나타내는 클래스

Directory, DirectoryInfo

디렉토리를 나타내는 기본 클래스

File, FileInfo

파일을 나타내는 기본 클래스

Path

경로를 조정하기 위한 클래스

 

 

File 클래스

-       입출력에 관련된 클래스들 중 기본이 되는 클래스

-       파일에 관련된 정보를 제고

-       FileStream 의 객체를 생성하여 파일의 입출력 작업을 수행

-       클래스 내의 맴버 메서드들은 public static 으로 되어있음

-       파일 관련 정보 (파일 존재 여부, 파일 생성 시간, 엑세스 시간, 최종 수정시간 등…)

-       파일 삭제, 복사, 이동 가능

 

File 클래스 주요 메서드

File.Copy

파일을 복사 한다.

File.Copy (“File.Test.cs”, “Output.txt”, true);

File.Exists

파일이 존재 하는지 체크한다.

File.Exists (“Output.txt”);

File.GetCreationTime

파일 생성 시간을 리턴한다.

 

File.OpenRead

FileStream 을 리턴한다.

 

 

문자 스트림 생성 예제

FileStream fs = File.OpenRead (”poet.txt”);

StreamReader r = new StreamReader (fs, System.Text.Encoding.Default);

 

// 문자 스트림 변환

r.BaseStream.Seek (0, SeekOrigin.Begin);

while (r.Peek () > -1)

Console.WriteLine (r.ReadLine ());

r.Close ();

Directory 클래스

Directory.CreateDirectory

디렉터리 생성

Directory.Exists

디렉토리 존재 확인

Directory.GetFiles

파일 리스트를 리턴한다.

Directory.GetDirectories

디렉토리 리스트를 리턴한다.

 

 

 

 

 

Path 클래스

Path.DirectorySeparatorChar

디렉토리 구분 문자

Path.Combine

패스를 합친다.

Path.GetFileName

파일 이름을 리턴한다.

 

 

 

Stream 클래스

-       Stream 클래스는 추상 클래스

-       바이트 단위로 데이터를 처리하는 바이트 스트림 클래스들 중 최 상위 기본 클래스

-       바이트 스트림 클래스

-       파일, 입출력 장치, 프로세스 사이의 통신, Socket 통신 등에서 사용

 

FileStream 클래스

-       파일을 읽고 쓰는 기능을 제공하는 클래스

-       Stream 클래스 상속

-       바이트 스트림에 속함

-       스트림 생성하는 곳은 파일

 

l  파일 쓰기 예제

String path = @”C:\Test.txt”;

 

FileStream fs = new FileStream (path, FileMode.Create);

StreamWriter sw = new StreamWriter (fs, System.Text.Encoding.Default);

sw.BaseStream.Seek (0, SeekOrigin.End);

 

sw.WriteLine (“-------------------------------“);

sw.WriteLine (“테스트 이다.“);

sw.WriteLine (“-------------------------------“);

 

sw.Flush ();

sw.Close ();

 


 

*. 파일 읽기 예제

FileStream fs = new FileStream (path, FileMode.OpenOrCreatem, FileAccess.Read);

 

StreamReader sr = new StreamReader (fs, System.Text.Encoding.Default);

sr.BaseStream.Seek (0, SeekOrigin.Begin);

 

while (sr.Peek () > -1)

Console.WriteLine (sr.ReadLine ());

 

sr.Close ();

 

BufferedStream

-       버퍼 기능을 가진 바이트 스트림

-       내부적으로 버퍼 기능을 제공해 주는 스트림

-       입력에 대한 버퍼링과 출력에 대한 버퍼링을 지원

-       버퍼링 BufferedStream 클래스의 Flush () 메서드가 호출되면 한번에 데이터를 쓴다.

 

FileStream fs = new FileStream (path, FileMode.OpenOrCreatem, FileAccess.Read);

 

BufferedStream bi = new BufferedStream (fs);

 

.. 처리

 

bi.Close ();

 

MemoryStream 클래스

-       메모리를 목표지점을 하드웨어적인 장치나 파일이 아닌 메모리를 그 대상으로 하고 있는 바이트 스트림

-       메모리 공간에 상주되어 있는 데이터를 목표지점으로 함

-       부호 없는 바이트 배열로 저장된 데이터를 캡술화 함

byte [] values = new byte [] {0, 1, 2, 3, 4, 5, 6};

 

MemoryStream ms = new MemoryStream (values);

 

int temp = 0;

 

while ((temp = ms.ReadByte ()) != -1)

Console.Write (temp);

 

ms.Close ();

 


 

TextReader & TextWriter 클래스

-       문자 스트림의 입출력을 관장하는 최상위 추상 기본 클래스

-       해당 데이터가 문자라고 가정, 문자의 인코딩을 검사 후 문자의 인코딩에 따라 자동으로 문자 해석

-       C# 에서 사용하는 문자 포멧인 유니코드로 변환

-       하위 클래스들에게 자신들의 메서드를 재정의 해서 사용할 수 있는 역할 제공

-       TextReader : 16비트의 유니코드 형식으로 데이터를 읽음

-       TextWriter :

 

StringReader, StringWriter 클래스

-       문자열을 스트림에 기록하거나 읽어낼 때 사용하는 클래스

-       목표 지점은 String 형의 데이터

-       TextReader 클래스와 TextWriter 클래스를 각각 상속

 

String str = “abcdef”;

 

StringReader s = new StringReader (str);

StringWriter w = new StringWriter ();

 

While ((ch = s.Read ()) != -1)

Sw.Write ((char) ch);

 

s.Close ();

w.Close ();

 

StreamReader, StreamWriter 클래스

-       바이트 스트림을 문자 스트림으로 바꾸어 주는 역할을 담당하는 스트림

-       기본적으로 TextReader TextWriter 에서 상속

 

BinaryReader & BinaryWriter 클래스

-       데이터 타입에 해당하는 메모리 사이즈에 따라서 바이너리 형식으로 읽음

 


스트림을 이용하여 웹페이지 받기

-       스트림을 사용하여 웹페이지를 읽어오는 원리

-       네트워크에 연결된 스트림을 생성 후 그 스트림으로 데이터를 읽어오는 것

-       WebRequest 클래스와 WebResponse 클래스 사용

 

int length = 1024;

char [] buffer = new char [length];

 

WebRequest req = WebRequest.Create (http://aaaaa);

WebResponse res = request.GetResponse ();

 

StreamReader sr = new StreamReader (response.GetResponseStream (), System.Text.Encoding.Default);

 

int count = 0;

 

do

{

count = sr.Read (buffer, 0, length);

Console..WriteLine (buffer);

}

while (count > 0)

 

sr.Close ();

 

 

 

'C# > 기본' 카테고리의 다른 글

웹브라우져 띄우기  (0) 2012.06.22
날짜형 파싱하여 DateTime 형으로 만들기  (0) 2012.06.13
const 와 readonly 의 차이  (0) 2012.05.02
C# 컬렉션 - 1  (0) 2012.05.02
foreach 랑 indexer  (0) 2012.05.02

실버라이트 자바스크립트와 통신

C#/SilverLight 2012. 5. 23. 11:43 Posted by 퓨어레드

Visual Studio 2010 SP1 설치 경로

C# 2012. 5. 22. 16:31 Posted by 퓨어레드

const 와 readonly 의 차이

C#/기본 2012. 5. 2. 15:08 Posted by 퓨어레드

const : 상수화

*. 초기화와 동시에 값을 셋팅해야 된다.

*. 자동으로 static 으로 선언된다.

 

readonly : 읽기 전용

*. 초기화를 안해줘도 괜찮다.

*. 딱 한번만 값을 설정할수 있다.

*. static 키워드를 붙이지 않으면 static 으로 동작하지 않는다.

 

'C# > 기본' 카테고리의 다른 글

날짜형 파싱하여 DateTime 형으로 만들기  (0) 2012.06.13
C#.NET 입출력 관련 정리  (0) 2012.05.24
C# 컬렉션 - 1  (0) 2012.05.02
foreach 랑 indexer  (0) 2012.05.02
Dictionary .. (Generic 으로된 Hashtable)  (0) 2012.05.02

C# 컬렉션 - 1

C#/기본 2012. 5. 2. 15:07 Posted by 퓨어레드

컬렉션의 기본 인터페이스 : System.Collections

IEnumerable 과 IEnumerator 인터페이스

IEnumerable : 컬렉션 클래스가 구현을 해야 되는 인터페이스
IEnumerator : 컬렉션 클래스가 IEnumerable 을 구현했다면 IEnumerator 을 이용하여 데이터 접근 가능

IEnumerable 은 GetEnumerator 을 구현해야한다.


기본 예제 )

string [] a = {"A", "B", "C", "D", "E", "F"};

IEnumerator e = a.GetEnumerator ();

while (e.MoveNext ())
{
System.out.println ((String) e.Current);
}

ICollection 인터페이스
- ICollection 은 IEnumerable 을 상속한다.

- 주요 맴버
- Count : 컬렉션의 객체수 반환
- IsSynchronuzed : 컬렉션에 대한 접근 동기화 여부
- SyncRoot : 동기화 객체

ICollection c = a; // 배열은 ICollection 으로 캐스팅이 가능하다.

 

'C# > 기본' 카테고리의 다른 글

C#.NET 입출력 관련 정리  (0) 2012.05.24
const 와 readonly 의 차이  (0) 2012.05.02
foreach 랑 indexer  (0) 2012.05.02
Dictionary .. (Generic 으로된 Hashtable)  (0) 2012.05.02
ini 파일 Class  (0) 2012.04.19

foreach 랑 indexer

C#/기본 2012. 5. 2. 15:07 Posted by 퓨어레드

foreach 문법도 완전 초햇갈려 아웅 미쳐

foreach (타입 변수명 in 배열 또는 컬랙션)

{

}

->

foreach (int a in intArr)

{

}

이당

Indexer

public 데이터타입 this[int index]

{

get { }

set { }

}

이다.

당연한것이지만 get 은 리턴을 해야된다 -_-;;

 

'C# > 기본' 카테고리의 다른 글

const 와 readonly 의 차이  (0) 2012.05.02
C# 컬렉션 - 1  (0) 2012.05.02
Dictionary .. (Generic 으로된 Hashtable)  (0) 2012.05.02
ini 파일 Class  (0) 2012.04.19
오버라이딩  (0) 2012.04.19