ورود

View Full Version : سوال: خواندن فایل با حجم زیاد



AlfAPo
یک شنبه 21 آبان 1391, 21:23 عصر
سلام
چطوری میشه یه فایل با حجم زیاد (2G) رو باز کرد
می دونم یکجا نمی شه اگه هم بشه باید رم سیستم بالای 2.5Gباشه
باید در قسمت های 100MB یا 200MB یا هرچی باز کرد ولی چطور؟

محسن واژدی
یک شنبه 21 آبان 1391, 22:51 عصر
سلام علیکم
باید فایل را با دسترسی باینری باز کنید
هم میتوانید در انجمن جستجو کنید و هم گوگل

لینک زیر در گوگل بررسی کنید:
https://www.google.com/search?q=%D8%A2%D9%85%D9%88%D8%B2%D8%B4+%DA%A9%D8% A7%D8%B1+%D8%A8%D8%A7%D8%B1+%D9%81%D8%A7%DB%8C%D9% 84%D9%87%D8%A7+%D8%AF%D8%B1+vb6&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:en-US:official&client=firefox-a#hl=en&client=firefox-a&hs=0Uz&tbo=d&rls=org.mozilla:en-US%3Aofficial&sclient=psy-ab&q=%DA%A9%D8%A7%D8%B1+%D8%A8%D8%A7%D8%B1+%D9%81%D8% A7%DB%8C%D9%84%D9%87%D8%A7+%D8%AF%D8%B1+vb6&oq=%DA%A9%D8%A7%D8%B1+%D8%A8%D8%A7%D8%B1+%D9%81%D8 %A7%DB%8C%D9%84%D9%87%D8%A7+%D8%AF%D8%B1+vb6&gs_l=serp.3...9855.9855.0.10205.1.1.0.0.0.0.0.0..0 .0.les%3B..0.0...1c.9ulTtXjwfVw&pbx=1&bav=on.2,or.r_gc.r_pw.r_qf.&fp=abc90e9ffb4e89f5&bpcl=38093640&biw=1366&bih=471

موفق باشید

AlfAPo
دوشنبه 22 آبان 1391, 00:47 صبح
منظورم همون دست رسی باینری بود
شما فرض کن فقط می خوام 2000 بایت اول رو تو یه متغییر بزارم
و به همین ترتیب 2000 تای بعدی
هم تو گوگل هم تو انجمن گشتم چون چیزی پیدا نکردم مجبور شدم اینجا مطرح کنم

محسن واژدی
دوشنبه 22 آبان 1391, 13:19 عصر
منظورم همون دست رسی باینری بود
شما فرض کن فقط می خوام 2000 بایت اول رو تو یه متغییر بزارم
و به همین ترتیب 2000 تای بعدی
هم تو گوگل هم تو انجمن گشتم چون چیزی پیدا نکردم مجبور شدم اینجا مطرح کنم

کد زیر را بررسی کنید:
Private Sub Command1_Click()
Dim bFData() As Byte
Dim iFF%
iFF% = FreeFile
Open "C:\WINDOWS\explorer.exe" For Binary As iFF%
Do

If LOF(iFF%) - Loc(iFF%) >= 2000 Then
ReDim bFData(2000)
Else
ReDim bFData(LOF(iFF%) - Loc(iFF%))
End If

Get #iFF%, , bFData

Caption = "Current position: " & Loc(iFF%) - 1 & "/" & LOF(iFF%)

'--- OUR COMMANDS TO PROCESS bFData var
Loop Until EOF(iFF%)

Close iFF%

Beep

End Sub

در این کد Explorer.exe باز و درهربار 2KB یا 2000bytes از فایل جدا و در متغیر bFData ریخته میشود، کدهای خودتان را بجای کامنت بزارید

موفق باشید

AlfAPo
دوشنبه 22 آبان 1391, 18:27 عصر
ممنون به خاطر جوابتون:لبخندساده:

حالا اگه بخوایم با دست رسی تصادفی این کارو انجام بدیم چطور میشه
یعنی بر فرض ما تا مرحله ششم حلقه پیش رفتیم حال بخوایم برگردیم و اون قسمت که تو مرحله دو خوندیم رو دوباره بخونیم باید چه کرد؟
منظورم اینه
به تصویر نگاه کنید اگه ما فرض کل فایل رو قراه تو ده قسمت بخونیم حالا تو قسمت هفتم باشیم و بخوایم برگردیم دوباره قسمت دوم رو بخونیم باید چی کار کرد

محسن واژدی
دوشنبه 22 آبان 1391, 18:30 عصر
ممنون به خاطر جوابتون:لبخندساده:

حالا اگه بخوایم با دست رسی تصادفی این کارو انجام بدیم چطور میشه
یعنی بر فرض ما تا مرحله ششم حلقه پیش رفتیم حال بخوایم برگردیم و اون قسمت که تو مرحله دو خوندیم رو دوباره بخونیم باید چه کرد؟
منظورم اینه
به تصویر نگاه کنید اگه ما فرض کل فایل رو قراه تو ده قسمت بخونیم حالا تو قسمت هفتم باشیم و بخوایم برگردیم دوباره قسمت دوم رو بخونیم باید چی کار کرد

خواهش میکنم،
برای تغییر مکان نشانگر از دستور Seek استفاده میکنم، به عنوان مثال طبق تصویر برای برگشتن به مکان 2، Seek را بصورت زیر مینویسیم:
Seek iFF%,2

برای بدست آورم موقعیت فعلی هم از تابع Loc استفاده میکنیم که نمونه اش را در پست 4 میبینیم


موفق باشید