Miten Vb2010:llä voi suodattaa seuraavanlaisen viivakoodin lukijan antaman koodin tekstitiedostosta? Ohjelman olisi tarkoitus siirtää ja suodattaa teksti access tietokantaan siten, että se tunnistaa erikseen päivämäärän, kellonajan ja lopussa olevan 6 numeroisen koodin. Tekstitiedosto sisältää useita viivakoodinlukijan koodeja ja sen pitäisi tallentaa ja rekisteröidä ne tietokantaan.
2011/11/03 21:41:51,000104
2011/11/03 22:20:54,000100
Asialla ei ilmeisesti ole enää tuossa vaiheessa mitään tekemistä viivakoodien kanssa, joten vaihdetaanpa keskustelun otsikkoa. :)
Voit lukea tiedostosta kaikki rivit funktiolla System.IO.File.ReadAllLines. Sitten voit purkaa kunkin rivin esimerkiksi säännöllisillä lausekkeilla:
Imports System.Text.RegularExpressions Dim MatchObj As Match = Regex.Match(rivi, "(\d+)/(\d+)/(\d+) (\d+):(\d+):(\d+),(\d+)") ' MatchObj.Groups(1) = "2011" ' MatchObj.Groups(2) = "11" ' ... ' MatchObj.Groups(7) = "000104"
Käytännöllisin ratkaisu riippuu siitä, miten tarkalleen laitat tietoja tietokantaan.
C#:lla menisi esim. näin
var aika = DateTime.ParseExact(rivi.Substring(0,19),"yyyy\\/MM\\/dd HH:mm:ss",null); var koodi = rivi.Substring(20);
(Konekäännettynä VB.Netiksi)
Dim aika = DateTime.ParseExact(rivi.Substring(0, 19), "yyyy\/MM\/dd HH:mm:ss", Nothing) Dim koodi = rivi.Substring(20)
Aihe on jo aika vanha, joten et voi enää vastata siihen.