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

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

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

درک بهتر:

فرض کنید ما چهارتا عدد داریم:۱۰۰۱و۱۰۰۲و۱۰۰۳و۱۰۰۴

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

 

۱۰۰۱,۱۰۰۲,۱۰۰۳,۱۰۰۴,

به عنوان مثال ما در این آموزش فرض می کنیم ۴ تا ادیت تکست داریم که کاربر بایستی در هر کدام از آن ها عددی وارد کرده و سپس روی دکمه کلیک کند و این اعداد کاربر داخل یک فایل 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)

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

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

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

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

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

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

این 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

 

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

 

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

 

نکته:

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

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

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

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

دیدگاهتان را بنویسید