ورود

نسخه کامل مشاهده نسخه کامل : کار با فایلها



whisper
13-07-2008, 22:36
سلام دوستان
من میخوام یه برنامه بنویسم که بشه توش یه متنی رو وارد کنیم بعد قابلیت save و Edit و Delete داشته باشه
ولی من تاحالا با فایلها کار نکردم اکه میشه یه مثالی یا راهنما بفرماید از کجا شروع کنم!
ممنون میشم

whisper
13-07-2008, 22:37
راستی من با ویبی 2005 کار می کنم

Bracket
14-07-2008, 00:09
چند روش و کلاس برای دسترسی به فایل ها وجود داره میتونید مجموعه کلاس های IO استفاده کنید تو برنامتون از My.computer.fileSystem استفاده کنید که امکانات عالی رو در اختیارتون میزاره البته تو vb فقط این وجود داره , کلاس System.Io رو قبلش به کلاستون وارد کنید . یا میتونید از FileStream هم استفاده کنید البته من اولی رو ترجیح میدم .

_H2_
14-07-2008, 00:40
سلام
چه خبر؟

فکر نکنم با گذاشتن یک TextBox یا RichTextBox مشکلی داشته باشید.

ضمن تایید گفته های جناب Bracket ...
اگر صرق خواندن و نوشتن ساده ی متن باشد، دستورات زیر شاید کافی باشند.
(sdata متغییری از نوع String است)

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

whisper
14-07-2008, 22:13
سلام
خیلی مخلصم
سربازم بعد 6 ماه از پادگان ولم کردن رفتم یه کامپیوتر دیگه خریدم با ویژوال استودیو 2008 اومدم p30world
مرسی میرم امتحان کنم

mespio
15-07-2008, 00:17
حتما سراغ System.IO برید
از کلاس های FileStream, StreamReader. StreamWriter, File و کلی کلاس دیگه که برای کار با فایل ها در MSDN هست استفاده کنید. مثال به اندازه ی کافی تو MSDN هست

whisper
15-07-2008, 08:53
مرسی از همه دوستان به خاطر راهنمایی خوبشون

H2 جان همون که گفتی Edit هم داره من یه replace پیدا کردم ولی فکر کنم یه فایل رو با یه فایل دیگه عوض می کنه !!
اگه ممکنه Edit هم بگید!!

whisper
15-07-2008, 19:12
دوستان یه سوال دیگه!!
من اگه بخوام نام یک سری فایل رو که تو یه پوشه هست رو تو یه ListBox در برنامه در حال اجرا وارد کنم باید چیکار کنم؟

_H2_
16-07-2008, 00:34
سلام


که گفتی Edit هم داره من یه replace پیدا کردم ولی فکر کنم یه فایل رو با یه فایل دیگه عوض می کنه !!
اگه ممکنه Edit هم بگید!!
شاید من درست متوجه نشده باشم، ولی بحث به نظر من خیلی واضح است.
- شما اطلاعات را لود میکنید
- درصورت نیاز چیزی را کم و زیاد و Replace میکنید
- در آخر دیتا را ذخیره میکنید.

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
این اعمال ویرایشی را میتوان توسط فرامین کاربر و با دیالوگ و... صورت بگیرد.




من اگه بخوام نام یک سری فایل رو که تو یه پوشه هست رو تو یه ListBox در برنامه در حال اجرا وارد کنم باید چیکار کنم؟

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
موفق باشید.

whisper
16-07-2008, 12:18
مرسی از راهنمایی خوبتون

whisper
16-07-2008, 19:02
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
میشه راجع به این کد توضیح بدید.:13:

_H2_
16-07-2008, 20:56
سلام
خط اول آرایه ای (لیست) از کلیه فایلهای داخل مسیر C:\Windows به دست می آورد.
این آرایه شامل مسیر کامل فایل است، مثلاً C:\Windows\file.txt ولی عموماً در زمان نمایش لیستی به کاربران برنامه نویس مایل است تا به جای عبارت C:\Windows\file.txt عبارت file.txt نمایش داده شود.

حلقه موجود همین کار را انجام میدهد و تک تک عناصر String داخل آرایه را با کمک تابع GetFileName فقط نامشان را استخراج میکند.

و خط آخر هم که موجب نمایش آرایه جدید میشود.

ضمناً قابل ذکر است که دو کنترلر قدیمی VB6 با نامهای FileListBox و DirListBox هم در دات نت وجود دارد ولی به صورت پیشفرض در آیتم های Toolbar نیستند که در صورت نیاز باید دستی اضافه شان کرد.

whisper
23-07-2008, 18:16
سلام دوستان
آقا یه سوال دیگه
من وقتی یه فایل رو پاک می کنم اسمش هنوز تو لیست باکس من میمونه یا یه فایل ایجاد می کنم هم همین مشکل وجود داره چی کار کنم ؟؟؟
me.refresh و me.listbox.refresh هم استفاده کردم ولی حل نشد فقط وقتی برنامه رو می بندم دوباره باز میکنم درست میشه؟!!

_H2_
24-07-2008, 00:44
سلام
دستور Refresh شما فقط ظاهر نمایشی کنترلرها را بازتولید میکند و ربطی به لیست فایلها ندارد.

در اصل لیستی که شما به دست می اورید یک آرایه معمولی است، کاملاً ایستا!
مثل به دست آوردن حجم یک فایل به صورت یک عدد Integer یا Long !

شما باید آرایه جدید را از اول به دست آورید. یعنی کل دستورات را باید مجدداً اجرا کنید.

whisper
24-07-2008, 20:21
سلام
میشه بیشتر راهنماایم کنید من از یه راه رفتم کار هم کرد ولی فکر میکنم اشتباه باشه......!!!!
من قطعه کدی که توی فرم لود برنامه ام بود رو بعد از ایجاد یک فایل کپی کردم کار هم میکنه ولی اینجوری برنامه سنگین میشه تو حجم بالا که....
آخه هر چی گشتم که یه کاری کنم فرم1 برنامه ام بعد از ایجاد فایل دوباره ایجاد شه نشد.
من فایل جدید رو تو یه فرم دیگه ایجاد می کنم.

_H2_
24-07-2008, 22:34
سلام
شما باید همین کد پست 9 و 11 را در قالب یک sub بنویسید مثلاً به نام FileListRefresh ، و در form_load و هر مکانی که نیاز به بازسازی لیست است، فراخوانی کنید.



آخه هر چی گشتم که یه کاری کنم فرم1 برنامه ام بعد از ایجاد فایل دوباره ایجاد شه نشد.
برای چی؟ چرا؟ یک فراخوانی زیر روال sub ای که گفتم، کافی است.




من فایل جدید رو تو یه فرم دیگه ایجاد می کنم.
همچنین میتوانید به نوعی این زیر روال را در فرم دیگر فراخوانی کنید، یا روش کاملتر آن است که از FileSystemWatcher استفاده کنید تا تغییرات را به شما گزارش دهد و شما لیست را بازتولید کنید.

این روش استاندارد دات نت است، اگر با سرعت به مشکلی بر خوردید، میتوان با دسترسی مستقیم API سرعت را تا حد ممکن افزایش داد ولی فکر نکنم نیازتان شود.

whisper
25-07-2008, 21:39
شما باید همین کد پست 9 و 11 را در قالب یک sub بنویسید مثلاً به نام FileListRefresh ، و در form_load و هر مکانی که نیاز به بازسازی لیست است، فراخوانی کنید.


آقا دستت درد نکنه دنبال همین راه بودم خودشه حله:10: