View Full Version : مبتدی: فشرده کردن یک فایل متنی (فوری)
7Helia 00
چهارشنبه 21 دی 1390, 19:01 عصر
سلام بچه ها خسته نباشین من یه سوال فوری دارم ممنون میشم کمکم کنین
چجوری میتونم یه فایل متنی رو فشرده کنم (البته منظورم زیپ کردن نیس فقط میخوام حجم خودش کم شه)
ممنون
night_secret
چهارشنبه 21 دی 1390, 22:06 عصر
میشه بیشتر توضیح بدی اصلا واسه چی می خوای این کار رو بکنی؟
shahabbasic
چهارشنبه 21 دی 1390, 22:29 عصر
فایل متنی txt یا فایل های ورد؟
نرم افزارهایی هستن که میتونن سندهای آفیس رو کم حجم کنن ولی برای فایل txt فکر نکنم باشه
7Helia 00
شنبه 24 دی 1390, 13:16 عصر
میخوام یه برنامه بنویسم که یه فایل TXT دریافت کنه و حجم اونو کم کنه
واسه درس ذخیره و بازیابی فایل میخوام
xxxxx_xxxxx
شنبه 24 دی 1390, 14:37 عصر
سلام،
الگوریتم هایی برای این کار هست. میتونید با مطالعه اونها، الگوریتم مناسب کارتون رو انتخاب کنید.
مثلاً الگوریتم هافمن (https://fa.wikipedia.org/wiki/%DA%A9%D8%AF%E2%80%8C%DA%AF%D8%B0%D8%A7%D8%B1%DB%8 C_%D9%87%D8%A7%D9%81%D9%85%D9%86)
pcdownload.bloghaa.com
یک شنبه 25 دی 1390, 00:29 صبح
میخوام یه برنامه بنویسم که یه فایل TXT دریافت کنه و حجم اونو کم کنه
واسه درس ذخیره و بازیابی فایل میخوام
روشش را بهت میگم حوصله کد نوشتن ندارم.
30 تا کاراکتر هست که تو فایل های متنی استفاده نمیشه.
حالا فایل متنیت را باز میکنی و دوکاراکتر دوکاراکتر جستجو میکنی.سی تا دوکاراکتری که بیشترین تکرار را دارن را با اون 30 تا کاراکتری که تو فایل های متنی استفاده نمیشن جایگزین میکنی.
و کار تمومه فقط یکم نظم باید بهش بدی. موقع بازگرداندن هم برعکس عمل میکنی.
اون 30 تا دو کاراکتر را هم به ترتیب تو ابتدای فایل قرار میدی تا معلوم بشه کدوما جایگزین شدن.
اگه متوجه نشدی بیشتر توضیح بدم.
H:Shojaei
یک شنبه 25 دی 1390, 01:19 صبح
روشش را بهت میگم حوصله کد نوشتن ندارم.
30 تا کاراکتر هست که تو فایل های متنی استفاده نمیشه.
حالا فایل متنیت را باز میکنی و دوکاراکتر دوکاراکتر جستجو میکنی.سی تا دوکاراکتری که بیشترین تکرار را دارن را با اون 30 تا کاراکتری که تو فایل های متنی استفاده نمیشن جایگزین میکنی.
و کار تمومه فقط یکم نظم باید بهش بدی. موقع بازگرداندن هم برعکس عمل میکنی.
اون 30 تا دو کاراکتر را هم به ترتیب تو ابتدای فایل قرار میدی تا معلوم بشه کدوما جایگزین شدن.
اگه متوجه نشدی بیشتر توضیح بدم.
باسلام آقا من جذب این مطلب شدم میشه یه کم بیشتر توضیح بدید mer30
IamOverlord
یک شنبه 25 دی 1390, 13:04 عصر
باسلام آقا من جذب این مطلب شدم میشه یه کم بیشتر توضیح بدید mer30
اوّلا که یه نکته بگم اونم این که هیچ روش فشرده سازی واقعی وجود نداره!!! یعنی هر وقت دیدی یه روشی حجم یه چیزیو کم می کنه (بدون افت کیفیت یا حذف داده ها) بدون که یه جا دیگه حجم یه چیزی رو زیاد می کنه!
پس قضیه چیه؟! :متعجب: قضیه اینه که ما باید روشمون جوری باشه که چیزایی که نیازی به فشرده سازیشون نیست، حجمشون زیاد بشه نه اونایی که می خوایم فشرده کنیم... خوب انسان ها چه چیزایی رو می خوان فشرده کنن؟ معمولا متونی با کاراکتر های Random که اگه دقت کنی نمی شه فشردشون کرد!
نکته ی دیگه این جاست که ما در متونمون فقط از اعداد و علامت ها و فاصله و حروف الفبا استفاده می کنیم و تعداد زیادی از اون 255 کاراکتر [+ Null] رو استفاده نمی کنیم. پس اونا رو بی کار نمی ذاریم! از اونا هم برای نمایش عبارات پر کاربرد دیگه استفاده می کنیم. این طوری حجم متنمون کم تر می شه. این متفاوت از تئوری اوله که گفتم. تئوری اول فرضش بر اینه که از همه چی استفاده می شه. اما در این روش از یه سری استفاده نمی شه و ما اونا رو برای کاربرد های دیگه در نظر می گیریم.
H:Shojaei
یک شنبه 25 دی 1390, 13:35 عصر
اوّلا که یه نکته بگم اونم این که هیچ روش فشرده سازی واقعی وجود نداره!!! یعنی هر وقت دیدی یه روشی حجم یه چیزیو کم می کنه (بدون افت کیفیت یا حذف داده ها) بدون که یه جا دیگه حجم یه چیزی رو زیاد می کنه!
پس قضیه چیه؟! :متعجب: قضیه اینه که ما باید روشمون جوری باشه که چیزایی که نیازی به فشرده سازیشون نیست، حجمشون زیاد بشه نه اونایی که می خوایم فشرده کنیم... خوب انسان ها چه چیزایی رو می خوان فشرده کنن؟ معمولا متونی با کاراکتر های Random که اگه دقت کنی نمی شه فشردشون کرد!
نکته ی دیگه این جاست که ما در متونمون فقط از اعداد و علامت ها و فاصله و حروف الفبا استفاده می کنیم و تعداد زیادی از اون 255 کاراکتر [+ Null] رو استفاده نمی کنیم. پس اونا رو بی کار نمی ذاریم! از اونا هم برای نمایش عبارات پر کاربرد دیگه استفاده می کنیم. این طوری حجم متنمون کم تر می شه. این متفاوت از تئوری اوله که گفتم. تئوری اول فرضش بر اینه که از همه چی استفاده می شه. اما در این روش از یه سری استفاده نمی شه و ما اونا رو برای کاربرد های دیگه در نظر می گیریم.
mer30 تقریبا متوجه شدم
7Helia 00
یک شنبه 25 دی 1390, 16:39 عصر
بچه ها من خودم یه برنامه نوشتم که با حدف فاصله فایل رو فشرده میکنه
میخوام یه کاری کنم که قبل حذف فاصله اول بیاد اولین کلمه ی فایل رو بریزه تو یه متغیر که LENشو بدست بیارم بزارم اول فایل فشرده شده
اینجوری میتونم با یه تابعی چیزی فایلمو ار فشرده ساری ار بیارم ( البته واسه فایلهایی که ساختار رکورد بندیشون ثابته)
Dim s As String
Private Sub Command1_Click()
cd.Filter = "*.txt|*.txt"
cd.ShowOpen
f = FreeFile
Open cd.FileName For Input As #f
Do While Not EOF(f)
Input #f, s
text1.Text = text1.Text + s
Loop
Close #f
End Sub
Private Sub Command2_Click()
text1.Text = Trim(text1.Text)
text1.Text = Replace(text1.Text, " ", "")
cd.ShowSave
f = FreeFile
Open cd.FileName For Output As #f
s = text1.Text
Print #f, s
Close #f
End Sub
7Helia 00
یک شنبه 25 دی 1390, 16:44 عصر
حالا از اینجا به بعد چیکار باید بکنم بنظرتون
:متفکر:
pcdownload.bloghaa.com
یک شنبه 25 دی 1390, 23:47 عصر
بچه ها من خودم یه برنامه نوشتم که با حدف فاصله فایل رو فشرده میکنه
میخوام یه کاری کنم که قبل حذف فاصله اول بیاد اولین کلمه ی فایل رو بریزه تو یه متغیر که LENشو بدست بیارم بزارم اول فایل فشرده شده
اینجوری میتونم با یه تابعی چیزی فایلمو ار فشرده ساری ار بیارم ( البته واسه فایلهایی که ساختار رکورد بندیشون ثابته)
این که فشرده سازی نیست اضافه سازیه.
یه کاراکتر فاصله حذف میکنی عوضش دو یا 3 کاراکتر برای محل فاصله به فایل اضافه میکنی.
همونی که گفتم راحتترین روش هست.
البته اون روش را ازجایی برنداشتم و خودم بهش رسیدم.(البته ممکنه وجود داشته باشه)
و همین الگوریتم را برای فایل های غیر متنی هم بسط دادم و یه الگوریتم جالب در اومد.
7Helia 00
یک شنبه 02 بهمن 1390, 22:39 عصر
این که فشرده سازی نیست اضافه سازیه.
یه کاراکتر فاصله حذف میکنی عوضش دو یا 3 کاراکتر برای محل فاصله به فایل اضافه میکنی.
همونی که گفتم راحتترین روش هست.
البته اون روش را ازجایی برنداشتم و خودم بهش رسیدم.(البته ممکنه وجود داشته باشه)
و همین الگوریتم را برای فایل های غیر متنی هم بسط دادم و یه الگوریتم جالب در اومد.
شما اگه به جمله داخل پرانتز من دقت میکردین ( البته واسه فایلهایی که ساختار رکورد بندیشون ثابته)
متوجه میشدین که اضافه سازی نیست
من فقط یه عدد اول فایلم اضافه میکنم جای تمام فضاهای خالیه فایل
mahmood744
یک شنبه 02 بهمن 1390, 23:40 عصر
این هم یک سورس توپ
حالش رو ببرین
81287
باز هم بخواهید هست
اما این یکی سورس حرفه ای است :قلب:
mahmood744
دوشنبه 03 بهمن 1390, 00:05 صبح
این هم یک برنامه ساده که خودم نوشتم با روش شما
81289
:چشمک:
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.