Development [vb.net Development] Function module
페이지 정보
본문
Imports System.IO
Imports System.Runtime.InteropServices
Imports System.Text
Imports System.Threading
Module mFunction
<DllImport("winmm.dll", EntryPoint:="timeGetTime")>
Public Function timeGetTime() As UInteger
End Function
Public MainForm As Form
Public Function LOG(ByVal value As String, Optional isEmptyLine As Boolean = False, Optional isMsgBox As Boolean = False, Optional isNoAdd As Boolean = False) As String
If MainForm Is Nothing Then Return ""
Dim LB As ListBox = CType(MainForm.Controls.Find("LOG_LIST", True).FirstOrDefault(), ListBox)
StreamWriterString(value)
Try
If Not LB Is Nothing Then
Do While LB.Items.Count > 1000
LB.Items.Remove(LB.Items(0))
Loop
If isEmptyLine Then LB.Items.Add("")
If isNoAdd Then
LB.Items(LB.Items.Count - 1) = value
Else
LB.Items.Add(value)
End If
LB.SelectedIndex = LB.Items.Count - 1
End If
If isMsgBox Then MsgBox(value)
Return True
Catch ex As Exception
el.WriteToErrorLog(ex.Message, ex.StackTrace, "LOG.ListBox")
Return False
Finally
End Try
End Function
Public Sub StreamWriterString(ByVal LB As ListBox, ByVal value As String)
Try
Dim SUB_NAME As String = DateAndTime.Now.ToString("yyyy.MM.dd.HH")
Using fs As FileStream = New FileStream(String.Concat("LOG\", "LOG+", SUB_NAME, ".txt"), FileMode.Append, FileAccess.Write)
Dim s As StreamWriter = New StreamWriter(fs)
s.WriteLine(value)
s.Close()
fs.Close()
End Using
Catch ex As Exception
el.WriteToErrorLog(ex.Message, ex.StackTrace, "StreamWriterString.value")
End Try
End Sub
Public Function KillProcess(app_exe_Name As String) As Integer
Dim count As Integer
Try
For Each Process As Object In GetObject("winmgmts:").ExecQuery("Select * from Win32_Process Where Name = '" & app_exe_Name & "'")
count += 1
Process.Terminate()
Next
Catch ex As Exception
count += KillProcess(app_exe_Name)
End Try
Return count
End Function
Public Sub Sleep(ByVal millisecond As Integer)
Thread.Sleep(millisecond)
End Sub
Public APP_LOG_PATH As String = String.Concat(MyDocuments, Application.ProductName, "\LOG\") '// 프로그램 설정파일 저장위치
Public Sub StreamWriterString(ByVal value As String)
Dim SUB_NAME As String = DateAndTime.Now.ToString("yyyy.MM.dd-HH")
Try
Using fs As FileStream = New FileStream(APP_LOG_PATH & SUB_NAME & "+LOG.LOG", FileMode.Append, FileAccess.Write)
Dim s As StreamWriter = New StreamWriter(fs)
s.WriteLine(value)
s.Close()
fs.Close()
End Using
Catch ex As Exception
el.WriteToErrorLog(ex.Message, ex.StackTrace, "StreamWriterString.value")
End Try
End Sub
Public Sub StreamWriterString(ByVal fPath As String, ByVal value As String)
Try
Using fs As FileStream = New FileStream(fPath, FileMode.Append, FileAccess.Write)
Dim s As StreamWriter = New StreamWriter(fs)
s.WriteLine(value)
s.Close()
fs.Close()
End Using
Catch ex As Exception
el.WriteToErrorLog(ex.Message, ex.StackTrace, "StreamWriterString.Path.value")
End Try
End Sub
Public Function Serialize(ByVal fName As String, ByVal x As Object) As Boolean
If fName.Length = 0 Then Return False
Dim S() As String = fName.Split("\"c)
S(S.Length - 1) = EncryptString(S(S.Length - 1))
fName = Join(S, "\")
Dim BF As New System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
Dim FS As New FileStream(String.Concat(MyDocuments, Application.ProductName, "\User Data\" & fName), FileMode.OpenOrCreate)
Try
BF.Serialize(FS, x) ' write to file
Return True
Catch ex As Exception
Return False
Finally
FS.Dispose()
End Try
End Function
Public Function Deserialize(ByVal fName As String) As Object
If fName.Length = 0 Then Return Nothing
Dim S() As String = fName.Split("\"c)
S(S.Length - 1) = EncryptString(S(S.Length - 1))
fName = Join(S, "\")
If Not File.Exists(String.Concat(MyDocuments, Application.ProductName, "\User Data\" & fName)) Then Return Nothing
Dim BF As New System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
Dim FS As New FileStream(String.Concat(MyDocuments, Application.ProductName, "\User Data\" & fName), FileMode.OpenOrCreate)
Try
Return BF.Deserialize(FS) ' write to file
Catch ex As Exception
Return Nothing
Finally
FS.Dispose()
End Try
End Function
Public Function GetFile() As String
Dim OFD As OpenFileDialog = New OpenFileDialog
OFD.Filter = "Files|*.*"
OFD.FileName = "Select a File"
Dim result As DialogResult = OFD.ShowDialog()
If result = Windows.Forms.DialogResult.OK Then
Return System.IO.Path.GetFullPath(OFD.FileName)
End If
Return Nothing
End Function
Public Function GetPath() As String
Dim FD As FolderBrowserDialog = New FolderBrowserDialog
Dim result As DialogResult = FD.ShowDialog()
If result = DialogResult.OK Then
Return FD.SelectedPath & ""
End If
Return Nothing
End Function
Public Function DATAGRIDVIEW_DEFAULT_SETTING(ByRef DGV As DataGridView) As DataGridView
DGV.AllowUserToAddRows = False
DGV.RowHeadersVisible = False
DGV.AllowUserToDeleteRows = False
DGV.ColumnHeadersDefaultCellStyle.BackColor = Color.LightGray
DGV.ColumnHeadersDefaultCellStyle.Font = New Font("맑은 고딕", 9.0!, FontStyle.Bold)
DGV.BackgroundColor = Color.White
DGV.AutoResizeColumnHeadersHeight()
'DGV.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells
DGV.AutoResizeColumns()
''// CheckBox Column 추가
'DataGridViewAddingCheckBoxColumn(DGV)
For Each C As DataGridViewColumn In DGV.Columns
C.SortMode = DataGridViewColumnSortMode.Programmatic '// 해더 클릭시 Sort X
Next
Return DGV
End Function
Private Sub DataGridViewAddingCheckBoxColumn(ByVal DGV As DataGridView)
Dim D As DataTable = DGV.DataSource
If D Is Nothing Then Return
If Not DGV.Columns.Contains("ck") Then
If Not D.Columns.Contains("ck") Then
D.Columns.Add("ck", GetType(Boolean))
Dim chk As DataGridViewCheckBoxColumn = DGV.Columns("ck")
chk.HeaderText = "체크"
chk.DisplayIndex = 0
End If
End If
End Sub
Public Function HTMLOrganize(ByVal value As String) As String
value = Replace(value, vbCrLf, Space(1))
value = Replace(value, vbCr, Space(1))
value = Replace(value, vbLf, Space(1))
value = Replace(value, vbTab, Space(1))
value = Replace(value, Chr(0), Space(1))
value = Replace(value, Chr(10), Space(1))
Do While InStr(value, Space(2))
value = Replace(value, Space(2), Space(1))
Loop
value = Replace(value, "> ", ">")
value = Replace(value, " <", "<")
value = Replace(value, "'", """")
Return value
End Function
Public Function UrlEncode(ByVal str As String, Optional ByVal ED As System.Text.Encoding = Nothing) As String
Return System.Net.WebUtility.UrlEncode(str)
End Function
Public Function euckr(ByVal str As String) As String
Dim res As String = Web.HttpUtility.UrlEncode(str, System.Text.Encoding.GetEncoding(51949))
Dim S() As String = Split(res, "%")
Dim T As String
For i As Integer = 1 To S.Length - 1
T = S(i).Substring(0, 2).ToUpper
S(i) = S(i).Substring(2, S(i).Length - 2)
S(i) = String.Concat(T, S(i))
Next
Return Join(S, "%")
End Function
Public Function HTMLDEL(ByRef T As String) As String
Return System.Text.RegularExpressions.Regex.Replace(T, "<.*?>", "")
End Function
Public Function textEN(ByVal T As String) As String
Dim Bytes() As Byte = System.Text.Encoding.UTF8.GetBytes(T)
Dim S(UBound(Bytes)) As String
For i As Integer = 0 To UBound(Bytes)
Select Case Chr(Bytes(i).ToString)
Case vbNewLine, vbCrLf, vbCr, vbLf, vbNullChar, vbNullString, vbBack : S(i) = "%0D%0A" '// 줄바꿈 외...
Case "0" To "9" : S(i) = Chr(Bytes(i).ToString) '// 숫자
Case Space(1) : S(i) = "+" '// 띄어쓰기
Case "*", "-", "_" : S(i) = Chr(Bytes(i).ToString) '// 특문
Case "A" To "Z" : S(i) = Chr(Bytes(i).ToString) '// 영대
Case "a" To "z" : S(i) = Chr(Bytes(i).ToString) '// 영소
Case Else : S(i) = Join({"%", Hex(Bytes(i))}, vbNullString)
End Select
Next
Return Join(S, vbNullString)
End Function
Private mRnd As New Random
Public Function RandomInteger(ByVal s As Integer, ByVal e As Integer) As Integer
Return mRnd.Next(s, e)
End Function
Public Function ReadText(fPATH As String, Optional ED As Encoding = Nothing) As String
Dim T As String = vbNullString
If System.IO.File.Exists(fPATH) = True Then
If ED Is Nothing Then ED = System.Text.Encoding.Default
Try
Using srStreamReader As New StreamReader(fPATH, ED)
T = srStreamReader.ReadToEnd()
srStreamReader.Close()
End Using
Catch ex As Exception
LOG(ex.StackTrace)
el.WriteToErrorLog(ex.Message, ex.StackTrace, "ReadText")
End Try
End If
Return T
End Function
Public Function SaveText(fPATH As String, TEXT As String, Optional ED As Encoding = Nothing) As Boolean
Try
If ED Is Nothing Then ED = System.Text.Encoding.Default
Using File As System.IO.StreamWriter = My.Computer.FileSystem.OpenTextFileWriter(fPATH, False, ED) '// False = 새로쓰기, True = 이어쓰기
File.WriteLine(TEXT)
File.Close()
End Using
Return True
Catch ex As Exception
LOG(ex.StackTrace)
el.WriteToErrorLog(ex.Message, ex.StackTrace, "SaveText")
Return False
End Try
End Function
End Module
- 이전글[vb.net] 자주 사용하는 소스코드 - 선언 22.10.26
댓글목록
등록된 댓글이 없습니다.