رفتن به مطلب

اطلاعات(متن،عدد و...) در یک فایل txt


امیرحسین قاسمی

ارسال‌های توصیه شده

سلام:bye:،

احتمالا با دیدن عنوان این تاپیک به یاد فرمت داده جیسون بیفتید که مزیت های بسیاری دارد.:fekr:

اما من در این تاپیک آموزشی، قصد آموزش جیسون رو ندارم بلکه میخواهم آموزش بدم تا چطوری داده هایی مثل متن ها و عدد رو توی یک فایل txt قرار بدیم و همچنین اونارو بخونیم.

  • درک بهتر:

فرض کنید ما چهارتا عدد داریم:1001و1002و1003و1004

اگر از دیتابیس استفاده نکنیم مجبوریم برای ذخیره هر کدام از این اعداد از دستور writestring فایل txt بسازیم و در نتیجه 4 تا فایل txt خواهیم داشت که زیاد جالب نیست. الان ما میخواهیم همه این اعداد را فقط توی یک فایل txt ذخیره کنیم. به این صورت:

1001,1002,1003,1004,

به عنوان مثال ما در این آموزش فرض می کنیم 4 تا ادیت تکست داریم که کاربر بایستی در هر کدام از آن ها عددی وارد کرده و سپس روی دکمه کلیک کند و این اعداد کاربر داخل یک فایل txt ذخیره گردد و بعدا در صورت نیاز این اعداد تجزیه شده و دوباره بصورت جداگانه به نمایش در آیند.

Dim a As string=edittext1.text
Dim b As string=edittext2.text
Dim c As string=edittext3.text
Dim d As string=edittext4.text
Dim total_num As string=a&","&b&","&c&","&d&","

File.WriteString(File.DirInternal,"my_numbers.txt",total_num)

توضیح کدهی بالا:

چهارتا متغیر تعریف کردیم از نوع استرینک تا متن، عدد و هر رشته ای رو که کاربر توی ادیت تکست وارد کرد بصورت موقت ذخیره کنه.:DD:

یک متغیر دیگه به نام total_num تعریف می کنیم تا ورودی های ادیت تکست رو به وسیله"," از هم جدا کنه.

نکته بسیار مهم: باید بعد از آخرین ورودی(در اینجا ورودی edittext4) هم دارای کاراکتر"," باشه.:yes:

و در آخر هم این ورودی ها کنار هم توی یک فایل txt و در حافظه dirinteral برنامه ذخیره میشه.:DD:

 

اما اگر بخواهیم تا این ورودی های کاربر رو در صورت لزوم نمایش بدیم باید اینگونه عمل کنیم:

این sub زیر رو بین دوتا sub دیگه درج کنید.

به کامنت درج شده درون این sub توجه گردد.

Sub checkints(txt As String)
	Dim i1 As String=0
	Dim i2 As String
	For i = 0 To txt.Length
		Try
			If txt.CharAt(i) = "," Then
				i2 = i
		
				If txt.SubString2(i1,i2) <> "" Then
					Dim mystring As String=(txt.SubString2(i1,i2))
					'اینجا کدی رو که میخواهیم پس از تجزیه اجرا بشه می نویسیم مثلا من میخوام برای هر کدام از ورودی هایی که تجزیه میشود یک جعبه پیغام نمایش داده شود.
                    msgbox(mystring,"ورودی تجزیه شده")
				End If
				Try
					i1=i+1
				Catch
				End Try
			End If
		Catch
		End Try
	Next
End Sub

حالا هرجا که میخواهیم میتوانیم با استفاده از کد زیر به تمامی ورودی های کاربر به صورت جداگانه دسترسی داشته باشیم::Laie_60B:

checkints(File.readString(File.DirInternal,"my_numbers.txt"))

نکته:

اگر من قطعه کد بالارو مثلا توی رویداد یک دکمه به کار بگیرم به محض کلیک روی دکمه 4 تا msgbox به ترتیب نمایش داده خواهد شد که هر کدام به ترتیب ورودی هایی را نمایش خواهد داد که کاربر قبلا توی ادیت تکست وارد کرده بود.

اگر شما میخواهید به جای msgbox کار دیگری انجام دهید، مثلا ورودی ها را توی یک لیبل بچینیدیا... باید توی sub که بالا درج کردم پایین اون کامنت دستور مدنظر رو بنویسید.

 

همچنین شما میتوانید هر تعداد ورودی را بین "," قرار دهید و به صورت دلخواهی می باشد و ما در اینجا 4 ورودی را مثال زدیم.

 

موفق و کامروا باشید:53:

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...