'VB'에 해당되는 글 18건
- 2009.02.16 연비 개선 프로젝트 - Application 개발
- 2008.11.17 vb 서브폴더 구하기
- 2008.11.17 vb 이미지를 불러와 가로, 세로크기를 구한다.
- 2008.11.17 vb 복호화
- 2008.11.17 vb 암호화
- 2008.11.17 vb php의 ceil() 과 같은 기능을 한다.
- 2008.11.17 vb table tag안에 br을 제거한다.
- 2008.11.17 vb nl2br() 구현
- 2008.11.17 vb page번호 출력
- 2008.11.17 vb 페이지번호나 레코드번호 값을 받아 페이지리스트 출력
개발환경은VB 6.0 으로 작업했다.
- Data Acqusition 은NI6008 모듈 USB 인터페이스를 통하여 취득.
- 화려한 Graph 출력은 Measurement Studio 6.0 에 포함되어있는CWUI.OCX .
데이터 수집량은
- 2500Hz, (2Channel)
- 2000개 데이터
데이터 수집 Code
DAQmxErrChk DAQmxCreateAIVoltageChan(gbTaskHandle, CONST_DAQ_PHYSICAL_CHANNEL, "", _
DAQmx_Val_Cfg_Default, CONST_DAQ_MIN_VOLT, CONST_DAQ_MAX_VOLT, _
DAQmx_Val_VoltageUnits1_Volts, "")
'Configure task for finite sample acquisition and read in data
DAQmxErrChk DAQmxCfgSampClkTiming(gbTaskHandle, "OnboardClock", CONST_DAQ_FREQUENCY, DAQmx_Val_Rising, _
DAQmx_Val_AcquisitionType_FiniteSamps, CONST_DAQ_SAMPLE_PER_CHANNEL)
DAQmxErrChk DAQmxGetTaskNumChans(gbTaskHandle, lngNumChannels)
DAQmxErrChk DAQmxReadAnalogF64(gbTaskHandle, CONST_DAQ_SAMPLE_PER_CHANNEL, 10#, _
fillMode, arrACData(0), CONST_DAQ_DATA_COUNT, lngSampsPerChanRead, ByVal 0&)
역시 코딩은 UI 꾸미는게 가장 시간이 많이 든다.. -___--;;
개발환경은VB 6.0 으로 작업했다.
- Data Acqusition 은NI6008 모듈 USB 인터페이스를 통하여 취득.
- 화려한 Graph 출력은 Measurement Studio 6.0 에 포함되어있는CWUI.OCX .
데이터 수집량은
- 2500Hz, (2Channel)
- 2000개 데이터
데이터 수집 Code
DAQmxErrChk DAQmxCreateAIVoltageChan(gbTaskHandle, CONST_DAQ_PHYSICAL_CHANNEL, "", _
DAQmx_Val_Cfg_Default, CONST_DAQ_MIN_VOLT, CONST_DAQ_MAX_VOLT, _
DAQmx_Val_VoltageUnits1_Volts, "")
'Configure task for finite sample acquisition and read in data
DAQmxErrChk DAQmxCfgSampClkTiming(gbTaskHandle, "OnboardClock", CONST_DAQ_FREQUENCY, DAQmx_Val_Rising, _
DAQmx_Val_AcquisitionType_FiniteSamps, CONST_DAQ_SAMPLE_PER_CHANNEL)
DAQmxErrChk DAQmxGetTaskNumChans(gbTaskHandle, lngNumChannels)
DAQmxErrChk DAQmxReadAnalogF64(gbTaskHandle, CONST_DAQ_SAMPLE_PER_CHANNEL, 10#, _
fillMode, arrACData(0), CONST_DAQ_DATA_COUNT, lngSampsPerChanRead, ByVal 0&)
역시 코딩은 UI 꾸미는게 가장 시간이 많이 든다.. -___--;;
' ---------------------------------------------
' 서브폴더 구하기(재귀호출)
' 함수사용전에 전역변수로 fso, path가 선언되 있어야 한다.
' strFld를 리턴한다.
' vb Script에서는 배열의 크기가 자동으로 증가되지 않기 때문에
' vbCrLf를 구분자로 사용해서 문자열로 리턴함.
' ---------------------------------------------
function getSubFolder(fso, path, strFld, depth)
Dim fld, sfld, f, fld1, sfld1, files
if not isObject(fso) then
getSubFolder = "fso가 선언되지 않았습니다."
Exit function
end if
set fld = fso.getfolder(path)
set sfld = fld.subfolders
for each f in sfld
set fld1 = fso.getfolder(f.path)
set files = fld1.files
set sfld1 = fld1.subfolders
if Len(strFld) > 0 then strFld = strFld & vbCrLf
strFld
= strFld & depth & "|" & f.name & "|" & f.path
& "|" & files.count & "|" & sfld1.count
if sfld1.count > 0 then Call getSubFolder(fso, f.path, strFld, depth+1)
next
getSubFolder = strFld
end function
' ---------------------------------------------------
' 이미지를 불러와 가로, 세로크기를 구한다.
' ---------------------------------------------------
function getImageSize(imgPath)
Dim pic, picWH(1)
' LoadPicture를 지원하지 않는 서버가 있는데..
' 이유는 모르겠다.
On Error Resume Next
set pic = LoadPicture(imgPath)
if Err.Number > 0 then
response.write err.number & ": " & err.description
picWH(0) = 500 ' set default value
picWh(1) = 500
getImageSize = picWH
exit function
end if
picWH(0) = CLng(CDbl(pic.Width) * 24 / 635)
picWH(1) = CLng(CDbl(pic.Height) * 24 / 635)
set pic = nothing
getImageSize = picWH
end function
' --------------------------------------------
' 복호화
' --------------------------------------------
function unEncrypt(theText)
Dim output, Temp(), Temp2()
'theText = unEscape(theText)
TextSize = Len(theText)
if TextSize < 1 then
unEncrypt = ""
exit function
end if
ReDim Temp(TextSize-1)
ReDim Temp2(TextSize-1)
for i = 0 to TextSize-2 step 2
Temp(i) = AscW(Mid(theText, i+1, 1))
Temp2(i) = AscW(Mid(theText, i+2, 1))
next
for i = 0 to TextSize-1 step 2
output = output & ChrW(Temp(i) - Temp2(i))
next
unEncrypt = output
end function
' -------------------------------------------- Randomize
' 암호화
' --------------------------------------------
function Encrypt(theText)
Dim output, Temp(), Temp2()
TextSize = Len(theText)
if TextSize < 1 then
Encrypt = ""
exit function
end if
ReDim Temp(TextSize-1)
ReDim Temp2(TextSize-1)
for i = 0 to TextSize-1
rndVal = Int((255 * Rnd) + 128)
' mid 는 자동으로 2바이트 문자를 1글자로 인식한다.
Temp(i) = AscW(Mid(theText, i+1, 1)) + rndVal
Temp2(i) = rndVal
next
for i = 0 to TextSize-1
output = output & ChrW(Temp(i)) & ChrW(Temp2(i))
next
'Encrypt = Escape(output)
Encrypt = output
end function
' ----------------------------------------------------------
' php의 ceil() 과 같은 기능을 한다.
' ----------------------------------------------------------
function ceil(num)
' 소수점이 있으면 1을 더한다.
if num - int(num) > 0 then
ceil = Int(num) + 1
else
ceil = Int(num)
end if
end function
' ---------------------------------------------------------- ' table안에 \n이 br로 치환되지 않도록 구분함.
' table tag안에 br을 제거한다.
' ----------------------------------------------------------
function conv_nl(str)
'str = stripslashes($str);
str = eregi_replace("<br>(\r\n|\n\r|\r|\n)", vbLf, str)
str = ereg_replace("(\r\n|\n\r|\r)", vbLf, str)
str = eregi_replace("<(/?(TABLE|TR|TH|TD)[^>]*)> *\n", "<$1>\t_nl_\t", str)
' table태그 앞에 공백을 없앤다.
str = eregi_replace(" *<(/?(TABLE|TR|TH|TD)+)", "<$1", str)
' <, > 태그 안에 \n 제거
str = ereg_replace("<([^><\n]*)\n+([^><\n]*)>", "<$1 $2>", str)
str = ereg_replace("\n[:space:]*\n", "<BR>" & vbLf, str)
str = ereg_replace("\n\n", "<BR><BR>" & vbLf, str)
str = nl2br(str)
str = ereg_replace("\t_nl_\t", vbLf, str)
str = eregi_replace("</?pre>", "", str)
conv_nl = str
end functio
' ----------------------------------------------------------
' nl2br() 구현
' ----------------------------------------------------------
function nl2br(str)
nl2br = ereg_replace("(\r\n|\n\r|\r|\n)", "<br>", str)
end function
' ----------------------------------------------------------
' page번호 출력
' ----------------------------------------------------------
function page_print(pi, page_per_block, get_param)
' 처음, 이전 출력
if pi(PiStart_page) > 1 then
pp = "<a href=" & get_param & "&page=1>[처음] </a>" & _
"<a href=" & get_param & "&page=" & pi(PiPre_page) & ">[이전 " & _
page_per_block & "개]</a> "
end if
' 페이지 번호 출력
for i = pi(piStart_page) to pi(piEnd_page)
if i = pi(piCurrent_page) then
pp = pp & "<font color='red'>[" & i & "]</font> "
else
pp = pp & "<a href=" & get_param & "&page=" & i & ">[" & i & "]</a> "
end if
next
' 다음, 끝 출력
if pi(piEnd_page) < pi(piTotal_page) then
pp
= pp & "<a href=" & get_param & "&page=" &
pi(piNext_page) & ">[다음 " & page_per_block &
"개]</a> " &_
"<a href=" & get_param & "&page=" & pi(piTotal_page) & ">[끝]</a> "
end if
page_print = pp
end function