سلام دوستان
من میخوام یه برنامه بنویسم که بشه توش یه متنی رو وارد کنیم بعد قابلیت save و Edit و Delete داشته باشه
ولی من تاحالا با فایلها کار نکردم اکه میشه یه مثالی یا راهنما بفرماید از کجا شروع کنم!
ممنون میشم
Printable View
سلام دوستان
من میخوام یه برنامه بنویسم که بشه توش یه متنی رو وارد کنیم بعد قابلیت save و Edit و Delete داشته باشه
ولی من تاحالا با فایلها کار نکردم اکه میشه یه مثالی یا راهنما بفرماید از کجا شروع کنم!
ممنون میشم
راستی من با ویبی 2005 کار می کنم
چند روش و کلاس برای دسترسی به فایل ها وجود داره میتونید مجموعه کلاس های IO استفاده کنید تو برنامتون از My.computer.fileSystem استفاده کنید که امکانات عالی رو در اختیارتون میزاره البته تو vb فقط این وجود داره , کلاس System.Io رو قبلش به کلاستون وارد کنید . یا میتونید از FileStream هم استفاده کنید البته من اولی رو ترجیح میدم .
سلام
چه خبر؟
فکر نکنم با گذاشتن یک TextBox یا RichTextBox مشکلی داشته باشید.
ضمن تایید گفته های جناب Bracket ...
اگر صرق خواندن و نوشتن ساده ی متن باشد، دستورات زیر شاید کافی باشند.
(sdata متغییری از نوع String است)
کد:'Save...
System.IO.File.WriteAllText("C:\file.txt", sdata, System.Text.Encoding.UTF8)
'Load...
sdata = System.IO.File.ReadAllText("C:\file.txt", System.Text.Encoding.UTF8)
سلام
خیلی مخلصم
سربازم بعد 6 ماه از پادگان ولم کردن رفتم یه کامپیوتر دیگه خریدم با ویژوال استودیو 2008 اومدم p30world
مرسی میرم امتحان کنم
حتما سراغ System.IO برید
از کلاس های FileStream, StreamReader. StreamWriter, File و کلی کلاس دیگه که برای کار با فایل ها در MSDN هست استفاده کنید. مثال به اندازه ی کافی تو MSDN هست
مرسی از همه دوستان به خاطر راهنمایی خوبشون
H2 جان همون که گفتی Edit هم داره من یه replace پیدا کردم ولی فکر کنم یه فایل رو با یه فایل دیگه عوض می کنه !!
اگه ممکنه Edit هم بگید!!
دوستان یه سوال دیگه!!
من اگه بخوام نام یک سری فایل رو که تو یه پوشه هست رو تو یه ListBox در برنامه در حال اجرا وارد کنم باید چیکار کنم؟
سلام
شاید من درست متوجه نشده باشم، ولی بحث به نظر من خیلی واضح است.نقل قول:
- شما اطلاعات را لود میکنید
- درصورت نیاز چیزی را کم و زیاد و Replace میکنید
- در آخر دیتا را ذخیره میکنید.
این اعمال ویرایشی را میتوان توسط فرامین کاربر و با دیالوگ و... صورت بگیرد.کد:Dim data As String
'Load...
data = System.IO.File.ReadAllText("C:\File.txt", System.Text.Encoding.UTF8)
'Edit...
data &= "new line."
data = data.Replace("Ali", "Reza")
'...
'Save...
System.IO.File.WriteAllText("C:\file.txt", data, System.Text.Encoding.UTF8)
نقل قول:موفق باشید.کد:Me.ComboBox1.DataSource = System.IO.Directory.GetFiles("C:\Windows")
یا
Dim arr() As String = System.IO.Directory.GetFiles("C:\Windows")
For index As Integer = 0 To arr.Length - 1
arr(index) = System.IO.Path.GetFileName(arr(index))
Next
Me.ComboBox1.DataSource = arr
مرسی از راهنمایی خوبتون
میشه راجع به این کد توضیح بدید.:13:کد:Dim arr() As String = System.IO.Directory.GetFiles("C:\Windows")
For index As Integer = 0 To arr.Length - 1
arr(index) = System.IO.Path.GetFileName(arr(index))
Next
Me.ComboBox1.DataSource = arr
سلام
خط اول آرایه ای (لیست) از کلیه فایلهای داخل مسیر C:\Windows به دست می آورد.
این آرایه شامل مسیر کامل فایل است، مثلاً C:\Windows\file.txt ولی عموماً در زمان نمایش لیستی به کاربران برنامه نویس مایل است تا به جای عبارت C:\Windows\file.txt عبارت file.txt نمایش داده شود.
حلقه موجود همین کار را انجام میدهد و تک تک عناصر String داخل آرایه را با کمک تابع GetFileName فقط نامشان را استخراج میکند.
و خط آخر هم که موجب نمایش آرایه جدید میشود.
ضمناً قابل ذکر است که دو کنترلر قدیمی VB6 با نامهای FileListBox و DirListBox هم در دات نت وجود دارد ولی به صورت پیشفرض در آیتم های Toolbar نیستند که در صورت نیاز باید دستی اضافه شان کرد.
سلام دوستان
آقا یه سوال دیگه
من وقتی یه فایل رو پاک می کنم اسمش هنوز تو لیست باکس من میمونه یا یه فایل ایجاد می کنم هم همین مشکل وجود داره چی کار کنم ؟؟؟
me.refresh و me.listbox.refresh هم استفاده کردم ولی حل نشد فقط وقتی برنامه رو می بندم دوباره باز میکنم درست میشه؟!!
سلام
دستور Refresh شما فقط ظاهر نمایشی کنترلرها را بازتولید میکند و ربطی به لیست فایلها ندارد.
در اصل لیستی که شما به دست می اورید یک آرایه معمولی است، کاملاً ایستا!
مثل به دست آوردن حجم یک فایل به صورت یک عدد Integer یا Long !
شما باید آرایه جدید را از اول به دست آورید. یعنی کل دستورات را باید مجدداً اجرا کنید.
سلام
میشه بیشتر راهنماایم کنید من از یه راه رفتم کار هم کرد ولی فکر میکنم اشتباه باشه......!!!!
من قطعه کدی که توی فرم لود برنامه ام بود رو بعد از ایجاد یک فایل کپی کردم کار هم میکنه ولی اینجوری برنامه سنگین میشه تو حجم بالا که....
آخه هر چی گشتم که یه کاری کنم فرم1 برنامه ام بعد از ایجاد فایل دوباره ایجاد شه نشد.
من فایل جدید رو تو یه فرم دیگه ایجاد می کنم.
سلام
شما باید همین کد پست 9 و 11 را در قالب یک sub بنویسید مثلاً به نام FileListRefresh ، و در form_load و هر مکانی که نیاز به بازسازی لیست است، فراخوانی کنید.
برای چی؟ چرا؟ یک فراخوانی زیر روال sub ای که گفتم، کافی است.نقل قول:
همچنین میتوانید به نوعی این زیر روال را در فرم دیگر فراخوانی کنید، یا روش کاملتر آن است که از FileSystemWatcher استفاده کنید تا تغییرات را به شما گزارش دهد و شما لیست را بازتولید کنید.نقل قول:
این روش استاندارد دات نت است، اگر با سرعت به مشکلی بر خوردید، میتوان با دسترسی مستقیم API سرعت را تا حد ممکن افزایش داد ولی فکر نکنم نیازتان شود.
آقا دستت درد نکنه دنبال همین راه بودم خودشه حله:10:نقل قول: