Vb - fájlok kezelése
Egy másik régi cikkem a Visual Basic 6.0 szövegfájljaival való együttműködésben.
Ez a cikk arról szól, hogy a Visual Basic segítségével szövegfájlokkal dolgozik.
Fájlleíró
A fájlok kezeléséhez az operációs rendszer I / O csatornákat használ, pl. minden megnyitott fájl saját számmal rendelkezik.
A Visual Basicben van egy FreeFile függvény. amely visszaadja a szabad csatorna számát, amellyel a fájlban dolgozni tud. Ha nincsenek szabad csatornák, akkor hiba lép fel.
RangeNumber -neobyazatelny paraméter, amely lehetővé teszi, hogy meghatározzuk az értéktartomány álló csatornák, ha RangeNumber = 0 (alapértelmezett), majd visszatér a csatorna számot a tartomány 1-255, és ha az 1, akkor a tartomány 256-511.
MyFile = FreeFile "A MyFile változó ingyenes csatornát kap, és most már használható a fájlok kezelésére
A szöveges fájlok kezelése
Leggyakrabban meg kell felelnie a szöveges fájloknak. A szövegfájlok ASCII karakterekből (American Standard Code for Information Interchange) állnak.
Mielőtt elkezdené írni / olvasni az adatokat, a fájlt megnyitni kell, ezt az operátor Open (FileName) segítségével végzi. A [Input | Kimenet | Append] mint # FileNumber. ahol:
Bemenet - nyissa meg a fájlt az olvasáshoz, ha a fájl nem létezik, akkor hiba történik;
Kimenet - az íráshoz, ha a fájl nem létezik, létrejön, és ha a fájl létezik, felülíródik;
Hozzáadás - hozzáadásához, ha a fájl nem létezik, akkor létrejön, és ha létezik a fájl, akkor az adatok a fájl végéhez csatolódnak.
Például, ha egy fájlt az első sorban akar olvasni az S változóba, a kód a következő lesz:
Dim MyFile 'Változó megadása szabad fájlhoz
Dim S mint karakterlánc 'Változó olvasási adatok tárolására
MyFile = FreeFile 'Hozzon létre egy ingyenes csatornát a fájlok kezeléséhez
Nyissa meg ("C: TEST.txt") A bemenetként, mint #MyFile "Nyissa meg a TEST.TXT fájlt az olvasáshoz
Line Input #MyFile, S 'Olvassa el a TEST.TXT fájlból az első sort az S változóba
Close #MyFile 'Zárja be a fájlt
Ha például nem az első, hanem az ötödik sort kell számolni, akkor a kód kicsit más lesz:
Dim MyFile 'Változó megadása szabad fájlhoz
Dim i mint egész szám 'Változó a hurok számára
Dim tS As String 'Változó karakterek olvasásához
Dim S mint karakterlánc 'Változó a végleges adatok tárolásához
MyFile = FreeFile 'Hozzon létre egy ingyenes csatornát a fájlok kezeléséhez
Nyissa meg ("C: TEST.txt") A bemenetként, mint #MyFile "Nyissa meg a TEST.TXT fájlt az olvasáshoz
Line Input #MyFile, tS 'Olvassa el a TEST.TXT fájlt soronként
Ha i => 5 akkor S = tS 'Ha az ötödik sort, akkor az S változóban tároljuk
Close #MyFile 'Zárja be a fájlt
És ha el kell olvasnia az összes adatot a fájlból, akkor:
Dim MyFile 'Változó megadása szabad fájlhoz
Dim S mint karakterlánc 'Változó olvasási adatok tárolására
MyFile = FreeFile 'Hozzon létre egy ingyenes csatornát a fájlok kezeléséhez
Nyissa meg ("C: TEST.txt") A bemenetként, mint #MyFile "Nyissa meg a TEST.TXT fájlt az olvasáshoz
S = Bevitel $ (LOG (1), 1) 'Olvassa el a teljes fájlt az S változóba
Close #MyFile 'Zárja be a fájlt
Fájlba írásához léteznek operátorok Print # FileNumber. Adatok és írási # fájlszám. Adat. Ami megkülönbözteti ezeket az operátorokat, az Ír írja az adatokat idézőjelben, és a Nyomtatás idézőjelek nélkül.
Az alábbiakban a következő kód hoz létre egy új TEST.TXT fájlt a C: meghajtóban, és írjon két sort, az első idézőjelek nélkül, a második idézőjelek:
Dim MyFile 'Változó megadása szabad fájlhoz
MyFile = FreeFile 'Hozzon létre egy ingyenes csatornát a fájlok kezeléséhez
Nyílt ("C: TEST.txt") Kimenetként, mint #MyFile 'Nyissa meg a TEST.TXT fájlt az íráshoz
Nyomtassa ki a #MyFile fájlt, "Ezt a sort írja a Print utasítás, idézőjelek nélkül ..."
Írj #MyFile-t, "Ez a sor az írási utasítás által íródik, idézőjelben van ..."
Close #MyFile 'Zárja be a fájlt
Ez minden. Mint valószínűleg már értette, a Bezárás kifejezés a fájl lezárására szolgál. Ebben az esetben a # FileNumber opcionális.
használhatja ezt a kódot, ha hozzáfűzi a szöveget a fájl végéhez, és nem törli az előzőt, és a megadottat írja?
Ehhez hozzá kell használnia az Append függvényt:
Dim MyFile olyan hosszú ideig
MyFile = FreeFile
Nyissa meg ("C: TEST.txt") A hozzáillesztéshez: #MyFile
Nyomtassa ki #MyFile, "test1"
Írj #MyFile, "test2"
Zárja be a #MyFile fájlt
Dim MyFile olyan hosszú ideig
MyFile = FreeFile
Nyissa meg ("C: TEST.txt") A hozzáillesztéshez: #MyFile
Nyomtassa ki #MyFile, "Hello"; vbNewLine; "Hello"
Zárja be a #MyFile fájlt
ez a kód két sorban írja a "Hello" szót, de ha hosszú kódot ír (sok új bekezdést kell tennie), akkor a szöveg nem csökken! tudom áthelyezni a kódot 2 sorra?
Nyomtassa ki #MyFile, "Hello1"
Nyomtassa ki #MyFile, "Hello2"
Nyomtassa ki #MyFile, "Hello3"
Nyomtassa ki #MyFile, "Hello4"
Nyomtassa ki #MyFile, "Hello5"
Nyomtassa ki #MyFile, "Hello6"
Nyomtassa ki #MyFile, "Hello7"
vagy vegyen egy TextBox-ot, amelynek Multiline tulajdonsága True:
Nyomtasson #MyFile, TextBox1.Text
Hello Alexey!
Nekem van ilyen kérdésem.
A feladat ez.
Ezt a szöveget meg kell osztani a szavakkal.
Például: Üdvözlöm az oldalamon.
A programnak kimenetelnie kell:
jó
Üdvözöljük
a
én
oldalon.
Köszönjük, hogy segít nekünk.
Dim i mint egész
Dim arr ()
arr = Split ("Üdvözli az oldalam.")
I = 0-hoz UBound (arr) - 1
Nyomtatási eredmény (i)
Következő i
teljesen elfelejtettem, a Split funkció még mindig a második paramétert veszi fel, amely az átirányító jelet jelzi, például:
Dim arr ()
arr = Split ("Predved, medve!", "d")
a megadott példa visszaad egy tömböt:
Van egy ilyen kérdésem.
Hozzáadhatom a szöveget a fájl végéhez (például * .exe-ben)
megnyitva egy jegyzetfüzet segítségével a szövegem látható a végén.
Hogyan törölheti a szöveget (a fájl végén), anélkül, hogy megölné a végrehajtható fájlt.
Hányan nem próbálkoztak, az alkalmazás megszakad. (