هر فايلي كه باز ميشه براي پردازش اون دو حالت وجود داره:
- يا براي خوندن اطلاعاتش باز شده
- يا براي نوشتن اطلاعات جديد باز شده
اطلاعات = ركورد
خواندن فايل
براي خواندن فايل بايد حالت دسترسي به فايل Input باشه تا بشه اطلاعاتش رو خوند. دستوري كه ميشه باهاش اطلاعاتش رو خوند دستور Line Input هستش.
شكل كلي اين دستور:
Line Input #FileNumber , InputString
Line Input: كلمه كليدي جهت خواندن فايل
FileNumbe: شماره فايل
InputString: رشته اي هستش كه قراره خونده بشه.
چون فايل ما ترتيبي هستش نميشه به يك ركورد خاصي اشاره كرد اگر فايل 500 ركورد داشت و ما بخواهيم به ركورد 239 بريم بايد 500 ركورد رو خوند پس براي خوندن اطلاعات يك ركورد تمامي ركورد ها بايد خونده بشن. عيب اين نوع فايل سنگيني و كندي اون هستش كه علتش همين هستش.
حالا من مي خوام اطلاعات فايل Student.txt رو بخونم و در يه متغير به اسم strInput قرار بدم و سپس در يك TextBox اونا رو بريزم:
Dim strInput As String
Dim FileNumber As Integer
FileNumber = FreeFile
Open "C:\Student.txt" For Input As #FileNumber
Do While Not EOF(FileNumber)
Line Input #FileNumber, strInput
Loop
Close #FileNumber
PassageTxt.Text = strInput
نوشتن فايل
براي نوشتن فايل دو راه وجود داره:
- استفاده از دستور Print
- استفاده از دستور Write
دستور Print:
از دستور Print براي نوشتن تويه فايل ترتبي استفاده ميشه.
شكل كلي دستور:
Print #FileNumber , OutputString
Print: كلمه كليدي جهت نوشتن در فايل ترتيبي
FileNumber: شماره فايل ترتيبي
OutputString: رشته يا عبارتي كه قرار نوشته بشه در فايل ترتيبي
حالا من مي خوام اطلاعات يه TextBox رو در يه متغير به اسم strOutput قرار بدم و سپس در فايل Student.txt اونا رو بريزم:
Dim strOutput As String
Dim FileNumber As Integer
FileNumber = FreeFile
Open "C:\Student.txt" For Output As #FileNumber
strOutput = PassageTxt.Text
Print #FileNumber, strOutput
Close #FileNumber
دستور Write:
از دستور Write هم ميشه براي نوشتن اطلاعات در يك فايل متني هم استفاده كرد و دقيقاً مثل دستور Print هست با يكسري تفاوت كه فيلدها در دستور Write با كاما (,) از هم جدا ميشن و درون دوتا دبل كوتيشن (" ") و مقادير تاريخ و منطقي درون دوتا علامت شارپ (#) قرار ميگيرن.
String Value : " Barnamenevis.ORG "
DateValue : #10/3/1387#
Boolean : #True# OR #False#
شكل كلي دستور:
Write #FileNumber , OutputString
Write: كلمه كليدي جهت نوشتن در فايل ترتيب
FileNumber: شماره فايل ترتيبي
OutputString: ليست خروجي ها كه قراره در فايل ترتيبي نوشته بشن.