fpSpread에서 찾기 기능

1.
fpSpread1.SearchCol(ByVal lCol As Long, ByVal lRowStart As Long, ByVal lRowEnd As Long, ByVal Text As String, ByVal SearchFlags As SearchFlagsConstants) As Long

Return = fpSpread1.SearchCol(검색할 컬럼, 시작Row, 끝Row, 검색어, 검색Flag)


2.
fpSpread1.SearchRow(ByVal lRow As Long, ByVal lColStart As Long, ByVal lColEnd As Long, ByVal Text As String, ByVal SearchFlags As SearchFlagsConstants) As Long

Return = fpSpread1.SearchRow(검색할 Row, 시작Col, 끝Col, 검색어, 검색Flag)

Return 값이 -1 이면, 검색어가 검색되지 않음.

———–

Spread 6 의 샘플소스가 없어 해당 샘플소스에서 ActiveRow 나 ActiveCol 부터 검색하도록 코딩이 되어 있는지 모르지만, 이 메서드는 지정해준 범위내에서 검색을 하도록 되어 있습니다….

실제 많이 사용되는 메서드 입니다…

비주얼베이직(VB)에서 마우스 스크롤이 되는 방법


비주얼 베이직 6.0에서 작업을 하다보면 뜻밖에도 이런 것이 안 되다니 하고 느끼는 것이 있다. 바로 마우스의 휠이 먹히지 않는다는 것이다. 마우스로 화면을 스크롤할 수 없다는 것은 정말이지 뜻밖의 복병이다. 윈도우에서 아무런 문제 없이 사용하던 것이 비주얼베이직에만 오면 딱 그 기능이 멎어버린다. (놀라운 MS사의 센스가 아닐 수 없다!)


이 문제를 해결하려고 하면 아래의 파일을 내려받아서 설치하면 간단하게 해결된다.(왜 이것은 VB6에 기본적으로 포함하지 않는 것도 이상하다. 더군다나 패치에서도 해결할 노력이 없다. SP6까지 오면서 개선된 것이 없다. 다행히도 VB.NET에서는 된다.)


1. 아래의 파일을 내려받는다.

http://download.microsoft.com/download/e/f/b/efb39198-7c59-4ace-a5c4-8f0f88e00d34/vb6mousewheel.exe

1144400399.xxx

2. 내려 받은 실행 파일을 클릭하여 실행시킨다.
3. 압축을 풀 폴더를 임의로 선택한다. (단, 위치는 기억한다. 그리고 설치 폴더를 지우면 안 된다.)
4. 다음과 같이 명령어를 입력하여 등록한다.
regsvr32 <압축을 푼 폴더>\VB6IDEMouseWheelAddin.dll
등록되었다는 메시지가 나오면  OK버튼을 클릭한다.
5. Visual Basic 6.0를 실행한다.
6. 메뉴에서 ‘추가기능(Add-Ins)’->추가기능관리자(Add-in Manager)를 선택한다.
7. ‘사용가능한 추가기능’목록 중에서 ‘MouseWheel Fix’를 선택한다.
8. ‘로드 동작’에서 ‘로드/언로드’항목과 ‘시작할 때 로드’항목을 체크(선택)한다.
9. ‘확인’ 버튼을 눌러서 종료한다.

순서도의 종류 및 설명



순서도 종류 및 설명


































도형 유형 및 설명
도형 모양 수행의 시작/종료: 처리 과정의 시작과 끝입니다.
도형 모양 처리: 처리 과정의 한 단계입니다.
도형 모양 종속 처리: 이미 알려졌거나 이해한 처리 과정으로 순서도에서는 자세히 설명하지 않았습니다.
도형 모양 판단: 처리 과정에서 판단을 내려야 하는 지점입니다.
도형 모양 연결자: 순서도 내에서 상호 참조하거나 다른 처리 과정으로 안내하는 선입니다.
도형 모양 데이터: 받는 정보나 유포하는 정보와 같은 모든 종류의 입력 또는 출력입니다.
도형 모양 문서: 인쇄물처럼 사람들이 읽을 수 있도록 만들어진 것을 의미합니다.
도형 모양 지연: 처리 과정에서 기다리는 것을 의미합니다.
도형 모양 준비: 준비 단계를 의미합니다.


1. 순서도 (flow chart) → 알고리즘 또는 문제해결의 절차를 그림으로 알기 쉽게 나타낸 것.

→ 설계한 알고리즘을 객관적이며 쉽게 표현, 이해하기 위하여 기호를 사용.


2. 순서도의 종류


① 시스템 순서도 : 일의 처리과정을 전체적으로 상세하게 표현한 순서도


② 프로그램 순서도 : 컴퓨터로 처리가 가능한 부분을 단계적으로 표현한 순서도


 


3. 순서도에 쓰이는 기호


1) 터미널 : 순서도의 시작과 끝을 나타내는 기호2) 처리기호 : 값을 지정하거나 변경 또는 계산을 나타내는 기호3) 판단기호 : 조건을 판단하여 경로를 택하는 기호4) 인쇄기호 : 처리된 값을 인쇄하는 것을 나타내는 기호


4 순서도 작성법


1) 순서도는 “시작 단말 기호”를 시작으로 “끝 단말 기호”로 마친다.2) 기호와 기호사이는 흐름선으로 연결한다.3) 흐름선의 방향은 ↓ 위에서 아래로, → 왼쪽에서 오른쪽 (단,↱ 순환기호(Loop)같은 특별한 경우는 예외)4) 작업과정이 길거나 복잡하면 나누어 작성하고 연결자로 연결5) 값을 보관, 처리하기 위하여 변수를 사용


5. 순서도 구성요소


1) 변수(Variable) : 데이터[상수,변수,수식]를 기억 할 수 있는 기억공간 → 문자변수, 수치변수(정수형,실수형,상수)2) 상수(Constant) → 문자상수, 수치상수(정수형,실수형,상수)2) 상수(Constant) → 산술연산자([], **, */, +-), 관계연산자(=, ≠, <, >, >=, <=), 논리연산자(NOT, AND, OR)

C# 의 자료구조 Queue !!

C#… 즉.. 닷넷… 이놈 참 대단한놈이다.. 왠만한 자료구조형이 다있다.. 큐!~ 도 있다 –^ 예전에 이걸 구현해서.. 사용했던 내가.. ㄷㄷㄷ….

CShop자료구조02_자료구조_큐.cs


/*
 C#자료구조02 : 자료구조_큐(Queue).
 .NET Class의 Stack 클래스 사용.
 2005년 12월 07일
 Choi Young Gyu

*/

using System;
using System.Collections;

public class 큐
{

 public static void Main()
 {

  //[1]큐 인스턴스 생성
  Queue queue = new Queue();
  //[2]큐에 데이터 입력
  Console.WriteLine(“Enqueue : VC++”);
  queue.Enqueue(“VC++”);
  Console.WriteLine(“Enqueue : VB.NET”);
  queue.Enqueue(“VB.NET”);
  //[3]큐에서 대이터 꺼내기
  Console.WriteLine(“Dequeue : {0}”,queue.Dequeue());
  Console.WriteLine(“Dequeue : {0}”,queue.Dequeue());
 }
}



결과

사용자 삽입 이미지

DateTime 클래스 활용 C샵 – 문법

// 프로그램 시작시간
DateTime startTime = DateTime.Now;

// 1. 현재시간
DateTime now;
now = DateTime.Now;

Console.WriteLine(now); // 현재시간 전체
Console.WriteLine(now.Year); // 현재 년도
Console.WriteLine(now.Month); // 현재 달
Console.WriteLine(now.Day); // 현재 일
Console.WriteLine(now.DayOfWeek); // 현재 주
Console.WriteLine(now.DayOfYear); // 1년중 몇일째인지
Console.WriteLine(now.TimeOfDay); // 금일 자정부터 몇시간
Console.WriteLine(now.Hour); // 시간
Console.WriteLine(now.Minute); // 분
Console.WriteLine(now.Second); // 초
Console.WriteLine(now.Millisecond); // 1000분의 1초

Console.WriteLine(now.Ticks); // 1000분의 1초

// 2. 임의시간 설정
DateTime birthday;
birthday = DateTime.Parse(“2009년8월9일”); // 시분초 미지정시 자정으로
birthday = DateTime.Parse(“2009/08/09”);

Console.WriteLine(birthday);

DateTime xmas;
xmas = new DateTime(2008, 12, 25, 0, 0, 0);

Console.WriteLine(xmas);

// 3. 연산

// 3.1 오늘 + 100일
now = DateTime.Now;
DateTime result = now.AddDays(100); // 각 단위별 add메소드가 존재 MSDN참고

Console.WriteLine(result);

// 3.2 크리스마스까지 남은 날
TimeSpan result2 = xmas – now;
Console.WriteLine(result2);
Console.WriteLine(result2.Days); // NNN일 (내림표현)
Console.WriteLine(result2.TotalDays); // NNN.NNNNNNN일 (더정확)

// 3.3 오늘 – 100일
Console.WriteLine(now – TimeSpan.FromDays(100));
Console.WriteLine(now.AddDays(-100));

// 4. 날짜시간 출력형식 지정
Console.WriteLine(now.ToLocalTime()); // 2008-08-08 오전 10:31:25

Console.WriteLine(now.ToLongDateString()); // 2008년 8월 8일 금요일
Console.WriteLine(now.ToShortDateString()); // 2008-08-08

Console.WriteLine(now.ToLongTimeString()); // 오전 10:31:25
Console.WriteLine(now.ToShortTimeString());   // 오전 10:31

// 프로그램 종료시간
DateTime endTime = DateTime.Now;

Console.WriteLine(“프로그램 수행시간 : {0}/ms”, (double)(endTime – startTime).Ticks / 1000000.0F);

헝가리언 표기법

헝가리언 표기법


 


유래


10,15년 전 Microsoft의 개발자중 헝가리 사람의 프로그래머가 쓰던 변수 명명법.


MS 내부에서 따라 쓰기 시작하던 것이 점차 전세계의 프로그래머들에게 널리 퍼져 프로그램 코딩시 변수 명명의 표준적인 관례가 되었다. 그러나 실제로 현장에서 일하다 보면 헝가리안 표기법을 제대로 지키는 개발자는 그리 많지 않다. 어느 정도 개발 경험을 가지고 있는 프로그래머는 물론 심지어 시중의 프로그래밍 서적에서 조차 저자 마다 변수 명을 개인에 따라 가지 각색으로 짓고 있어서 처음프로그램을 배우는 입문자들이 변수 명명에 대한 기준을 제대로 잡지 못하고 있는 실정이다.


변수 명명에 관한 표준화된 관례를 지켜주면 코드의 가독성을 높여 줄뿐 아니라 어떤 변수 명을 지을지 고민하지 않아도 되는 편리함을 누릴 수 있다.


                         


 :Prefix     :Type                  :Description                                   :Example


:b          :bool                   :any boolean type                           :bool bTrue;


:c          :char                    :character type                              :char cLetter;


:i           :int                      :integer                                         :int iCars;


:l           :long                    :long type                                      :long lDistance;


:u          :unsigned             :unsigned type                            


:f           :float                   :floating point                                :float fPercent;


:d          :double                :double floating point                      :double dPercent;


:s           :static                  :a static variable                           :static short ssChoice;


:rg         :array                   :stands for range                            :float rgfTemp[16];


:p          :*                        :any pointer                                   :int *piAddr;


:sz         :*                       :null terminated string of characters   :char szText[16];


:pfn        :*                        :function pointer                            :int (*pifnFunc1)(int x, int y);


:t           :struct                 :a user defined type


:e          :enum                  :variable which takes enumerated values


:E          :enum                  :Enumerated type


:g_         :Global                 :Global Variable                               :String *g_psBuffer


:m_        :Member               :class private member variable           :


:k           :constant formal parameter                                        :void vFunc(const long klGalaxies)


:r           :reference formal parameter                                       :void vFunc(long&rlGalaxies)


:str        :String                  :string class(C )                          :String strName;


:prg       :dynamically allocated array                                       :char *prgGrades;


:h          :handle                :handle to something                     :hMenu


 


:n          :                           :number, quantity                          :int nNum;


:x/y        :                           :used as size                                 :int xWitdth, yHeight;


 


 


Example of type specific variable naming


unsigned char ucByte;              :한 바이트 데이타


         char cChar;               :한 문자


unsigned char rgucByte[10];           :바이트 데이타10개


         char rgcChar[10];                        :문자 데이터10개


         char szChar[16 1];     :문자16개를 저장할 수 있는 문자열 공간


 


:Data Type           :Description


BYTE               unsigned char type


WORD              unsigned short type


DWORD            unsigned long type



































































접두어


의미


a


배열


b 또는 f


BOOL형 변수(b는 bool, f는 flag의 약자


by


BYTE(unsigned char)형 변수


c


카운터로 사용되는 변수


ch


Char 형 변수


cx, cy


X, Y 길이를 나타내기 위해 사용되는 변수


d


날짜형 변수


dbl


Double형 변수


h


핸들(HANDLE)형 변수


n는 i


Int형 변수


l


Long형 변수


p


포인터변수


lp


Long(far)포인터 변수(32비트 프로그래밍에서는 일반 포인터와 같음)


s


문자열


sz


(NULL)문자로 끝나는 문자열


u


Unsigned int형 변수


w


WORD(unsigned short)형 변수


dw


DWORD(unsigned long)형 변수


str


Cstring 형 변수

C#으로 동영상 플레이 제작을 위한 필수 항목


DirectX Software Develpment Kit


http://www.microsoft.com/downloads/details.aspx?FamilyID=86cf7fa2-e953-475c-abde-f016e4f7b61a&displaylang=en&Hash=qeJBP6Uksx0zY%2btLhcKYj%2fx4PDbDDOI%2btC%2bsa73SX4pkMysJCEnMU48j49VRn6%2fbDsK5k8OfHBLz%2fe9FNHN8hg%3d%3d


위 SDK를 설치한 후에


using Microsoft.DirectX.AudioVideoPlayback;


를 이용하여~ 딱 3줄로.. 동영상 재생가능~~


1. 무작정 Visual Studio 2008을 띄우고 C# WinForm 프로젝트 생성
2. [Add Reference]에서 Microsoft.DirectX.AudioVideoPlayback를 추가해주고(DirectX는 깔려 있어야 함)
3. Form을 더블 클릭하고 다음과 같이 쳐준다.



using Microsoft.DirectX.AudioVideoPlayback;


private void Form1_Load(object sender, EventArgs e){
Video v = Video.FromFile(@c:\test.avi)
;
v.Owner = this
;
v.Play()
;
}

4. F5를 누른다.


근데 안된다.


[Debug]-[Exceptions]-[LoaderLock]의 Thrown 항목을 꺼준다.


사용자 삽입 이미지
5. F5를 누른다.

사용자 삽입 이미지
ㅋㅋㅋ 성공 ….


[잡설]
이번 일주일간 WDM 디바이스 드라이버 프로그래밍 교육중이다.
Kernel Mode 프로그램에서는 좀만 잘못하면 블루 스크린…
오랜만에 보는 VisualStudio… 안보던 사이 많이 바뀌었었네…

VB 6.0에서 listbox 가로 스크롤 생성

winsock1.senddata 이부분 밑에는
winsock1.listindex = winsock1.listcount – 1
이렇게 써주시면 스크롤이 자동으로 내려갑니다.^^




—–*추가내용*—–

가로 스크롤 생성

”””””””일반프로시저 에 넣을곳
Private Declare Function SendMessage Lib “user32” Alias “SendMessageA” (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Const LB_SETHORIZONTALEXTENT = &H194
Dim LV As String
”””””””여기서부터 폼의 속성으로넣어주세요
Private Sub AddScroll(List As ListBox)
Dim i As Integer, intGreatestLen As Integer, lngGreatestWidth As Long
For i = 0 To List.ListCount – 1


If Len(List.List(i)) > Len(List.List(intGreatestLen)) Then
intGreatestLen = i
End If
Next i
lngGreatestWidth = List.Parent.TextWidth(List.List(intGreatestLen) + Space(1))
‘Space(1)은 문자열의 짤림방지용입니다.
lngGreatestWidth = lngGreatestWidth \ Screen.TwipsPerPixelX
‘스크롤바를 추가한다.
SendMessage List.hwnd, LB_SETHORIZONTALEXTENT, lngGreatestWidth, 0

End Sub
‘그다음 스크롤을 생성하는것..
‘이건 아무데나 해도됩니다.
Private Sub Form_Load()
Call AddScroll(List1)
End Sub
‘저는 폼이 켜질때로 하겠습니다.
‘이렇게 해주시면 길게 된 문자가 쓰여지면 가로스크롤이 생성됩니다.

비트필드 구조체란?












질문: 비트필드 구조체란? nasanjin / 2007-10-18 18:24

비트필드 구조체란 무엇이며?
어떠한 형태로 사용하며????
사용예제 하나 보여주시고요;;;
사용하는 경우는 어떤 경우인지??
사용하게 되면 좋은 이점은 무엇이며? 단점은 무엇입니가?
메모리 공간은 어떤방식으로 할당하는지???

답변: re: 비트필드 구조체란? keyseek / 2007-10-18 22:41

구조체 멤버를 비트단위로 선언할 수 있는 구조체 입니다.

struct st
{
   unsigned int a : 2;
   unsigned int b : 3;
};

이런 식으로 표현합니다. 즉 일반 구조체의 멤버 산언과 동일하나 멤버명뒤에 : n 으로 비트수를 지정합니다.
예제? 위에 선언한 구조체를 이용하겠습니다.

struct st x = {1,5};

이렇게 하면 x.a는 1, x.b는 5 가 들어갑니다.
즉, a는 2비트인데 1이 들어가므로 2진수로 보면 01 이 들어가게 됩니다.
b는 3비트인데 5가 들어 가므로 2진수로 보면 101 이 들어가게 됩니다
즉, 일반 구조체 사용하듯이 사용하면 되는 겁니다.
사용하는 경우? 뭐 다양하게 사용되겠지만
flag선언때 많이 사용합니다. (이걸 어떻게 설명드리지요?)
또한 어떤 데이터 스트림(헤더정도 등)의 parsing에도 많이 쓰입니다.
예를들어 총 4바이트 헤더에서 처음 3비트는 어떤 정보이고 다음 8비트는 뭐고
그다음 몇비트는 뭐고 하는 식으로 비트들로 필드가 구분되어 있다면
이들 필드들만 억세스 하기 위하여 비트필드를 선언하여 사용합니다.

장점? 아무래도 변수를 비트로 사용하니까 메모리가 줄어들겠죠
예를들어 int a = YES; a = NO; (여기서 YES, NO는 1과 0으로 사전 define된것으로 가정)
이렇게 a가 사용된다면 a는 4바이트 변수인데 실제 저장하는 값은 0 아니면 1 혹은
YES, NO 등 입니다. 따라서 이런 경우는 1비트면 충분하지요
만약 이런식의 변수들이 여러개 있다면 이들을 묶어서 하나의 구조체로 만들고
그 내부 필드를 비트필드로 하는 거지요 그럼 메모리 총량이 감소되어 절약이 가능합니다.

단점? 전체 32비트 메모리(비트필드 이지만 구조체의 최소크기는 int가 됨)에서
특정 비트들만 값을 변경하면 즉 위의 구조체에서 x.a = 1을 하면 실제 이 코드는
1을 그냥 a에 대입하는 것이 아니라 실제 코드는 (x & 3  | 1) 로 처리되어 비트 연산을
수행하게 됩니다. 결국 메모리는 아끼지만 속도는 느려지는 거지요

메모리는 먼저 선언된 멤버가 낮은비트(0번지크)부터 채워집니다.
위의 구조체는 32비트(int)로 총 사이즈가 잡힙니다.

그 32비트에서 하위 두비트 0,1 비트는 a가 그 위의 3비트 3,4,5 비트는 b가 위치합니다.
나머지 비트들은 사용되지 않습니다.

이해 되실런지요?