04-09-20, 11:03 AM
(آخر تعديل لهذه المشاركة : 04-09-20, 11:10 AM {2} بواسطة معاند الحظ.)
(03-09-20, 12:14 PM)bazooka top كتب : السلام عليكم ورحمة الله وبركاته
انا لدي listbox1 يوجد به مليون بروكسي مثلا . او مليون عنصر .
اريد ان احفظها علي الجهاز بصيغه txt
ولكن يتم تقسيم المليون بروكسي او المليون عنصر علي 49 ملف
كيف يمكنني فِعل ذلك ؟
اتمني الاجابة السريعة للضرورة
يتم تقسيمها علي 49 ملف بمعني انو يحفظهم 49 ملف text بدل ملف واحد
يقسم المجموع بتاعهم علي ال 49 ويحفظهوملي بالترتيب 1,2,3,4,5,6,7,8,9,10,11,............... 49
وعليك السلام ورحمة الله وبركاته
مادام تقول ان لديك مليون عنصر في ليست بوكس عبارة عن عناوين بروكسي
ومادام ان المطلوب هو تقسيم المليون بروكسي الى 49 مجموعة وهذا يعني ان في كل مجموعة يوجد 20408 عنصر وكسور
وكل مجموعة تحفظ في ملف نصي في المسار اللي تحدده
بحسب مافهمت انا جربت التالي
وضعت داخل الليست بوكس 1000 عنصر تبدأ من 0
ثم قمت بحفظ كل 50 عنصر في ملف على اعتبار انك تقصد بالرقم 49 تسعه واربعين عنصر
وكانت النتيجة انشاء 21 ملف كل ملف يحتوي 50 بروكسي الا الاخير يحتوي اقل من 50 بحكم الضرورة
وتاكدت من الحل بمطابقة اخر عنصر في اخر ملف مع اخر عنصر في الليست بوكس
كود :
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
WriteProxies(0)
End Sub
Sub WriteProxies(min As Integer)
Static counter As Integer
ProgressBar1.Maximum = ListBox1.Items.Count
Dim fname As String = "D:\test\proxy"
Dim sw As IO.StreamWriter
sw = New IO.StreamWriter(fname & counter & ".txt")
counter += 1
Static max As Integer
Dim lastValidMax As Integer = (ListBox1.Items.Count - 1) - 49
If (min + 49) < (lastValidMax + 49) Then
max = min + 49
Else
max = lastValidMax + 49 ' (ListBox1.Items.Count - 1)
End If
For a As Integer = min To max
Application.DoEvents()
sw.WriteLine(ListBox1.Items(a), True)
Try
ProgressBar1.Value += 1
Catch ex As Exception
End Try
Next
sw.Close()
If max < (ListBox1.Items.Count - 1) Then
min = max
WriteProxies(min)
End If
End Sub


