Fa لود کردن یک فایل Text با تعداد Line زیاد مثلا 500000 تا تو لیست باکس!

آقا من یه فایل text دارم که تعداد لاین ها بیش از 140000 هستش حالا اینو بخام لود کنم تو لیست باکس قطعا میگه این فایل خیلی بزرگه چه برسه به اینکه قراره عملیات جستجو هم انجام بده
روشی که تو ذهنم اینه که بیاد 1000 تا 1000 تا لاین ها رو تو لیست باکس لود کنه و عملیات جستجو رو انجام و درنهایت تو یه لیست باکس جدید به کاربر نشون بده دوستان اگه روشی بهتر و ساده تر تو ذهنشون هست ممنون میشم کمک کنن
یه نمونه از فایل Text رو هم آپ کردم
 

پیوست ها

  • list0.txt
    31.5 کیلوبایت · بازدیدها: 0

MahmoodM30

مدیر <A href="http://forum.majidonline.com/forums/
از پلاگین SQLite استفاده کنید و بریزید تو دیتابیس و با سرعت بالا جستجو.... رو انجام بدید تنها راهش همینه باقی راه ها اشتباه هست پیگیر نباشید
 
از پلاگین SQLite استفاده کنید و بریزید تو دیتابیس و با سرعت بالا جستجو.... رو انجام بدید تنها راهش همینه باقی راه ها اشتباه هست پیگیر نباشید
محمود جان قطعه سخت افزاری ما این فایل TEXT رو ایجاد می کند ، درواقع این برنامه ای که دارم آماده می کنم یه نوع جستجو گره فقط همین ، برای این کار من باید بگم تمام این 500000 تا رو وارد دیتابیس کنن که خیلی ناجوره و خسته کنندست بنظرت میشه که بیام تمام لاین ها رو تک تک بخونم و واورد دیتابیس کنم ، منظورم اینه کاربر نیاد این 500000 تا رو وارد دیتابیس کنه بلکه خود نرم افزار اینا وارد کنه و بستر رو برای جستجوی سریع آماده کنه ، همین شدنیه؟

یه سوال دیگه تو همچین متنی چطوری می تونم 12/21/2016 13:50:54 12.82 19.9 اسپیس های زده شده رو تشخیص بدم مثلا بین این دوتا مقدار 12.82 19.9
 
ببخشید اون پخش پایین اینطوریه
یه سوال دیگه تو همچین متنی 12/21/2016 13:50:54 12.82 19.9 چطوری می تونم اسپیس های زده شده رو تشخیص بدم مثلا بین این دوتا مقدار 12.82 19.9
 

MahmoodM30

مدیر <A href="http://forum.majidonline.com/forums/
محمود جان قطعه سخت افزاری ما این فایل TEXT رو ایجاد می کند ، درواقع این برنامه ای که دارم آماده می کنم یه نوع جستجو گره فقط همین ، برای این کار من باید بگم تمام این 500000 تا رو وارد دیتابیس کنن که خیلی ناجوره و خسته کنندست بنظرت میشه که بیام تمام لاین ها رو تک تک بخونم و واورد دیتابیس کنم ، منظورم اینه کاربر نیاد این 500000 تا رو وارد دیتابیس کنه بلکه خود نرم افزار اینا وارد کنه و بستر رو برای جستجوی سریع آماده کنه ، همین شدنیه؟
بله کاملا شدنیه و فک کنم حدود 40 ثانیه و این حدود طول میکشه شایدم کمتر
یه سوال دیگه تو همچین متنی 12/21/2016 13:50:54 12.82 19.9 چطوری می تونم اسپیس های زده شده رو تشخیص بدم مثلا بین این دوتا مقدار 12.82 19.9
برای این کار از GetArrayItem

بهتره طالعات خودتون رو در مورد بیلدر و توابعش بالا ببرید والا امکان داره بتونید همچین برنامه ای بنویسید
 
بله کاملا شدنیه و فک کنم حدود 40 ثانیه و این حدود طول میکشه شایدم کمتر

برای این کار از GetArrayItem

بهتره طالعات خودتون رو در مورد بیلدر و توابعش بالا ببرید والا امکان داره بتونید همچین برنامه ای بنویسید
محمود جان از طریق این کد اون کار ر
بله کاملا شدنیه و فک کنم حدود 40 ثانیه و این حدود طول میکشه شایدم کمتر

برای این کار از GetArrayItem

بهتره طالعات خودتون رو در مورد بیلدر و توابعش بالا ببرید والا امکان داره بتونید همچین برنامه ای بنویسید
محمود جان کد تشخیص فاصله ها رو پیدا کردم نمونه پروژه هم
بله کاملا شدنیه و فک کنم حدود 40 ثانیه و این حدود طول میکشه شایدم کمتر

برای این کار از GetArrayItem

بهتره طالعات خودتون رو در مورد بیلدر و توابعش بالا ببرید والا امکان داره بتونید همچین برنامه ای بنویسید
سلام محمود جان کد تشخیص اسپیس های بین نوشته ها رو پیدا کردم ولی فکر کنم مشکل از فایل تکستی هست که قطعه سخت افزاریم داره تولید می کنه بطوریکه وقتی یک فایل تکست دستی درست می کنم و بین دو کلمه فاصله میندازم فاصله رو تشخیص و دوتا کلمه رو جدا جدا نشون میده اما در مورد فایل تولیدی توسط قطعه سخت افزاریم این کد درست کار نمی کنه و عملاً فاصله های ایجاد شده بین نوشته ها رو که قطعه ایجاد کرده تشخیص نمیده ، من دوتا پروژه آپ کردم یه نگاهی بکن ببین چه باید بکنیم ، بازم ممنون
 

پیوست ها

  • list1.zip
    510.9 کیلوبایت · بازدیدها: 0
  • list2.zip
    511 کیلوبایت · بازدیدها: 0
بله کاملا شدنیه و فک کنم حدود 40 ثانیه و این حدود طول میکشه شایدم کمتر

برای این کار از GetArrayItem

بهتره طالعات خودتون رو در مورد بیلدر و توابعش بالا ببرید والا امکان داره بتونید همچین برنامه ای بنویسید
سلام محمود جان پروژه هایی رو که برات آپ کرده بودم نگاه کردی ؟
 
از پلاگین SQLite استفاده کنید و بریزید تو دیتابیس و با سرعت بالا جستجو.... رو انجام بدید تنها راهش همینه باقی راه ها اشتباه هست پیگیر نباشید
سلام محمود جان
بله کاملا شدنیه و فک کنم حدود 40 ثانیه و این حدود طول میکشه شایدم کمتر

برای این کار از GetArrayItem

بهتره طالعات خودتون رو در مورد بیلدر و توابعش بالا ببرید والا امکان داره بتونید همچین برنامه ای بنویسید
سلام محمود جان اگه یادت باشه پرسیدم ازت که اگر من یک فایل تکست با 500000 لاین داشته باشم و بخوام این 500000 تا لاین رو تو پایگام ثبت کنم چقدر زمان میبره گفتی 30 تا 40 ثانیه ، حالا من من اینکار رو با 6000 لاین انجام دادم که 20 دقیقه زمان برد تا همه رو ثبت کرد ، این زمان خیلی خیلی زیاده یه نگاهی به این کدا بکن ببین مشکلی ندارن یا اگه راه حلی داری بی زحمت کمک کن برادر
بخش یک 1 :
هر لاین من شامل اینا میشن : 2016/10/13 13:14:35 25.48 789547.52

text$='لطفا قبل از معرفي داده ها جديد عمليات آماده سازي را انجام دهيد '
text1$=' آيا عمليات آماده سازي را انجام داده ايد؟'
text2$=text$+CHR(13)+CHR(10)+CHR(13)+CHR(10)+text1$
flag=32+4+0+0+0
param$=text2$+','+CHAR(flag)
MessageEx(".:: پيغام ::.","param$")
If (CBK_MsgEx=6) Then
OpenFile("TXT file|*.txt|All Files|*.*||","*.txt")
If (OpenFile$='') Then
Return()
Else
Show("LOADING")

line0=NOL(OpenFile$)
For b=1 To line0
count=count+1
ReturnStr$=StrFromFile(OpenFile$,count,1)
r$=sp1$
h$='#'
b$=StrChange(ReturnStr$,r$,h$)+'#'
num=GetArrayNum(b$,#)
For i=1 To num
get$=GetArrayItem(b$,#,i)
Next i
count1$=CHAR(count)
EditBox1$=count1$
EditBox2$=get$[1]
EditBox3$=get$[2]
EditBox4$=get$[3]
EditBox5$=get$[4]
RunScript("ScriptCheckCodeOzv")

Next b
End
If (b=line0) Then
Hide("LOADING")

NextPage()
Else
End
End
If (CBK_MsgEx=7) Then
Return()
End

اینم بخش دوم که نه پایگاه دست کاری شد و نه کدا

SQLQuery$ = 'INSERT INTO OzvTBL (Code,Name,LName,Mobile,DateAdd,Image,Rezome)'
SQLQuery$ = SQLQuery$ + ' VALUES (\''+EditBox1$+'\',\''+EditBox2$+'\',\''+EditBox3$+'\',\''+EditBox4$+'\',\''+EditBox5$+'\',\'[[ImageFile]]\',\''+Rezome$+'\');'
PluginSet("PlugInSQLite","SQLQuery$")
PluginRun("PlugInSQLite","UpdateDB")
PluginGet("PlugInSQLite","Updated")
 
سلام محمود عزی تو این پست جایی گفتی برای ثبت خطوط یک فایل متنی که مثلا چهل هزار خط داره داخل دیتابیس کمتر از یک دقیقه زمان نیازه.چون ما همه در این انجمن خیلی چیزها ازت دیدیم و من یکی به شخصه میدونم رو هوا حرف نمیزنی میشه بگو همچین چیزی چطور ممکنه.
البته اگه منظورت این بود چهل هزار خط هر خط یک رکورد یعنی چهل هزار رکورد.
احتمالا روشت با حلقه نیستش.لطفا توضیح بده خیلی بنظرم جالب اومده
 

MahmoodM30

مدیر <A href="http://forum.majidonline.com/forums/
من منظورم با خود بیلدر نبوده تو این زمان بشه ثبت دیتابیس کرد یه سری نرم افزار های مدیریت دیتابیس sQLite هست که میشه از طریق فایل اکس و تکست و ... راحت در سریعترین زمان ممکن داده ها رو وارد دیتابیس کرد
 

جدیدترین ارسال ها

بالا