PDA

View Full Version : خواندن فایل متنی



aleas2
پنج شنبه 31 مرداد 1392, 01:32 صبح
سلام خسته نباشید دوستان یه فایل متنی با روش

Open App.Path & "txt1.txt" For Output As #1
Print #1, RichTextBox1.Text
Close #1

ذخیره کردم حالا سریع ترین روش خواندن کامل این این فایل با کمترین کاهش سرعت چی ضمنا" حجم فایل هم بالا هسته
از این روش استفاده میکنم خیلی سرعت پاینه که برنامه هم هنگ میکنه


Open App.Path & "txt1.txt" For Input As #1
Do While EOF(1) = False
Input #1, b
RichTextBox1.Text = RichTextBox1.Text & vbCrLf & Trim(b)
'...
DoEvents
Loop
Close #1

m.4.r.m
پنج شنبه 31 مرداد 1392, 01:44 صبح
از فایل FOS استفاده کن .

mmssoft
پنج شنبه 31 مرداد 1392, 02:46 صبح
چرا از Do استفاده میکنی؟؟ اینجوری هم میشه :

Open CommonDialog1.FileName For Input As #1
RichTextBox1.Text = Input(LOF(1), 1)
Close #1

hamalous
پنج شنبه 31 مرداد 1392, 05:12 صبح
سلام دوست عزیز استفاده از richtextbox خودش باعث کندی خوندن فایل میشه (ازنظرمن) از طرفی textbox خود vb6 هم محدودیت حجمی داره ،برای همین اگه مشکلی برای استفاده از کامپوننت ندارید، من توصیه می کنم از flat edit کامپوننت codejock استفاده کنی ،سرعتش خیلی بهترrichtextbox هست ، یه نکته دیگه که به نظر من باعث افزایش سرعت خواندن فایلهای متنی میشه اینه که ابتدا فایل رو توی یه متغیر از نوع string ریخته و سپس به تکس باکس یا richtextbox انتقال بدین لطفا به مثال زیر توجه کنید :
Private Sub Command1_Click()
On Error Resume Next
Dim out As String
Dim filepath As String
CommonDialog1.ShowOpen
filepath = CommonDialog1.FileName
Open filepath For Input As #1
out= Input(LOF(1), #1)
Close #1
Text1.Text = out
در مثال بالا من اومدم فایل متنی رو به یک متغیر string به نام out منتقل کردم و سپس اونرو به تکست باکس انتقال دادم اینکار باعث افزایش سرعت در حد قابل ملاحظه ای میشه
اینم کامپوننت codejock ،ورژن 15 اومده اما چون لایسنسش رو نداشتم ورژن 13 برات قرار دادم ببخشید توی انجمن نتونستم قرار بدم به خاطر همین توی آپلود سنتر قرار دادم :
http://uploadtak.com/viewer.php?file=h163_Codejock.rar

aleas2
پنج شنبه 31 مرداد 1392, 09:40 صبح
ممنون برای ذخیره کردن هم سریع تر از

Print #1,text1.Text
راه حلی است؟

hamalous
پنج شنبه 31 مرداد 1392, 09:55 صبح
ممنون برای ذخیره کردن هم سریع تر از

Print #1,text1.Text
راه حلی است؟
خواهش می کنم دستور print فقط برای نمایش دادن بکار میره نه ذخیره کردن البته تا جایی که من می دونم و فکر نکنم باعث کندی بشه به هر حال اگه شما فایل متنی رو توی متغیر از نوع string قرار بدین مشکلی از لحاظ دستور print برات بوجود نمیاد

aleas2
پنج شنبه 31 مرداد 1392, 10:02 صبح
تاجایی من میدونم string محدودیت داره روشی بدون محدودیت نیاز دارم !

Mr'Jamshidy
پنج شنبه 31 مرداد 1392, 10:27 صبح
خواهش می کنم دستور print فقط برای نمایش دادن بکار میره نه ذخیره کردن البته تا جایی که من می دونم و فکر نکنم باعث کندی بشه به هر حال اگه شما فایل متنی رو توی متغیر از نوع string قرار بدین مشکلی از لحاظ دستور print برات بوجود نمیاد

دستور Print برای ذخیره اطلاعات تو فایل هم به کار میره


تاجایی من میدونم string محدودیت داره روشی بدون محدودیت نیاز دارم !

کلا شما به هر دری بزنی تو وی بی 6 محدودیت میبینی اما فکر کنم آرایه Byte محدودیت بالایی داشته باشه
یک چیزی تو این مایه ها (البته تو سیستم من تا این عدد رو پشتیبانی کرد)
Dim bByte(393009999) As Byte

hamalous
پنج شنبه 31 مرداد 1392, 10:39 صبح
نمی دونم شاید تصور من درست نیست ولی در جایی خوندم که محدوده string دومیلیارد کاراکتر هست آیا این گفته غلط هست یا من اشتباه برداشت کردم ؟ممنون

aleas2
پنج شنبه 31 مرداد 1392, 10:39 صبح
کلا شما به هر دری بزنی تو وی بی 6 محدودیت میبینی اما فکر کنم آرایه Byte محدودیت بالایی داشته باشه
یک چیزی تو این مایه ها (البته تو سیستم من تا این عدد رو پشتیبانی کرد)
Dim bByte(393009999) As Byte

کلا هم باید کم کم از vb6 نقل مکان کرد همین محدودیت اجرای خطی برنامه ها بزرگترین عیب vb6 هست

برحال این عدد تو هر سیستمی فرق میکنه؟محدودیت RichTextBox میدونین تا طول رشته چنده؟

Mr'Jamshidy
پنج شنبه 31 مرداد 1392, 11:12 صبح
نمی دونم شاید تصور من درست نیست ولی در جایی خوندم که محدوده string دومیلیارد کاراکتر هست آیا این گفته غلط هست یا من اشتباه برداشت کردم ؟ممنون

میتونید امتحان کنید، محدوده ای که یک String میتونه بگیره تعداد 196509677 (187 مگابایت) فضای خالیه که فکر میکنم اگر از یونیکد استفاده بشه مقدار نصف میشه


کلا هم باید کم کم از vb6 نقل مکان کرد همین محدودیت اجرای خطی برنامه ها بزرگترین عیب vb6 هست

برحال این عدد تو هر سیستمی فرق میکنه؟ محدودیت RichTextBox میدونین تا طول رشته چنده؟

به نظر من همه زبان ها یک محدودیت هایی دارن که البته با کمی فکر میشه این محدودیت ها رو شکست
مثلا محدودیت عدد در ویژوال بیسیک رو میشه با یک Type ساده از بین برد

ممکنه من که امتحان کردم این عدد بود (374 مگابایت) شاید به ازای رم یا فضای خالی اون باشه شاید هم پارامتر دیگه ای مد نظر باشه

نه متاسفانه

vbhamed
پنج شنبه 31 مرداد 1392, 12:02 عصر
سلام خسته نباشید دوستان یه فایل متنی با روش

Open App.Path & "txt1.txt" For Output As #1
Print #1, RichTextBox1.Text
Close #1

ذخیره کردم حالا سریع ترین روش خواندن کامل این این فایل با کمترین کاهش سرعت چی ضمنا" حجم فایل هم بالا هسته
از این روش استفاده میکنم خیلی سرعت پاینه که برنامه هم هنگ میکنه


Open App.Path & "txt1.txt" For Input As #1
Do While EOF(1) = False
Input #1, b
RichTextBox1.Text = RichTextBox1.Text & vbCrLf & Trim(b)
'...
DoEvents
Loop
Close #1

سلام
1 - حجم فايل دقيقا چقدره ؟
2 - اگر حجم خيلي خيلي بالا باشه اصلا خوندن يكباره فايل كار درستي نيست بلكه بايد هر مقدار مورد نيازه خونده بشه
3 - همونطور كه دوستان گفتن محدوديتها در هر زباني وجود داره، دليلش هم اينه كه حتما براي انجام يك كار راههاي بهتري هم هست و نويسندگان كامپايلرها راههاي ديگه اي براي اينكه محدوديت اعمال شده دست و پاي شما رو نبنده گذاشتن ولي شما سراغ اولين چيزي كه به ذهنتون رسيده رفتيد

aleas2
شنبه 02 شهریور 1392, 21:02 عصر
سلام
1 - حجم فايل دقيقا چقدره ؟
2 - اگر حجم خيلي خيلي بالا باشه اصلا خوندن يكباره فايل كار درستي نيست بلكه بايد هر مقدار مورد نيازه خونده بشه
3 - همونطور كه دوستان گفتن محدوديتها در هر زباني وجود داره، دليلش هم اينه كه حتما براي انجام يك كار راههاي بهتري هم هست و نويسندگان كامپايلرها راههاي ديگه اي براي اينكه محدوديت اعمال شده دست و پاي شما رو نبنده گذاشتن ولي شما سراغ اولين چيزي كه به ذهنتون رسيده رفتيد
حجم فایل همینطور در حال افزایشه هسته دلیل استفاده از فایل هم اینه سریع ترین روش ممکنه برای این کاری من میخوام فایل متنی هسته تا دیتابیس !

ولی میتونم فایل به حداکثر حجم رسید بگم فایل خالی بشه برای همن میخوام حداکثر طول رشته RichTextBox بدونم که به اون طول رشته رسید بگم خالی بشه

شما حداکثر محدودیت طول رشته RichTextBox میدونین چقدره؟

hamalous
شنبه 02 شهریور 1392, 21:26 عصر
حجم فایل همینطور در حال افزایشه هسته دلیل استفاده از فایل هم اینه سریع ترین روش ممکنه برای این کاری من میخوام فایل متنی هسته تا دیتابیس !

ولی میتونم فایل به حداکثر حجم رسید بگم فایل خالی بشه برای همن میخوام حداکثر طول رشته RichTextBox بدونم که به اون طول رشته رسید بگم خالی بشه

شما حداکثر محدودیت طول رشته RichTextBox میدونین چقدره؟
سلام دوست عزیز من رو ی سیستم خودم امتحان کردم حداکثر شد :268435455
شما برای اینکه بونید روی سیستم خودتون چقدر میشه خاصیت max lenght
توی properties ، ریچ تکست باکس رو تغییر بدین تا مشخص بشه حداکثر محدودیت روی سیستم شما چقدره