Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
1
Állomány kezelés
2
Az állományok háttértárolón vannak Adatokat tartalmaznak
Rekordok ==> Sorok Mezők ==> Adat elemek a sorokon belül
3
A rekordok vége CR, a file vége EOF
Szekvenciális A rekordok vége CR, a file vége EOF A mezők vesszővel vannak elválasztva Változó hossz Sztringek idézőjelek között (a számok nem) Csak sorosan olvasható Minden előző mezőt el kell olvasni az eléréshez
4
Példa "Lynne","Weldon","999 Wide Way","Aiken","SC","29803" <CR>
"Jim","Buck","1 Cow Lane","Aiken","SC","29801" <CR> "Tom","Thumb","PO Box 200","Aiken","SC"," " <EOF>
5
A rekordok azonos hosszúságúak, van hivatkozási számuk
Random A rekordok azonos hosszúságúak, van hivatkozási számuk A mezők fix hosszúak és pozíciójúak A hossznál kisebb adatok szóközökkel kiegészítődnek A nagyobbak csonkolódnak Tetszőleges sorrendben olvasható/írható Táblázatszerűen képzelhető el
6
Példa
7
Kezeléseik Open file Read, Write Close file
8
Általában a Form_Load-ban
Open Statement Általában a Form_Load-ban Open „elérésiút_állománynév" For {Input|Output|Append|Random} As #FileSorszám [Len=hossz] FileSorszám = 1 to 511, hossz Max = 32,767 A hosszú elérési út helyett helyezzük az aktuális projekt alkönyvtárba az állományunkat, majd használjuk a App.Path kifejezést.
9
Input Output Append Random Open For olvasásra
Írásra, BOF-t helyez el, majd felülír Append Az EOF-tól kezd írni Random Közvetlen elérésű állományokat olvas/ír
10
Sequential Random Open "C:\VB6\myfile.txt " For Input As #6
Példák Sequential Open "C:\VB6\myfile.txt " For Input As #6 Open "A:\myfile.txt " For Output As #1 Open App.Path & “\myfile.txt " For Append As #2 Random Open "A:\myfile.txt " For Random As #3 Len=60
11
Probléma: Az Open minősített teljes elérést kíván Vagy
File elérési útja Probléma: Az Open minősített teljes elérést kíván Vagy Minden állomány a projekt alkönyvtárban App.Path Dim strPath as String strPath=App.Path & "\Filename.extension" Open strPath for Input as #4 Common Dialog használata ShowOpen metódussal
12
With dlgCommon Azaz.. Dim strFileName as String .DialogTitle = "Open"
.CancelError = False .Filter = "All Files (*.*)|*.*" .ShowOpen If Len(.FileName) = 0 Then Exit Sub End If strFileName=.FileName End With Open strFileName for Input as #1
13
Fájl lezárása Általános helyei: Close [#FileNumber]
A Close utasítás Fájl lezárása Általános helyei: Form_Unload, mnuFileSave, mnuFileSaveAs, mnuFileExit Close [#FileNumber] Ha a FileNumber hiányzik, akkor minden nyitott fájl (Az END is lezár, de nem helyes)
14
Példák Close #6 Close #1, #3 Close
15
FreeFile Függvénnyel A rendszer adja Előnyei
FileNumber FreeFile Függvénnyel A rendszer adja Előnyei Nincs összeakadás más alkalmazásokkal Nem kell nyilvántartani Dim intFileNumber as Integer intFileNumber=FreeFile Open "Names.txt" For Output As #intFileNumber
16
Szekvenciális állományok
17
Input utasítással olvasunk
Olvasás Open for Input Input utasítással olvasunk
18
Általában a Form_Load-ban Do Until EOF
Input Általában a Form_Load-ban Do Until EOF Input #FileNumber, List of variables Input #2, strCourseNum, strClass, intHours
19
Input Dim strVideoTitle as String Do Until EOF(3) Input #3, strVideoTitle cboVideoTitle.AddItem strVideoTitle Loop Figyelem, számegyezés!!
20
Open For Output!! Általános helyei: Close-zal zárul
Write Open For Output!! Általános helyei: mnuFileSave, mnuFileClose , Form_QueryUnload Close-zal zárul
21
Példa Write #FileNumber, List of variable or fields
Write #1, txtFirstName, txtLastName, txtStreet, txtCity, txtxState, txtPhone Write #2, strCourseNum, strClass, intHours
22
For…. Next Write Dim intIndex as Integer
Open "A:\videos.txt" For Output As #1 For intIndex=0 to cboVideoTitle.ListCount-1 Write #1, cboVideoTitle.ListIndex Next intIndex Close #1
23
Kill utasítás Nem lehet nyitva Törlés Kill „elérésiút"
Kill "A:\Names.txt"
24
Name utasítás Nem lehet nyitva Átnevezés
ReName „régi_elérés" As „Újelérés" ReName "A:\Names.txt" As "A:\People.txt"
25
Vátoztatások mentése Open eredeti for Input Open temp file for Output
Átírás Vátoztatások mentése Open eredeti for Input Open temp file for Output Beolvasás pl. textboxba az eredetiből Kiírás textboxból a temp-be Close Kill eredeti Name temp
26
Open név for Output Ha nincs, létrehozza Kiírás az áll-ba Close
Új létrehozása Open név for Output Ha nincs, létrehozza Kiírás az áll-ba Close
27
Közvetlen elérésű állományok
28
A rekordok azonos hosszúságúak, van hivatkozási számuk
Random A rekordok azonos hosszúságúak, van hivatkozási számuk A mezők fix hosszúak és pozíciójúak A hossznál kisebb adatok szóközökkel kiegészítődnek A nagyobbak csonkolódnak Tetszőleges sorrendben olvasható/írható Táblázatszerűen képzelhető el
29
Példa
30
Rekord struktúra definiálása
Még mielőtt I/O történik Type/End Type Helye: General Declarations Fix hosszúságú sztringeket alkalmazzunk!! Pl: Dim strFName as String * 20
31
Dim mudtPersonRecord As Person
Type/End Type Private Type Person intEmpNum As Integer strFName As String * 20 strLName As String * 30 strPhone As String * 12 curRate As Currency End Type Dim mudtPersonRecord As Person Open App.Path & "\Names.dat" For Random as #1 Len=Len (mudtPersonRecord) Lehetőség: mudt prefix a User Defined Type-hoz….
32
Open után lehet írni, olvasni is
Ha nem létezőt nyitunk, létrehozza üresen Egyszerre egy rekordot kezelhetünk
33
Open állomány for Random Get utasítás
Olvasás Open állomány for Random Get utasítás
34
Általában a Form_Load-ban Do Until
Get Általában a Form_Load-ban Do Until Get #FileNumber, [RecordNumber], RecordName Get #2, 4, mudtPersonRecord Get #2, intRecordNumber, mudtPersonRecord Ha a RecordNumber hiányzik, a következőt olvassuk
35
Nyitva kell lennie "For Random" Általában:
Put Random file írására Nyitva kell lennie "For Random" Általában: mnuFileSave, mnuFileClose vagy Form_QueryUnload Close követi
36
Put #FileNumber, [RecordNumber], RecordName
Put #2, 4, mudtPersonRecord Put #2, intRecordNumber, mudtPersonRecord Ha RecordNumber hiányzik, a következőt olvassuk
37
Mezőkhöz való hozzáférés
Get és Put „pont jelölés”, segítség a User Defined Type megnézése
38
Get Put: Példa Get #2, 1, mudtPersonRecord
txtLName.Text=mudtPersonRecord.strLName Put: mudtPersonRecord.strPhone=txtPhone.Text Put #2, 1, mudtPersonRecord
39
Length of File: a Fájl mérete byte-ban EOF helyett lehet használni
LOF Függvény Length of File: a Fájl mérete byte-ban EOF helyett lehet használni Maxrekszám=LOF/rekméret LOF(FileNumber) LOF(3) intNumRecords=LOF(3)/Len(mudtPersonRecord)
40
A fájlmutató értékét adja visza
Seek Függvény A fájlmutató értékét adja visza Seek(FileNumber) intNextRecord=Seek(3)
41
Kitörli az üres helyeket egy sztringből Trim ==> mindkét végéről
Trim Függvény Kitörli az üres helyeket egy sztringből Trim ==> mindkét végéről LTrim==> left RTrim ==> right Trim(String) LTrim(String) RTrim(String) txtLName.Text=RTrim(mudtPersonRecord.strLName)
42
Sub GetRecord(lngRecNum as Long) Get #1, lngRecNum, mudtPersonRecord
Példa Sub GetRecord(lngRecNum as Long) Get #1, lngRecNum, mudtPersonRecord With mudtPhoneRecord txtEmpNum.Text = .intEmpNum txtFName.Text = RTrim(.strFName) txtLName.Text = Rtrim(.strLName) txtPhone.Text = Rtrim(.strPhone) txtRate.Text = .curRate End With End Sub
43
Sub PutRecord(lngRecNum as Long) With mudtPhoneRecord
Példa Sub PutRecord(lngRecNum as Long) With mudtPhoneRecord .intEmpNum=Val(txtEmpNum.Text) .strFName = txtFName.Text .strLName = txtLName.Text .strPhone = txtPhone.Text .curRate = Val(txtRate.Text) End With Put #1, lngRecNum, mudtPersonRecord End Sub
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.