본문 바로가기
ProjectMyPOS

VB6 - 텍스트파일 입출력(사용자정의버튼용)

by 존버2028 2024. 6. 12.

1. 모듈코드(수정됨)

Option Explicit
​
Public Type ButtonInfo
    btnCaption As String
    btnProduct As String
    btnPrice As Integer
    btnForeColor As Long
    btnBackColor As Long
End Type
​
Public ButtonArr(20) As ButtonInfo
​
Public Sub ReadConfig()
​
    Dim FName As String
    Dim FData As String
​
    FName = IIf(VBA.Right(App.Path, 1) = "\", App.Path, App.Path + "\")
    FName = FName + "button.cfg"
​
    'declare and initiate required objects
    Dim fs As FileSystemObject
    Dim ts As TextStream
​
    Set fs = New FileSystemObject
​
    'To Read
    If Not fs.FileExists(FName) Then
        fs.CreateTextFile (FName)
    End If
​
    Set ts = fs.OpenTextFile(FName)
​
    If ts.AtEndOfStream Then
        SetConfigToDefault
    End If
​
    Dim i As Integer
    Dim LineStr, CmdStrArr() As String
​
    For i = 0 To 19
        LineStr = ts.ReadLine
​
        If VBA.Right(LineStr, 1) <> ";" Then
            MsgBox "헐~2!"
            Exit Sub
        End If
​
        CmdStrArr() = Split(LineStr, ",")
        ButtonArr(i).btnCaption = CmdStrArr(1)
        ButtonArr(i).btnProduct = CmdStrArr(2)
        ButtonArr(i).btnPrice = CmdStrArr(3)
        ButtonArr(i).btnForeColor = CmdStrArr(4)
        ButtonArr(i).btnBackColor = VBA.Left(CmdStrArr(5), Len(CmdStrArr(5)) - 1)
    Next
​
    ts.Close
​
    'clear memory used by FSO objects
    Set ts = Nothing
    Set fs = Nothing
​
    Call SetSavedConfigToButtons
​
End Sub
​
Public Sub WriteConfig()
​
    Dim FName As String
    Dim FData As String
​
    FName = IIf(VBA.Right(App.Path, 1) = "\", App.Path, App.Path + "\")
    FName = FName + "button.cfg"
​
    'declare and initiate required objects
    Dim fs As FileSystemObject
    Dim ts As TextStream
​
    Set fs = New FileSystemObject
​
    'To write
    Set ts = fs.OpenTextFile(FName, ForWriting, True)
​
    Dim i As Integer
    For i = 0 To 19
        FData = VBA.Format(i, "00") & "," & ButtonArr(i).btnCaption & "," _
                & ButtonArr(i).btnProduct & "," & ButtonArr(i).btnPrice & "," _
                & ButtonArr(i).btnForeColor & "," & ButtonArr(i).btnBackColor & ";"
        ts.WriteLine FData
    Next
​
    ts.Close
​
    'clear memory used by FSO objects
    Set ts = Nothing
    Set fs = Nothing
​
End Sub
​
Public Sub SetConfigToDefault()
    Dim FName As String
    Dim FData As String
​
    FName = IIf(VBA.Right(App.Path, 1) = "\", App.Path, App.Path + "\")
    FName = FName + "button.cfg"
​
    'declare and initiate required objects
    Dim fs As FileSystemObject
    Dim ts As TextStream
​
    Set fs = New FileSystemObject
​
    'To write
    Set ts = fs.OpenTextFile(FName, ForWriting, True)
    Dim i As Integer
    For i = 0 To 19
        FData = VBA.Format(i, "00") & ",2/" & VBA.Format(i + 2, "$0.00") _
                & ",HST ITEMS," & (i + 2) * 100 & ",0,1677212;"
        ts.WriteLine FData
    Next
​
    ts.Close
​
    'clear memory used by FSO objects
    Set ts = Nothing
    Set fs = Nothing
End Sub
​
Private Sub SetSavedConfigToButtons()
​
    Dim i As Integer
    For i = 0 To 19
        fm_New.cmd_user(i).Caption = ButtonArr(i).btnCaption
        fm_New.cmd_user(i).ForeColor = ButtonArr(i).btnForeColor
        fm_New.cmd_user(i).BackColor = ButtonArr(i).btnBackColor
        fm_New.cmd_user(i).ToolTipText = "PRICE : " & VBA.Format(ButtonArr(i).btnPrice * 0.01, "$0.00")
    Next
​
End Sub