PDA

View Full Version : ذخیره کردن متن



roo.row
یک شنبه 24 خرداد 1394, 22:31 عصر
با سلام
من در حال انجام پروژه ای هستم و در زمینه ای به مشکل برخوردم
من می خواهم متن موجود در یک تکس باکس را با هر فرمت و اسمی که کاربر بخواهد ذخیره کنم
به این صورت که یک دکمه در فرم وجود داشته باشد که با کلیک بر روی آن پنجره ی سیو کردن باز شود
و متن موجود در Text1 را ذخیره کند
با تشکر

pbm_soy
دوشنبه 25 خرداد 1394, 03:24 صبح
هدفت را دقیقتر توضیح میدادی تا دوستان بهتر بتونند کمکت کنند
ولی برای جواب سوال یک فایل متنی باز میکنی و متن تکست باکس را در آن ذخیره میکنی مثلا با روش زیر


open "a.txt" for output as #1
write #1,textbox1.text
close #1

توجه داشته باشید که قبل از نام فایل میتوانی مسیر را هم قید کنی و مورد بعد میتوانی بجای دستور write از دستور print هم استفاده کنی که تفاوتش را وقتی فایل را در نوت پد باز کردی خواهی دید و همینطور میتوانی بجای عبارت output از append استفاده کنی که باعث میشه متن به انتهای فایل موجود اضافه بشه!
* مورد بعدی برای ساخت فایل و ذخیره متن در آن میتوانی از دستورات stream و FSO هم استفاده کنی من صرفا از دستوراتی حضورذهن داشتم استفاده کردم
* من منظورت را از فرمت نفهمیدم برای همین متن تکست باکس را بصورت یک متن ساده ذخیره کردم

در مورد سوال دوم هم یک common dialog کنترل بروی فرم میگذاری و آنرا برای گرفتن مسیر ذخیره سازی باز میکنی یعنی از متد showopenاستفاده میکنی و بعد از خصوصیت filename ؟آن استفاده میکنی برای گرفتن نام و مسیر فایل که آنرا در کد بالا فقط بچای نام فایل ("a..txt") استفاده میکنی

roo.row
دوشنبه 25 خرداد 1394, 21:57 عصر
با تشکر از شما و با سلام
اگر ممکن است جوابم را کامل تر بدهید چون کمی گنگ بود(برای من)
متن کامل سوال :
با توجه به فرمی که در آن یک textbox و یک command قرار دارد
چگونه می توان برنامه ای رانوشت که در آن زمانی که کاربر بر روی
کامند کلیک کرد پنجره ی Save و یا save as باز شود و کاربر در مسیر دلخواه خودش
و با فرمت و نام دلخواه خودش ذخیره کند >>>> مانند همان پنجره ای که در برنامه ورد
با نام Save قرار دارد و باز می شود
البته نمونه هایی دیدم که در آنها این اتفاق بیفتد ولی کامل نبود
شما فکر کنید که برنامه می خواهد متن داخل تکس باکس رو در قالب (یک فرمت مانند نوت پد) هر جا که کاربر خواست ذخیره کنه
با تشکر

pbm_soy
سه شنبه 26 خرداد 1394, 01:56 صبح
در اینصورت بنظرم در پست قبلیم کامل جواب دادم!

فقط برای روشن شدن قضیه دوباره میگم اون سه خطی که نوشتم کار ذخیره کردن متن تکست باکس را در فایلی بنام a.txt انجام میدهد! (توضیحات ادامه آنرا دقیقتر مطالعه کنید)

حالا اگر قبل از ذخیره سازی میخواهید از کاربر محل و نام فایل را درخواست کنید ابتدا بروی فرم کنترل Common dialog را بیاندازید
این کنترل بطور پیش فرض در جعبه ابزار موجود نیست باید آنرا ابتدا از منوی Components به جعبه ابزار اضافه کنید برای اینکار از منوی Project گزینه Components را انتخاب کنید از لیست هم Microsoft Common Dialog Control 6.0 را تیک زده و اوکی کنید در اینصورت به جعبه ابزار شما کنترل Common dialog اضافه میشود حالا آنرا بروی فرم قرار دهید (ابن کنترل در زمان اجرا بروی فرم دیده نمیشود) با فرض اینکه کنترلی که بروی فرم انداختید نام CommonDialog1 را دارد کد زیر را در رخداد کلیک باتن قرار دهید


CommonDialog1.ShowSave

If CommonDialog1.FileName <> "" Then

open CommonDialog1.FileName for output as #1
write #1,textbox1.text
close #1

End If


در ابتدا به دیالوگ کنترل گفته شد که پنجره استاندارد Save را نمایش دهد و سپس بررسی کردم که آیا کاربر نام و مسیری برای فایل انتخاب کرده (نوشته) یا خیر؟ در صورتی که نام فایلی را وارد کرده باشد عملیات ذخیره سازی انجام میشود (توجه کنید که در محل نام فایل از نام فایلی که دیالوگ کنترل میدهد استفاده شده است)

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

pbm_soy
سه شنبه 26 خرداد 1394, 02:07 صبح
بازم میگم توضیحات پست اولم را دوباره بخوانید

در مورد دیالوگ کنترل هم مطلب تو اینترنت زیاد است حتی تو همین سایت!

ولی یک توضیح کوتاه در مورد آن لازم میدونم بگم
دیالوگ کنترل پنجره های محاوره ای استاندارد ویندوز را نمایش میدهد مانند open , save , print , font , color برای نمایش هرکدام از متد مربوط به آن استفاده میکنید مثلا برای نمایش پنجره رنگها از متد .showcolor استفاده میکنید و به همین ترتیب بقیه موارد

نکته دیگر این است که نمایش پنجره به خودی خود کاری انجام نمیدهد! پنجره صرفا برای انتخاب یا وارد کردن داده ای از طرف کاربر است حالا ما باید از آن داده وارد شده استفاده کنیم و کار دلخواه خودمان را براساس آن داده وارد شده انجام دهیم مانند مثال بالا مشاهده میکنید که از نام فایل که کاربر در پنجره وارد کرده استفاده کردیم و متن را در یک فایل با آن نام ذخیره کردیم حالا اگر پنجره انتخاب رنگ بود رنگی کاربر انتخاب کرده را دیالوگ کنترل به شما میدهد حالا آن رنگ را برای رنگ زدن موردی بروی فرم استفاده میکنید

roo.row
سه شنبه 26 خرداد 1394, 19:33 عصر
با سلام و با تشکر فراوان خدمت شما
کد به صورت درستی عمل میکند و کاربر می تواند در آن آدرس و نام فایل را انتخاب کند اما نمی تواند با فرمتی خواصی قرار دهد برای مثال اگر بخواهم
فایلی را با نام zzz ذخیره کنم بدون پسوند ذخیره می شود می خواستم بدونم چجوری می تونم براش انتخاب پسوند توسط کاربر بزارم مثلا فایل بشه zzz.exe / zzz.txt و ...
با تشکر

pbm_soy
چهارشنبه 27 خرداد 1394, 02:41 صبح
منظورتون از فرمت پسوند فایل بود!
اولا دیالوگ کنترل خصوصیتی دارد که پسوند پیش فرض برای فایل اضافه میکند (البته در صورتی که کاربر فقط نام فایل را نوشته باشد و پسوند را قید نکرده باشد)
برای ذخیره کردن با پسوند دلخواه هم کاربر پسوند موردنظرش را بعداز نام فایل باید وارد کند یعنی نام فایل را بطور کامل باید تایپ کند مثلا zzz.exe

roo.row
چهارشنبه 27 خرداد 1394, 15:32 عصر
با سلام و با تشکر
یه راه حل بهتر یافتم
m = InputBox("First of all write a format as .txt & .hex & .frm", ("format"), (".txt"))

If m = "" Then
MsgBox ("you dont choose a format please write one")
Exit Sub
End If

CDC2.ShowSave
CDC2.FileName = CDC2.FileName + m
Open CDC2.FileName For Output As #1
Write #1, Text1.Text
Close #1