نمایش نتایج 1 تا 6 از 6

نام تاپیک: پاک کردن خط های تکراری از یک تکستباکس!

  1. #1
    کاربر دائمی آواتار niksalehi
    تاریخ عضویت
    شهریور 1389
    محل زندگی
    neverland
    پست
    288

    پاک کردن خط های تکراری از یک تکستباکس!

    سلام، یه تکستباکس دارم، میخوام خط های تکراری رو ازش پاک کنم، یعنی اگه :
    new line
    new line
    new line
    old line
    old line
    new line

    به این صورت باشه، اینطوری بشه:
    new line
    old line

    ممنونم!

  2. #2
    کاربر دائمی آواتار arenaw
    تاریخ عضویت
    خرداد 1390
    محل زندگی
    /home/nainemom
    پست
    500

    نقل قول: پاک کردن خط های تکراری از یک تکستباکس!

    سلام
    این فانکشن هارو کپی کن توی مادژول:

    Function IsMultiLine(ByVal str As String) As Boolean
    If Not InStr(1, str, Chr(13) & Chr(10)) = 0 Then IsMultiLine = True
    End Function
    Function AllLine(ByVal str As String) As Integer
    If IsMultiLine(str) = False Then
    AllLine = 1
    Else
    Dim a$()
    a = Split(str, Chr(13) & Chr(10))
    AllLine = UBound(a) + 1
    End If
    End Function
    Function ReadLine(ByVal str As String, ByVal line As Integer) As String
    If IsMultiLine(str) = False Then
    If line = 1 Then ReadLine = str
    Else
    Dim a$()
    a = Split(str, Chr(13) & Chr(10))
    If Not line - 1 > UBound(a) Then
    ReadLine = a(line - 1)
    End If
    End If
    End Function
    Function ReadLineFromTo(ByVal str As String, ByVal forline As Integer, ByVal toline As Integer) As String
    Dim i As Variant
    If IsMultiLine(str) = True Then
    Dim a$()
    a = Split(str, Chr(13) & Chr(10))
    For i = forline - 1 To toline - 1
    ReadLineFromTo = ReadLineFromTo & a(i) & IIf(i <> toline - 1, vbNewLine, "")
    Next i
    End If
    End Function
    Public Function DeleteTekrariLine(ByVal str As String) As String
    Dim i As Integer, j As Integer, k As Integer
    Dim exist As Boolean
    For i = 1 To AllLine(str)
    exist = False
    For j = 1 To AllLine(DeleteTekrariLine)
    If ReadLine(str, i) = ReadLine(DeleteTekrariLine, j) Then exist = True
    Next
    If exist = False Then DeleteTekrariLine = DeleteTekrariLine & ReadLine(str, i) & vbNewLine
    Next i
    DeleteTekrariLine = ReadLineFromTo(DeleteTekrariLine, 1, AllLine(DeleteTekrariLine) - 1)
    End Function


    بعد اینجوری توی برنامت استفاده کن:

    Text1 = DeleteTekrariLine(Text1)
    آخرین ویرایش به وسیله arenaw : چهارشنبه 18 مرداد 1391 در 15:18 عصر

  3. #3
    کاربر دائمی آواتار niksalehi
    تاریخ عضویت
    شهریور 1389
    محل زندگی
    neverland
    پست
    288

    نقل قول: پاک کردن خط های تکراری از یک تکستباکس!

    ممنون اما وقتی روی کامند باتن کلیلک میکتم این خط رو زرد نشون میده
    If IsMultiLine(str) = False Then
    و
    ارور زیر رو میده:
    Sub or Function not defined
    آخرین ویرایش به وسیله niksalehi : چهارشنبه 18 مرداد 1391 در 14:54 عصر

  4. #4
    کاربر دائمی آواتار arenaw
    تاریخ عضویت
    خرداد 1390
    محل زندگی
    /home/nainemom
    پست
    500

    نقل قول: پاک کردن خط های تکراری از یک تکستباکس!

    حواسم نبود، دوباره کدهای مادژول رو کپی کنید (ویرایش کردم پست قبلو)

  5. #5
    کاربر دائمی
    تاریخ عضویت
    اردیبهشت 1391
    محل زندگی
    root
    سن
    28
    پست
    1,098

    نقل قول: پاک کردن خط های تکراری از یک تکستباکس!

    سلام . من هم همین سوال رو داشتم . فقط من یه لیست باکس دارم که توش موارد تکراریه
    مثلا:
    حمید
    حسن
    حمید
    حسن
    حسن

    ومی خوام اینهای غربال بشن و در نتیجه خروجی این بشه
    حمید
    حسن

    میشه راهنمایی کنین . هر کاری کردم نشد.

  6. #6

    نقل قول: پاک کردن خط های تکراری از یک تکستباکس!

    نقل قول نوشته شده توسط sh.dehnavi مشاهده تاپیک
    سلام . من هم همین سوال رو داشتم . فقط من یه لیست باکس دارم که توش موارد تکراریه
    مثلا:
    حمید
    حسن
    حمید
    حسن
    حسن

    ومی خوام اینهای غربال بشن و در نتیجه خروجی این بشه
    حمید
    حسن

    میشه راهنمایی کنین . هر کاری کردم نشد.
    سلام علیکم

    میتوانید از یکی از دو روال زیر استفاده کنید:


    Public Sub DelExtListBoxItemsA(ListBox As ListBox)
    On Error Resume Next
    Dim dic As New Scripting.Dictionary, i
    Set dic = CreateObject("scripting.dictionary")
    With ListBox
    For i = 0 To .ListCount - 1
    If Not dic.Exists(.List(i)) Then dic.Add .List(i), .List(i)
    Next 'i
    .Clear
    For Each i In dic.Items
    .AddItem i
    Next 'i
    End With
    End Sub


    و یا

    Public Sub DelExtListBoxItemsB(ListBox As ListBox)
    On Error Resume Next
    Dim sLB$, i
    Const sDL$ = "<DL>"
    sLB$ = sDL$
    With ListBox
    For i = 0 To .ListCount - 1
    If InStr(1, sLB$, sDL$ & .List(i) & sDL$, vbTextCompare) = 0 Then
    sLB$ = sLB$ & .List(i) & sDL$
    End If
    Next 'i
    .Clear
    For Each i In Split(sLB$, sDL$, , vbTextCompare)
    If i > "" Then .AddItem i
    Next
    End With
    End Sub


    البته DelExtListBoxItemsA بهینه تر است

    برای مثال:

    Private Sub Command1_Click()
    DelExtListBoxItemsA List1
    End Sub

    موفق باشید
    .: مداحی دلنشین شهیدی که در زادروز ولادتش پرکشید [ تصاویر... ]
    .: مداحی دلنشین شهید غلامعلی رجبی [ تصاویر... ]

    .: لطفا سوالاتی که قابل طرح در انجمن هستند را در خصوصی ارسال نفرمائید.

تاپیک های مشابه

  1. سوال: هنگ کردن برنامه هنگام پاک کردن ایتم های تکراری در لیست باکس
    نوشته شده توسط alishademan در بخش برنامه نویسی در 6 VB
    پاسخ: 0
    آخرین پست: دوشنبه 16 خرداد 1390, 14:28 عصر
  2. پاک کردن رکورد های تکراری
    نوشته شده توسط 5mmmmm در بخش SQL Server
    پاسخ: 9
    آخرین پست: دوشنبه 30 شهریور 1388, 22:05 عصر
  3. پاک کردن پست های خودم
    نوشته شده توسط ali_hadian در بخش گفتگو با مسئولین سایت، درخواست و پیشنهاد
    پاسخ: 2
    آخرین پست: جمعه 12 فروردین 1384, 03:13 صبح
  4. پاک شدن تاپیک های تکراری یا خیلی قدیمی
    نوشته شده توسط hassan1365 در بخش گفتگو با مسئولین سایت، درخواست و پیشنهاد
    پاسخ: 3
    آخرین پست: شنبه 07 آذر 1383, 10:02 صبح
  5. پاک کردن سطر های جدولی از بانک اطلاعاتی sqlserver
    نوشته شده توسط majid1234 در بخش SQL Server
    پاسخ: 3
    آخرین پست: چهارشنبه 13 خرداد 1383, 11:07 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •