2010년 1월 28일 목요일
INI FILE
파일구조
[Section 1]
KeyName1=Value
KeyName2=Value
[Section 2]
KeyName1=Value
읽기
GetPrivateProfileString Function 을 이용, 모듈에 다음의 API Function 을 선언.
Public Declare Function GetPrivateProfileString Lib "kernel32" _
Alias "GetPrivateProfileStringA" _
(ByVal lpApplicationName As String, _
ByVal lpKeyName As Any, _
ByVal lpDefault As String, _
ByVal lpReturnedString As String, _
ByVal nSize As Long, _
ByVal lpFileName As String) As Long
GetPrivateProfileString은 String 타입의 값을 리턴한다
lpApplicationName : lpApplication Name 인수는 위의 (1)에서 설명한 ApplicationName 문자열에 해당한다.
lpKeyName : lpKeyName 인수는 위의 (1)에서 설명한 KeyName에 해당한다
lpDefault : lpDefault 인수는 문자열에 대해 유지되는 디폴트 값에 해당한다. 일반적으로 프로그램은 이 매개 변수를 사용하지 않는다.
lpReturnedString : lpReturnedString 인수는 위의 (1)에서 설명한 Value문자열에 해당한다.
nSize : nSize 인수는 lpReturnedString 인수 내의 리턴된 문자열 길이에 해당한다.
lpFileName : lpFileName 인수는 참조중인 .ini파일의 완전히 규정된 경로와 파일 이름에 해당한다.
예제)
Private Sub GetINIConfig()
Dim iniFile As String
Dim iniValue As String
Dim iniLen As Long
Dim iniStr As String
strFile = "app.ini"
iniValue = String$(256, 0)
iniLen = GetPrivateProfileString("Section 1", "KeyName1", "0", iniValue, Len(iniValue), iniFile)
iniStr = Left$(iniValue, iniLen)
End Sub
쓰기
Public Declare Function WritePrivateProfileString Lib "kernel32" _
Alias "WritePrivateProfileStringA" _
(ByVal lpApplicationName As String, _
ByVal lpKeyName As Any, _
ByVal lpString As Any, _
ByVal lpFileName As String) As Long
lpApplicationName : lpApplication Name 인수는 위의 (1)에서 설명한 ApplicationName 문자열에 해당한다.
lpKeyName : lpKeyName 인수는 위의 (1)에서 설명한 KeyName에 해당한다
lpString : lpString 인수는 위의 (1)에서 설명한 Value 문자열에 해당한다.
lpFileName : lpFileName 인수는 참조중인 .ini파일의 완전히 규정된 경로와 파일 이름에 해당한다.
예제)
Private Sub SetINIConfig()
Dim iniFile As String
iniFile = "app.ini"
WritePrivateProfileString "Section 1", "KeyName1", "TEST1234", iniFile
End Sub
2010년 1월 25일 월요일
MSSQL 숫자만 가져오기
FUNCTION dbo.UF_NumOnly(@str VARCHAR(20))
RETURNS VARCHAR(20)
AS
BEGIN
DECLARE @res VARCHAR(MAX)
Set @res = ''
DECLARE @strlen INT
SET @strlen = LEN(@str)
DECLARE @cnt INT
SET @cnt = 1
WHILE @cnt <= @strlen
BEGIN
DECLARE @tmpstr CHAR(1)
Set @tmpstr = SUBSTRING(@str, @cnt, 1)
IF((ASCII(@tmpstr) >= 48) AND (ASCII(@tmpstr) <= 57))
BEGIN
SET @res = @res + @tmpstr
END
SET @cnt = @cnt + 1
END
RETURN @res
END
VB 숫자만 가져오기
Function numOnly(str As String) As Variant
Dim strTemp As String
Dim intNum As Integer
For intNum = 1 To Len(str)
If IsNumeric(Mid(str, intNum, 1)) Then
strTemp = strTemp & Mid(str, intNum, 1)
End If
Next intNum
numOnly = strTemp
End Function
2010년 1월 23일 토요일
MySQL 한글설정
매번 검색하는 것도 지치넹..ㅋ
[client]
default-character-set=euckr
[mysqld]
character-set-client-handshake=FALSE
init_connect="SET collation_connection = euckr_korean_ci"
init_connect="SET NAMES euckr"
default-character-set=euckr
character-set-server=euckr
collation-server=euckr_korean_ci
[mysqldump]
default-character-set=euckr
[mysql]
default-character-set=euckr
2010년 1월 6일 수요일
MS-SQL 강제로 인덱스 테우기
SELECT name, hp FROM member WITH(INDEX(idx_name)) WHERE name = '?????'
아래 옵션들을 사용해서 인덱스를 타는지와 부하정도를 파악할 수 있다.
SET SHOWPLAN_ALL ON
SET STATISTICS IO ON
SET STATISTICS TIME ON
freewheel.zip