PDA

View Full Version : ساخت فایلی جدید با قابلیت پشتیبانی از راست چین، وست چین و ....



Restlesa
جمعه 09 اردیبهشت 1390, 12:13 عصر
سلام بر همگی دوستان عزیز
من می خوام یه فایلی جدید به نام medoc بسازم که بتونم قابلیت های ویرایشی رو اعمال کنم
دقیقا مثل پسوند Rtf ویا Doc که وقتی عمل ویرایشی روش انجام میدیم (مثلا وست چین کردن) هنگامی که فایل رو ذخیره کرده و سپس باز می کنیم متن مون وسط چین هستش
حال من چه طوری می تونم این روش رو روی پسوندم پیاده سازی کنم ؟؟؟

knight-rak
جمعه 09 اردیبهشت 1390, 12:22 عصر
سلام
برای این کار چند روش به ذهنم میرسه
1 اینکه شما بیاید و کنار هر کدوم از فایل هاتون یه فایل دیگه ذخیره کنید که تمامی اطلاعات اون رو نگهداری کنه مثل چپ چین و رنگ و .... قبلا یه بار برای یه برنامه که محدودیت انتخاب داشتیم از این روش باید استفاده میکردیم که از فایل های رندوم استفاده کردیم و خلاصه یکم زیادی شلوغ بازی بود و درست شد ولی من زیاد خوشم نیومد

2 یه فایل رندوم بساز بعدش با یه entity که توش از متغیر variant استفاده کردی برای یه فیلد خاص برای ذخیره سازی متن مورد نظر و از باقی فیلد ها هم برای ذخیره مشخصات استفاده کن اینجوری همه اطلاعات کنار هم توی یه فایل ذخیره میشه

حتما راه های منطقی تر و درست تری هم وجود داره ولی من چیزی نمیدونم ....

موفق باشید ....

Restlesa
جمعه 09 اردیبهشت 1390, 19:41 عصر
مرسي دوست عزيز
ميشه درباره ي راه كار دوم بيشتر توضيح بدي ؟؟؟
نحوه ي عمل كرد برنامه ي Word چه جوريه ؟؟؟؟

vbhamed
جمعه 09 اردیبهشت 1390, 20:11 عصر
سلام

خب چرا با همون فايلهاي RTF كار نمي كنيد
كنترل Microsoft RichTextBox اين كار رو انجام مي ده، خودش هم قابليت Save, Load داره

Restlesa
شنبه 10 اردیبهشت 1390, 06:31 صبح
من دوست دارم این عملیات رو رویه یه پسوند جدید اعمال کنم
لطفا راهنماییم کنید

knight-rak
شنبه 10 اردیبهشت 1390, 17:41 عصر
سلام
ببین دوست عزیز شما در حالت عادی برای فایل های تصادفی میاید و یه entity تعریف میکنید که مثل دیتابیس میشه ( درواقع نوع اولیه دیتابیس هستش / همون سیستم فایلینگ )
خوب مثلا من اینو تعریف میکنم :

private type mytextbase
B_rtl as variant
B_color as variant
B_font as variant
'//////////////////////
B_text as variant
'/////////////////////
end type

خوب حالا میام یه فایل رندوم باز میکنم و توش از این انتیتی استفاده میکنم

dim x as mytextbase
open "c:\testtext.myformat" for random as #1 len=lenb(x)
.
.حالا اینجا میام و مشخصات مثل فونت و راستچین و ...... رو توی متغیر خودشون سیو میکنم
آخرشم که مهمترینش هست همون متن مورد نظر هست که میام اونم توی متغیر خودش میزارم تمام اینا با ساختار ایجاد شده قبلی توی یه فایل قرار میگیرن
.
.
close


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

موفق باشید ....

vbhamed
یک شنبه 11 اردیبهشت 1390, 09:46 صبح
سلام

زياد دنبال دردسر براي خودتون نباشيد، بهتره به فكر كارهاي اصلي برنامتون باشيد

شما مي تونيد از همون فايلهاي RTF استفاده كنيد، اما پسوند فايلهاتون رو عوض كنيد و براي اطمينان بيشتر از اينكه كسي ديگه به اونها دسترسي نداره موقع ذخيره اونها را انكريپت كنيد

براي انكريپت كردن هم الگوريتمهاي زيادي وجود داره، راحت ترين و امن ترينش هم اينه كه فايل رو زيپ كنيد و روي زيپش پسورد بزاريد و يك پسوند دلخواه غير از zip هم بزاريد براش، اينطوري هم فايلتون فشرده ميشه، هم كسي نمي تونه بازش كنه

براي Zip كردن هم اكتيوايكس هاي مختلفي وجود داره از جمله XceedZip كه هم مي‌تونه فايل رو فشرده كنه هم براش پسورد بزاره (همون انكريپت كردن)
اينم سايتش
http://www.xceed.com/Zip_ActiveX_Intro.html

نسخه ك.ر ك هم پيدا ميشه
مي تونيد بقيه اطلاعات رو هم از ali190 از كاربران همين سايت بگيريد !

Restlesa
یک شنبه 11 اردیبهشت 1390, 12:00 عصر
ممنون از همه ی دوستان عزیز
جناب Vbhamed میشه خودتون یه توضضیحی در مورد این اکتیوایکس بدین ممنونتون میشم

ali190
یک شنبه 11 اردیبهشت 1390, 20:05 عصر
سلام
ابتدا تشکر میکنم از جناب vbhamed عزیز به خاطر توضیحات کاملشون
جناب Restlesa عزیز ، در مورد زیپ شدن فایل بهمراه پسورد در این تایپیک (http://barnamenevis.org/showthread.php?276385-خطا-در-zip-کردن-فایل-با-password&highlight=)مفصلاً بحث شده
نمونه هم گذاشتم
منتها کامپوننتی که در اون تایپیک پیوست کردم رجیستر شده نیست
اما نگران نباش ، تو سایت 4shared.com کلمه xceedzip رو سرچ کن ، از بین فایلهای یافت شده یه فایل زیپ وجود داره که با نام XceedZip.rar که حجمش هم 2.416 KB هست (2.5 مگابایت)
لینکش رو بخاطر محدودیت های سایت تو پیغام خصوصی برات ارسال کردم
کافیه اون کامپوننت رو جایگزین مثالهای تایپیک بالا کنی.
یاعلی

Restlesa
دوشنبه 12 اردیبهشت 1390, 21:53 عصر
دوست عزیز بابت فایلی که در اختیارم گذاشتین خیلی ممنونم
تاپیکی که برام معرفی کردین رو مطالعه کردم
تا اون جایی که من دستگیرم شد خصیصه FilesToProcess ابزار XceedZip برای Zip کردن فایل مورد نظر و خصیصه ZipFilename برای Unzip کردن فایل Zip شده هستش
حال سوال من اینه که چه طوری میشه فایل مورد نظر رو هنگام ذخیره کردن در مسیری که توسط CommandDialog بهش میدم Zip و هنگام باز کردن توسط CommanDialog بتونم Unzipکنم ؟؟؟

knight-rak
دوشنبه 12 اردیبهشت 1390, 23:50 عصر
ممنون از دوستان که توضیحات منطقی و کاملی دادن

دوست عزیز شما وقتی بتونید به صورت استرینگ آدرس دهی کنید برای استفاده از کامند دیالوگ کافیه از
cm1.filename
استفاده کنید که آدرس انتخاب شده توسط کامند دیالوگ رو برمیگردونه

موفق باشید ....

vbhamed
سه شنبه 13 اردیبهشت 1390, 06:19 صبح
سلام

در خاصيت ZipFileName نام و مسير فايل Zip رو قرار بديد