¿¬°á¸®½ºÆ®¶ó ÇÔÀº...¸µÅ©µå¸®½ºÆ®¸¦ ¸»¾¸ ÇϽô°ǰ¡¿ä?(Å¥, ½ºÅÃ...µî±¸Çö ¹æ¹ý °°Àº°Å?)
¸¸¾à ¸Â´Ù¸é Á¦°¡ ¿Ã¸° ¼Ò½º¸¦ ÇÔ º¸¼Å¿ä...
ÇãÁ¢ÇÏÁö¸¸..^^;; ´Ô Áú¹® º¸°í Ȥ½Ã ÀÌ·±°Å ¿øÇÏ½Ã´Â°Ô ¾Æ´Ò±î Çؼ Áö±Ý ¸· ¸Í±Û¾ú½À´Ï´Ù...
ºñº£¿¡¼´Â Æ÷ÀÎÅÍ°¡ ¾ø¾î¼...¹è¿À» ÀÌ¿ëÇؼ ±¸ÇöÀ» Çß±¸¿ä...
¼öÁ¤,»èÁ¦Àº ¾î´ÀÀ§Ä¡¿¡¼³ª ´Ù µÇ´Âµ¥, Ãß°¡´Â ¸Ç³¡¿¡¼¸¸ ÀÌ·ç¾î Áö°Ô ±¸Çö Çß½À´Ï´Ù.(ÀÓÀÇ Á¢±Ù ½ºÅر¸Á¶¶ó°í ÇÒ¼öÀÖÀ»±î³ª? ^^;;)
¾È¿¡... ÁÖ¼®(ÇãÁ¢ÇÑ..)À» ´Þ¾Æ µÎ¾úÀ¸´Ï Âü°í ÇϽÿͿä.
-----------------¿¹Á¦ Äڵ庸±â-------------------------
Option Explicit
"±¸Çö ¹æ¹ýÀº
"»ðÀÔÀº ¸Ç³¡¿¡¼ ¸¸ ÀÌ·ç¾îÁø´Ù.
"»èÁ¦,¼öÁ¤Àº ¾îµð¿¡¼µµ ÀÌ·ç¾îÁú¼ö ÀÖ´Ù.(ÇöÀç ÀúÀåµÇ¾îÀÖ´Â ¹üÀ§³»¿¡¼)
"µ¥ÀÌÅÍ°¡ ²Ë Â÷ÀÖÀ¸¸é ´õÀÌ»ó Ãß°¡¸¦ ¸øÇÑ´Ù.
Const MAX_SIZE = 10
Private Type LINKSTC
GetVal As Boolean "ÇöÀç °ªÀ» °¡Áö°í Àִ°¡¿¡´ëÇÑ »óŸ¦ °¡Áø´Ù. False ¶ó¸é ¾ø´Â »óÅÂ
nVal1 As Integer
nVal2 As Integer
End Type
Dim LnkList(MAX_SIZE) As LINKSTC
Dim LnkInx(MAX_SIZE) As Integer "±¸Á¶Ã¼ÀÇ ¹è¿¿¡ À妽º °ªÀ» °¡Áø´Ù.
Dim nRear As Integer
Private Sub Command1_Click(Index As Integer)
Dim NewVal As LINKSTC
Select Case Index
Case 0 "Ãß°¡
NewVal.nVal1 = CInt(Text1(0))
NewVal.nVal2 = CInt(Text1(1))
InsertData NewVal
list1Update
Case 1 "»èÁ¦
DelData List1.ListIndex
list1Update
Case 2 "¼öÁ¤
NewVal.nVal1 = CInt(Text1(0))
NewVal.nVal2 = CInt(Text1(1))
EditData List1.ListIndex, NewVal
list1Update
End Select
End Sub
Private Sub Form_Load()
nRear = -1
Dim nCnt As Integer
"¾Ë¾Æº¸±â ½±°Ô -1°ªÀ¸·Î ¼ÂÆÃÇÑ´Ù.
For nCnt = 0 To MAX_SIZE
LnkInx(nCnt) = -1
Next
End Sub
"Ãß°¡, ¿À¹öÇ÷ο쳪 ±âŸ ¿¡·¯½Ã False¸¦ ¹Ýȯ
"Ãß°¡ÇÒ ±¸Á¶Ã¼¸¦ Àμö·Î ¹Þ´Â´Ù.
Private Function InsertData(stcData As LINKSTC) As Boolean
"ºñ¾î ÀÖ´Â ±¸Á¶Ã¼¸¦ ã¾Æ ±× ±¸Á¶Ã¼ÀÇ À妽º °ªÀ» LnkInx¹è¿¿¡ ³Ö´Â´Ù.
Dim nCnt As Integer
nRear = nRear + 1
If nRear >= MAX_SIZE - 1 Then
Debug.Print "¹öÆÛ°¡ ¸¸¶¥~~!!"
nRear = nRear - 1
Exit Function
End If
For nCnt = 0 To MAX_SIZE - 1
If Not LnkList(nCnt).GetVal Then Exit For "ºñ¾îÀÖ´Â ±¸Á¶Ã¼¸¦ ã¾Ò´Ù~!
Next
If nCnt = MAX_SIZE Then
Debug.Print "´õÀÌ»ó ÀúÀåÇÒ ±¸Á¶Ã¼ ¾øÀ½~~!!"
nRear = nRear - 1
Exit Function
End If
"ãÀº ±¸Á¶Ã¼¿¡ °ªÀ» ¼ÂÆÃÇÑ´Ù.
With LnkList(nCnt)
.GetVal = True
.nVal1 = stcData.nVal1
.nVal2 = stcData.nVal2
End With
LnkInx(nRear) = nCnt "ºñ¾îÀÖ´Â ±¸Á¶Ã¼ÀÇ À妽º °ªÀ» ³Ö´Â´Ù.
End Function
"ƯÁ¤ À§Ä¡ÀÇ µ¥ÀÌÅ͸¦ »èÁ¦ÇÑ´Ù.
Private Function DelData(nIndex As Integer) As Boolean
DelData = False
Dim nCnt As Integer
If nIndex > nRear Or nIndex <= -1 Then Exit Function
LnkList(LnkInx(nIndex)).GetVal = False
"ÁöÁ¤ÇÑ °÷ ÀÌÈÄÀÇ °ªÀ»À» ¾ÕÀ¸·Î ¶¯±ä´Ù.
For nCnt = nIndex To nRear
LnkInx(nCnt) = LnkInx(nCnt + 1)
Next
nRear = nRear - 1
End Function
Private Function EditData(nIndex As Integer, NewData As LINKSTC) As Boolean
If nIndex > nRear Or nIndex <= -1 Then Exit Function
With LnkList(LnkInx(nIndex))
.nVal1 = NewData.nVal1
.nVal2 = NewData.nVal2
End With
End Function
Private Sub list1Update()
Dim nCnt As Integer
List1.Clear
For nCnt = 0 To MAX_SIZE - 1
List1.AddItem LnkInx(nCnt)
Next
Label2.Caption = "RearPtr : " & CStr(nRear)
End Sub
Private Sub List1_Click()
If List1.ListIndex > nRear Or List1.ListIndex <= -1 Then Exit Sub
Text1(0) = LnkList(LnkInx(List1.ListIndex)).nVal1
Text1(1) = LnkList(LnkInx(List1.ListIndex)).nVal2
Label3.Caption = "CurrentPtr : " & List1.ListIndex
End Sub
|
|