Fájlok Visual Basic (forrás) - szoftverek

Visual Basic .NET

Print #fFile „szöveg”

PrintLine (fFile "szöveg")

Írja a string egy fájlt, és hozzáfűz egy újsor karaktert.

Nyomtatás #fFile „Néhány szöveg”;

Print (fFile "szöveg")

Ír egy stringet a fájlt.

Írja #fFile „szöveg”

WriteLine nevû (fFile "szöveg")

Ír egy stringet a fájl, hozzátéve, idézőjelben elején és végén a vonal, és az új sor karakter.

Írja #fFile „Néhány szöveg”;

Write (fFile "szöveg")

Ír egy stringet a fájl, hozzátéve, idézőjelben elején és végén a vonal

Upgrade Wizard automatikusan megváltoztatja a csapat, és nem kell, hogy csináld magad, de meg kell emlékezni arról a lehetőséget arra, hogy a „kézi” kód migráció.

Itt van két azonos kódrészlet VB6 és VB.NET.

Nincs probléma a szöveges fájlokat nem merül fel, mert VB.NET funkciók lehetővé teszik, hogy a húrok írásakor egy fájlba, valamint VB6. „Rendkívül furcsa, hogy a srácok a Microsoft nem azonnal ki itt a” víz alatti „kövek!” - mondhatnánk. Igen, valóban törődnek veled.

Bináris fájlok és fájlokat véletlen elérésű

Még meglepőbb, hogy te, valószínűleg okoz az a tény, hogy a bináris fájlok a helyzet ugyanolyan szöveggel. Aha! Azt már sikerült örvendezni, akkor is, ha az a néhány „sziklák” pritopleno az utat.
Először is a „régi új” funkciók a Get és a Put, használt írni a bináris fájlok (bináris) fájlok véletlen hozzáférésű (Random) most hívott FileGet és FilePut és viselkedni egy kicsit másképp. Ha írsz egy változó hosszúságú karakterláncot vagy dinamikus tömbök adatok véletlen hozzáférésű fájlok automatikusan egy fejléc megadásával hossza két bájt.
Továbbá, FileGet nem határozza meg, hogy milyen típusú a tömb át futási időben, ha a tömb nem inicializált korábban.
Azonnal néhány példát. Mert „világosabb” definiáltam egy speciális szerkezet. Ez az, amit mi a bináris:

Kezdeni a példát a VB6:

Emlékszel még, mit írtam, megbeszélése viselkedés FileGet funkciót? Általában VB6 Kap egy olvasási funkció adathalmaz továbbítják a inicializált tömb. úgy, ahogyan a fenti példában.

A VB.NET ez okoz hibát, mint látni fogjuk, és átadásával a projekt, hogy eszik-frissítés varázsló. Tekintsük a kódot:

A hiba kijavításához elegendő ahhoz, hogy inicializálja a tömb legalább egy elem. Mint ez:

Most már tudjuk olvasni az adatokat, de ez könnyen belátható, hogy ahelyett, hogy a várható érték párokat i = myBinArray (i) látjuk i <> 0 (például, 0 = 0, 1 = 1, 2 = 22, stb). Ez csak egy következménye, amit FileGet számít olvasni főcím jelzi az elemek száma a tömbben. Elég annyit mondani, hogy el kell olvasni egy dinamikus tömb beállításával ArrayIsDynamic = True, minden problémánkat eltávolítják.

Ennek megfelelően, az azonos kell végezni FilePut.

Körülbelül ugyanebben az a probléma akkor jelentkezik, ha dolgozni húrok fix hosszúságú - fájlokat létre VB6 hibásan olvassa be VB.NET. Például a következő írási és olvasási kódot VB6 működik, de VB.NET nehéz lehet.

Ennek az az oka, hogy a VB.NET, a rögzítés egy húr, szerint a változó hosszúságú karakterláncot, és egy fejléc jelzi a mérete. Ebben az esetben a megoldás nem sokkal nehezebb, mint az előző. Telepítése StringIsFixedLength megoldja ezt a problémát.

jegyzetek

Vázlatosan a fájlok tartalmát különböző lehet reprezentálni (x - bármely szimbólum, szöveges vagy bináris):

Szövegfájl vagy egy bináris fájl

véletlen elérésű fájl

Amennyire én tudom, a legtöbb programozó nem tudja megmagyarázni a különbség a viselkedését egy dinamikus tömb statikus tömb (mereven rögzített méretű - az elemek száma). Talán most ez a helyzet, ha azt kell tisztázni ezt a pontot.
Fogunk létrehozni két tömböt:

Most van egy tömbben 256 elem és egy formális „üres tömböt”, hogy töltse ki, hogy a használni kívánt ReDim.

A jövőben, mi mindig felülírja a mérete egy dinamikus tömb, saját belátásunk segítségével ReDim és ReDim megőrzése, de nem írhatja felül a méret a statikus tömbben. Bár úgy tűnik, a két tömb sok közös.

Kapcsolódó cikkek