منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
[سؤال] تشغيل ملف مضغوط مباشر دون فك ؟ - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : [سؤال] تشغيل ملف مضغوط مباشر دون فك ؟ (/showthread.php?tid=2896)



تشغيل ملف مضغوط مباشر دون فك ؟ - EnormousSoft - 16-05-14

السلام عليكم ورحمه الله وبركاته

لدى مجموعه صور وملفات نصيه اريد وضعهم فى ملف واحد ( ملف مضغوط مثلا )
بحيث يمكننى الوصول اليهم بشكل مباشر دون فك الضغط
لقد جربت طريقه اخرى وهى قرائه الملفات byte ثم تحويلها الى string ثم حفظها فى ملف واحد ولكنها طريقه بطيئه وتستغرق وقت فى القرائه

شكرا لكم Heart


RE: تشغيل ملف مضغوط مباشر دون فك ؟ - ali.alfoly - 17-05-14

لماذا تريد فعل ذلك لعل هناك طريقة افضل


RE: تشغيل ملف مضغوط مباشر دون فك ؟ - سعود - 17-05-14

الملفات النصية والصور لاتحتاج استخراجهم للقراءة . بل مباشرة تقرا محتواهم خزن صورة وملف html واكتب الكود التالي:
كود :
PictureBox1.Image = My.Resources.logo
        WebBrowser1.DocumentText = My.Resources.thread_1546



RE: تشغيل ملف مضغوط مباشر دون فك ؟ - EnormousSoft - 17-05-14

شكرا اخوانى على مجهودكم

الفكره اننى اقوم ببرمجه برنامج يتعامل مع FTP لنقل الملفات وتسجيلها فى قواعد بيانات لذلك بدلا من ان يقوم البرنامج برفع عده ملفات يضغطهم ويرفعهم مره واحده

فهل يمكن جمع عده ملفات فى ملف واحد ثم قرائتهم مباشره دون الحاجه لفك الضغط او ما شابه ؟ !!!

وشكرا


RE: تشغيل ملف مضغوط مباشر دون فك ؟ - الشاكي لله - 17-05-14

في فيجوال بيسك 4 توجد هناك كلاسات تتعامل مع zip مباشرة


اولا : عليك بتحويل الTarget Framework لمشروعك الى 4.5

ثانيا : قم باضافة المراجع System.IO.Compression و System.IO.Compression.FileSystem

ثاثا : اضف في اعلى المحرر Imports System.IO.Compression

رابعا : لو كان عندي ملف مضغوط باسم update.zip لو حبيت اعرف اسماء الملفات التي بداخله :-

PHP كود :
Const  zipfile As String "C:\Users\Fti\Desktop\update.zip"

Dim za As ZipArchive ZipFile.Open(zipfileZipArchiveMode.Read)


For 
Each entrie As ZipArchiveEntry In za.Entries
    MessageBox
.Show(entrie.Name)
Next 

راح يطبع لي في كل مرة اسم ملف في الملف المضغوط

حيث ان مصطلح Entries يعبر عن الملفات التي بداخل الملف المضغوط



-



لو حبيت تعرف حجم ملف معين داخل الملف المضغوط :-

PHP كود :
Const  zipfile As String "C:\Users\Fti\Desktop\update.zip"

Dim za As ZipArchive ZipFile.Open(zipfileZipArchiveMode.Read)

Dim ae As ZipArchiveEntry za.Entries.Where(Function(nn.Name "update.xml").FirstOrDefault()
MessageBox.Show(ae.Length.ToString()) 



--


عمل استخراج لملف معين وليكن اسمه update.xml :

PHP كود :
Const  zipfile As String "C:\Users\Fti\Desktop\update.zip"

Dim za As ZipArchive ZipFile.Open(zipfileZipArchiveMode.Read)

Dim ae As ZipArchiveEntry za.Entries.Where(Function(nn.Name "update.xml").FirstOrDefault()
ae.ExtractToFile("c:/update.xml"


--


لو حبيت تجيب بيانات الملف لوحده دون عمل استخراج (يعني جلب bytes) له :-

PHP كود :
Dim fileData As Byte()
Const  
zipfile As String "C:\Users\Fti\Desktop\update.zip"

Dim za As ZipArchive ZipFile.Open(zipfileZipArchiveMode.Read)

Dim ae As ZipArchiveEntry za.Entries.Where(Function(nn.Name "update.xml").FirstOrDefault()
fileData = New Byte(ae.Length) {}

Dim st As Stream ae.Open()
st.Read(fileData0fileData.Length)

'now fileData variable is store update.xml data 


--


لو حبيت تعرف حجم الملف update.xml بعد ان تم ضغطه اي (Compression size) :-

PHP كود :
Const  zipfile As String "C:\Users\Fti\Desktop\update.zip"

Dim za As ZipArchive ZipFile.Open(zipfileZipArchiveMode.Read)

Dim ae As ZipArchiveEntry za.Entries.Where(Function(nn.Name "update.xml").FirstOrDefault()
MessageBox.Show(ae.CompressedLength.ToString()) 


الاكواد محولة من السي شارب - يمكن فيها غلط


RE: تشغيل ملف مضغوط مباشر دون فك ؟ - EnormousSoft - 17-05-14

شكرا لكم اخوان ولكل الخبراء

Heart