출처 : http://hackss.tistory.com/entry/c-richtextbox%EC%97%90%EC%84%9C-%EA%B8%80-%EC%9E%85%EB%A0%A5%EC%8B%9C-%EC%9E%90%EB%8F%99%EC%8A%A4%ED%81%AC%EB%A1%A4-%ED%95%98%EA%B8%B0







richtextbox에서 글을 입력할때 자동으로 밑으로 내려 가지 않는다

이것을 해결하기 위해


this.richTextBoxDescription.ScrollToCaret();



이거 한줄만 추가해주면 된다.




Posted by 요지
,

출처 : http://markupbang.com/blog/?p=983





레지스트리 편집기를 연다.
: 실행창을 열어(ctrl + r) regedit 입력 후 엔터

HKEY_LOCAL_MACHINE → SOFTWARE → Microsoft → Windows →CurrentVersion → Explorer →ShellIconOverlayIdentifiers

스크린샷 2015-06-30 15.40.49

1TortoiseNormal ~ 9TortoiseUnversioned 의 앞에 빈칸을 넣어 레지스트리 순위를 올려준다.

재부팅하면 녹색 아이콘이 뜨는것을 확인 할 수 있다.

스크린샷 2015-06-30 15.43.42



Posted by 요지
,


Posted by 요지
,



출처 : http://l2j.co.kr/1609






개  

   - 삼성전자 프로젝트간 Excel 데이타를 읽는 도중 잠시 해매었던 
     부분이었습니다. 그래서 이렇게 정리해서 올립니다.
     Microsoft.Jet.OLEDB 를 이용한 Excel Sheet 읽기 및 HDR, IMEX 값에 대해..

예제 소스

  1. // Excel파일 --> DataTable로 읽어 들이기
  2. using System.Data.OleDb;
  3. public System.Data.DataTable ReadXlsFile(string sheetName)
  4. {
  5.     string connectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;
       Data Source=" + 
    _filename + ";Extended Properties=
       \"Excel 8.0;HDR=YES;IMEX=1\"";
  6.     OleDbConnection conn = new OleDbConnection(connectionString);
  7.     OleDbCommand comm = new OleDbCommand();
  8.     OleDbDataAdapter adap = new OleDbDataAdapter();
  9.     comm.Connection = conn;
  10.     comm.CommandType = CommandType.Text;
  11.     comm.CommandText = "select * from [" + sheetName + "$]";
  12.     adap.SelectCommand = comm;
  13.     System.Data.DataTable dtXls = new System.Data.DataTable("");
  14.     adap.Fill(dtXls);
  15.     return dtXls;
  16. }

* 간단히 보기 위해 Exception 처리는 생략 하였습니다.

 소스설명

1. ConnectionString의 옵션정보

  - HDR : YES를 하게 되면 Excel Sheet의 제일 윗줄은 데이타가 아닌 타이틀이 
              존재한다는 것을 알립니다.
           NO를 하게 되면 첫줄부터 데이타가 시작함을 알립니다.

  - IMEX : Excel 데이터를 로드할 경우, Excel ISAM 드라이브에서 처음 몇 개의
               행을 읽어서 
데이터의 유형을 결정하게 됩니다.
               이 때데이터 유형은 텍스트 형(nvarchar)이거나 숫자 형(Float)형 둘 중의
               하나로 
결정되어 집니다.
               이로인해 연속된 문자타입 중 숫자타입이 나오면 그값은 Null로 읽어 들여
               지는 현상이 
생기며, 반대의 경우도 마찬가지 입니다.
               기본값은 0이며, 1로 셋팅을 하면 숫자가 정상적으로 읽어 들여집니다.
               말로 하는 내 자신도 너무 힘드네요...
               자세한 내용은 아래 예제를 통해 보여 드리겠습니다.


 실습예제

  1. Excel Sample 준비 

사용자 삽입 이미지

  A컬럼 : 문자로 구성
  B컬럼 : 숫자로 구성
  C컬럼 : 문자 및 숫자로 구성
  D컬럼 : 숫자 및 문자로 구성
  E컬럼 : 숫자형태의 문자로 구성

# 타입이 다른 각 컬럼에 대해 Connection String 옵션에 따라 데이타가 어떻게 읽어 
  들여 지는지 확인 해 볼 것입니다.

  2. 테스트 프로그렘 준비
    - 솔루션 구성

사용자 삽입 이미지


    1) 웹사이트 프로젝트를 새로 만듭니다. (웹프로젝트로 하는건 아~~~~무 이유 
        없습니다..
        윈폼으로 하셔도 괜찮습니다....단지 아래 실습과는 조금 차이가 있겠죠?)
    2) ASP.NET 폴더추가에서 App_Code 를 추가 합니다.
    3) ExcelHelper 라는 클래스를 추가 합니다. 
       (이곳에 Excel파일을 읽어 들이는 메소드를  작성 할 것입니다.)

     - Excel Helper 클래스 관련 메소드 작성

        public System.Data.DataTable ReadXlsFile()
        {
            string connectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;
            Data Source=D:\test.xls;Extended Properties=""Excel 8.0;
            HDR=YES;IMEX=1""";
            OleDbConnection conn = new OleDbConnection(connectionString);
            OleDbCommand comm = new OleDbCommand();
            OleDbDataAdapter adap = new OleDbDataAdapter();
            comm.Connection = conn;
            comm.CommandType = CommandType.Text;
            comm.CommandText = "select * from [sheet1$]";
            adap.SelectCommand = comm;
            System.Data.DataTable dtXls = new System.Data.DataTable("");
            adap.Fill(dtXls);
            return dtXls;
        }
        위와 다른 점은 테스트를 위해 하늘색으로 표시한 부분은 파일경로와 
        SheetName을 하드코딩으로 적어 두었습니다.   
        워낙 게으르다 보니..........ㅡㅡ;;

     - Default.aspx UI 디자인     

사용자 삽입 이미지

       1) GridView 및 ObjectDataSource 컨트롤을 배치합니다. 

사용자 삽입 이미지


      2) 위와 같이 각각의 바인딩 정보를 셋팅 합니다.
          - GridView의 DataSourceID = "ObjectDataSource1"
          - ObjectDataSource TypeName ="ExcelHelper",
             SelectMethod = "ReadXlsFile"
 
     기본 컨트롤 사용법은 설명 드리지 않겠습니다..........(역쉬 이것도 게을러서...)
     자 이제 준비 작업은 다 마쳤습니다.
     그럼 옵션별 예제 프로그램을 실행시켜 데이타 값을 확인 해 보겠습니다.


  예제 1)  HDR=YES;IMEX=1 일 경우 

사용자 삽입 이미지

   - 보기 편하게 하기 위해 자동서식을 적용하였습니다.
      결과 화면을 보면 엑셀파일의 제일 첫줄을 해더 정보로 보고 문자컬럼,
      숫자컬럼..을 해더 정보로 활용하는 것을 볼수 있습니다.

     이는 실제 DataTable의 Row 0번째 값을 확인 하면 값은 a, 1, a, 1, 6 행이 
    출력되는 것을 확인 할수 있습니다.
     상위 문자컬럼, 숫자컬럼, 문자숫자컬럼, 숫자문자컬럼, 문자컬럼은 
    ColumnName으로 확인 할수 있습니다.


  예제 2)  HDR=NO;IMEX=1 일 경우  

사용자 삽입 이미지

  - 위와 비교해보면 엑셀의 첫행부터 데이터로 인식하기 때문에 임의의 해더 정보를
     만들어 자동 추가 시킨후 아래 데이타를 읽어들이는 것을 볼수 있습니다.

  예제 3)  HDR=YES;IMEX=0 일 경우

  * 엑셀파일

사용자 삽입 이미지


  * 실행결과

사용자 삽입 이미지

  - 비교를 위해 엑셀파일을 한번더 올렸습니다.
    IMEX=0로 하였을 경우 위 결과 화면과 같이 같은 종류의 데이타 타입이 존재할
    경우 아무 이상없이 출력이 되는 것을 확인 할수 있습니다.
    하지만 (숫자,문자) 또는 (문자,숫자)의 조합 컬럼은 데이타가 누락됨을 알수
    있습니다.
    이는 앞에 설명 드렸듯이, ISAM 드라이브에서 처음 몇 개의 행을 읽어서
    
데이터의 유형을 결정하게 되므로 일어나는 현상 입니다.

    이상으로.........허접한 포스트 하나 올립니다.....

     예제로 쓰인 소스는 첨부로 올려 두었습니다.



테스트 환경
- OS : WindowsXP Professional
- 개발툴 : VS.NET 2005
- 기타 : Excel 2003


Posted by 요지
,


Linux 문서편집기 vi, vim 명령어 정리


출처 : http://hyeonstorage.tistory.com/274




Linux 문서편집기 vi, vim 명령어 정리


Linux나 Unix에서 환경설정 파일 등을 수정해야 될때 vi 또는 vim을 사용한다.


하지만 윈도우의  단축키에 익숙해져 있는데다 자주 사용하지 않다보니 매번 명령어가 헷갈린다.


사용할때마다 찾아서 사용하기 보다 여기다 정리해놓고 참고해야겠다.




<vi 편집기로 실행한 php.ini 파일>


1. vi 실행하기


명령어 

동작 

vi file 

file을 연다 

vi file1 file2

file1 과 file2 를 차례로 연다 

view file 

file을 읽기 모드로 연다 

vi -R file 

file을 읽기 모드로 연다 

vi + file

file을 열때 커서가 file 본문의 마지막 행에 위치한다. 

vi +n file 

file을 열어 n행에 위치한다. 

vi -r file

손상된 파일 회복


2. 입력모드 전환 명령어


명령어 

동작 

i 

커서 있는데서 입력모드 전환 

I

커서 왼쪽, 행의 처음에 몬자 삽입 

커서 있는 줄 끝에서 입력모드 전환 

A

커서 오른쪽, 행의 끝에 문자 삽입 

커서 있는 줄 아래에 빈 줄 삽입 

커서 있는 줄 위에 빈 줄을 삽입 

덮어쓰기 모드로 전환 


3. 커서의 이동


명령어 

동작 

^, 0 

줄의 처음으로 이동 

줄의 끝으로 이동 

H 

화면 맨 위로 이동 

M

화면의 중간으로 이동 

L 

화면 맨 아래로 이동 

다음 단어 끝으로 커서 이동 

e

다음 단어 앞으로 커서 이동

b  

이전 단어로 이동 

shift + ↑ 

한 페이지 앞으로 이동 

shift + ↓

한 페이지 뒤로 이동 

3l , 3G

현재 커서 위치한 행에서 3번째 행으로 이동 

Ctrl + i

한 화면 위로 이동 

Ctrl + b

한 화면 아래로 이동 

Ctrl + d

반 화면 위로 이동 

Ctrl + u

반 화면 아래로 이동 

Ctrl + e

한 줄씩 위로 이동 

Ctrl + y

한 줄씩 아래로 이동 


4. 삭제


명령어 

동작 

x 

한 문자 삭제 

5x

커서가 있는 위치부터 5개의 문자를 삭제 

d + ↑ 

커서있는 줄, 윗줄 2줄 삭제 

d + ↓ 

커서잇는 줄, 아래줄 2줄 삭제 

dw 

한 단어 삭제 

dd 

한 줄 삭제 

5dd

커서가 있는 라인부터 5개의 라인 삭제 

db

커서의 위치에서 거꾸로 한 단어 삭제 

한줄 내에서 커서있는 뒤 모두 삭제 

u 

바로 전에 수행한 명령을 취소 

:5,10ㅇ

5~10번째 행 삭제 


5. 복사와 붙여넣기


명령어

동작

yy

현재 줄을 버퍼로 복사 

p 

버퍼에 있는 내용을 커서 뒤에 삽입 

P

버퍼에 있는 내용을 커서 앞에 삽입 

3y 

현재 줄에서부터 아래로 3줄 복사 

:5, 10y

5~10줄을 버퍼로 복사 

:30pu

30행에 버퍼 내용을 삽입 

d 

현재 커서가 위치해 있는 단어 복사 

3yy

현재 행을 기준으로 3번째 행까지 n행 복사 


6. 문자열 찾기


명령어

동작

/name

name 문자열 찾기 

n

다음 name으로 이동

N

n과 같으며 역방향으로 이동 


7. 문자열 대체


명령어 

동작 

:s/str/rep

현재 행의 str을 rep로 대체

:l,.s/str/rep/ 

1부터 현재 행의 str을 rep로 대체 

:%s/str/rep/g 

파일 전체 str을 rep로 전부 대체 

:.$/aaa/bbb

커서의 위치로부터 파일의 끝까지 있는 모든 aaa를 bbb로 대체 


8. 파일 저장 및 불러오기


명령어 

동작 

:w 

지정된 파일에 저장 

:wq, :x, ZZ 

지정된 파일에 저장하고 vi를 종료 

:w php.ini 

php.ini 파일에 저장 

 :q

저장하지 않고 종료 

:q!

저장하지 않고 강제 종료 

:wq php.ini 

php.ini에 저장하고 vi를 종료 

:r php.ini 

php.ini의 내용을 현재 커서가 있는데로 불러온다. 

:e php.ini 

현재의 화면을 지우고 새로운 파일 php.ini를 불러온다. 

:5,10 w php.ini 

5~10 줄까지의 내용을 php.ini에 저장


9. 기타


명령어 

동작 

:set nu

행 번호 보여주기 

:set nonu 

행 번호 보여주기 취소 

 .

바로 전에 실행한 명령어 재 실행 

 Ctrl + l

불필요한 화면 정리후 다시 표시 



녹색으로 표시한 명령어는 많이 사용하는 명령어이다.



'리눅스' 카테고리의 다른 글

Qt - 우분투(Ubuntu) 컴파일 오류  (0) 2011.05.18
Posted by 요지
,