Office Guru

Szövegdobozból fájlba, fájlból szövegdobozba - a korábban tanultak felhasználása egy konkrét problémán

2017. december 29. - Office Guru

Exceles TextBoxokról korábban már volt szó itt a blogon, akinek van kedve, nyugodtan szemezgessen:

TextBox témák

Mindenesetre a mai rövid, "gyorssegély" posztban ezekből szemezgetve készítek el egy apró kódsort (vagyis kettőt), amely segítségével Exceles TextBoxunk tartalmát fogjuk elmenteni egy fájlba, például egy .txt kiterjesztésű szövegfájlba illetve onnan vissza is fogunk olvasni szövegeket. 

Adott tehát a következő TextBox:

cel1.JPGNyugodtan pakolhatunk mellé egy gombot, amelynek megnyomása után kerül át a szövegünk a fájlunkba, de akár magára a TextBoxra való kattintással is indíthatunk egy ilyen eseményt:

cel2.JPGJelen példámban utóbbinál maradunk, azaz a TextBox1_Click eseményhez rendeljük hozzá VBA-editorban a következő aprócska kódot:

cel3.JPG
Látható, hogy elsőként a "szovegem" nevet viselő változónk felveszi az aktív munkalapunkon található, TextBox 1 nevet viselő textboxunk tartalmát, majd megnyitjuk a C meghajtónkon található x.txt nevű fájlt, amelyhez az Open utasítást fogjuk használni, a megfelelő szintaxis alapján, amelyben a For után következő Append azt jelzi majd, hogy egy már meglévő fájl szövegéhez akarunk hozzápakolni (ellenkező esetben Output jön a For után), az As után következő #1 pedig a paraméterként elvárt fájl sorszáma.

A Print utasítás tehát ebbe a megnyitott fájlba rakja bele a "szovegem" változó tartalmát, tehát a TextBoxunk szövegét, majd Close utasítással be is zárjuk. Értelemszerűen ez nem csak .txt kiterjesztésű fájl esetén működik, használhatjuk Word-dokumentumnál is.

Ha a másik irányba szeretnénk kommunikálni, az a fenti kód alapján egyébként könnyen összerakható, de kicsit megkeverjük tanulási célzattal - szóval a lényeg, hogy egy .txt kiterjesztésű fájlból akarunk szöveget a TextBoxunkba varázsolni. 

Elsőként hozzunk létre három változót:

Sub txttoTextBox()

Dim file As String, ff As Integer, szoveg As String

file = "C:\x.txt" 

szoveg = Space(FileLen(file))

ff = FreeFile

Mit is csinálunk? A "file" névre hallgató változónk fogja a fájlunkhoz tartalmazni az elérési útvonalat, a "szoveg" névre hallgató változó pedig annyi szóközt fog felvenni, ahány byte méretű a megadott fájlunk (ezt adja meg a FileLen utasítás), nagyjából előkészítve a terepet a "betöltésre", hiszen ennyi karaktert fogunk ide betolni. Az ff = FreeFile pedig nem mást fog megadni, mint amit az előbb #1-ként, fájl sorszámként hivatkoztunk meg a másik kódban, ez ugyanis megadja a a következő szabad fájl-sorszámot nekünk. 

A kód további részében három utasítást fogunk használni:

Open file For Binary As #ff

Get #ff, ,szoveg

Close #ff
ActiveSheet.TextBoxes("TextBox 1").Text = szovegEnd Sub

Az Open utasítás szintaxisát követve most a megadott fájlunkat bináris módban fogjuk megnyitni a paraméterként elvárt sorszámot az ff változóból kinyerve. A Get utasítás az egész kód lelke, ami a megadott sorszámú fájlból (ezt hozza az ff változó) olvassa be az adatokat a harmadik paraméterként megadott változóba (ez a szoveg változó). Vegyük észre, hogy a két vessző között nincs semmi, oda kerülne ugyanis az opcionális második paraméter, amellyel megadhatnánk, hogy honnan kezdje el a fájlból kiszedni az adatokat. 

A Close utasítást már ismerjük fentebbről, ezzel zárjuk be a fájlt, az utolsó sorunk pedig az aktív munkalapunk TextBox 1 névre hallgató textboxába tölti be "szoveg" változónk tartalmát. 

A bejegyzés trackback címe:

https://officeguru.blog.hu/api/trackback/id/tr7813533089

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.
süti beállítások módosítása