PDA

View Full Version : نوشتن function



niksalehi
چهارشنبه 05 تیر 1392, 14:29 عصر
سلام دوستان
کد زیر لاین های text1 رو به ایتم های list1 اضافه میکنه.
میخواستم بدونم چطوری این کد رو به فانکشن تبدیل کنیم؟
طوری که دیگه نیاز نباشه هر دفه کل کد رو بنویسم تو جاهای مختلف برنامه


Dim II As Long
Dim arrString() As String
arrString = Split(Text1, vbcrlf)
For II = 0 To UBound(arrString)
list1.AddItem arrString(II)
Next

SlowCode
چهارشنبه 05 تیر 1392, 14:53 عصر
سلام
میتونی اینطوری بنویسی:

Private Sub AddItems(Src As TextBox, Dest As ListBox)

Dim II As Long
Dim arrString() As String

arrString = Split(Src, vbCrLf)

For II = 0 To UBound(arrString)
Dest.AddItem arrString(II)
Next

End Sub


واسه صدا کردنش هم:

AddItems Text1,List1

niksalehi
چهارشنبه 05 تیر 1392, 15:15 عصر
خیلی ممنونم.
مثلا این کد :


Dim strCompare As String
Dim intCompare As Integer
For i = list1.ListCount - 1 To 0 Step -1
strCompare = list1.List(i)
intCompare = Len(Trim(strCompare))
If intCompare = 0 Then 'if zero, it will remove it
list1.RemoveItem (i)
End If
Next i
ایتم خالی رو از ایستباکس پاک میکنه

من اومدم اینطوری نوشتم.

Private Sub LstRemove(Lst As ListBox)
Dim i
Dim strCompare As String
Dim intCompare As Integer

For i = Lst.ListCount - 1 To 0 Step -1
strCompare = Lst.List(i)
intCompare = Len(Trim(strCompare))
If intCompare = 0 Then 'if zero, it will remove it
Lst.RemoveItem (i)
End If
Next i

End Sub

صدا زدنش رو به چه صورت باید بنویسم؟
اشتباه نوشتم کدش رو؟

--------

کد درست بود :لبخند:

اینطوری باید صدا زد:

LstRemove list1

ممنون از محسن15

SlowCode
چهارشنبه 05 تیر 1392, 16:57 عصر
آره درسته فقط کدهای داخل حلقه رو پاک کن و به جاش اینو بنویس:

If Len(Trim$(Lst.List(i))) = 0 Then
Lst.RemoveItem (i)
End If

اینطوری هم سرعت برنامه تو یه حلقه صد هزارتایی حدودا 30 میلی ثانیه بیشتر میشه و هم حافظه کمتری استفاده میشه:لبخند: