Hei!
Minulla on seuraavanlainen kysymys:
VB.Net sovelluksen pitäisi pystyä avaamaan ja prosessoimaan tekstitiedosto, joka on esim. tällainen:
X 1234 Y 1234
X 5678 Y 5678
X 9012 Y 9012
Joka rivillä on X-koordinaatti ja Y-koordinaatti. Tavoite olisi poimia joka riviltä X:n perässä oleva arvo, ja kirjoittaa sitä vastaava arvo(tai kyseinen luku) COM-porttiin, sama Y:lle. Tiedoston avaamiseen tai sarjaporttiin kirjoittamiseen en tarvitse apua, mutta stringien prosessoinitiin tarvitsisin neuvoja. Eli jos vaikka jokainen rivi on luettu String -tyyppiseen taulukkoon, miten prosessoida se, että siitä saa vaan sen X:n ja Y:n arvot. Eli heti kun X:n arvo on saatu, kirjoitetaan COM-porttiin, samoin Y:n arvolle. Sitten taulukon seuraava indeksi, sama homma, niin kauan kun taulukossa tulee vastaa "", eli ei ole enää tekstiä.
t.
Lauri
Dim SR As System.IO.StreamReader SR = New System.IO.StreamReader("C:\tiedosto.txt") 'Tiedostosyntaksi: 'X 1234 Y 2342 'X 1234 Y 1242 'X 1235 Y 1231 'etc. Do While SR.EndOfStream = False Dim data As String = SR.ReadLine() If data <> "" Then Dim Parsed() As String = data.Split({" ", "\r", "\n"},StringSplitOptions.RemoveEmptyEntries) 'tulisi olla nyt taulukko Parsed(0) = X, Parsed(1) = X:n arvo, Parsed(2) = Y,Parsed(3) = Y:n arvo Me.SerialPort1.Open() Me.SerialPort1.Write(Parsed(1)) 'Kirjoitetaan X:n arvo Me.SerialPort1.Close() Me.SerialPort1.Open() Me.SerialPort1.Write(Parsed(3)) 'Kirjoitetaan Y:n arvo Me.SerialPort1.Close() End If Loop SR.Close()
En testannut mutta ainakin tuonneppäin :)
*Edit
jos käytät Do While SR.Read, ja luet loopissa SR.ReadLine:llä, ensimmäinen merkki hukkuu. :(
Kiitoksia paljon!!
Lauri
Virheitä tulee noista aaltosulkeista:
Dim Parsed() As String = data.Split({" ", "\r", "\n"},StringSplitOptions.RemoveEmptyEntries)
Error 1 Expression expected.
Error 2 Comma, ')', or a valid expression continuation expected.
Muutama topikki takaperin käsiteltiinkin tätä asiaa, olisi pitänyt tarkistaa.
Dim Parsed() As String = data.Split(New String() {" ", "\r", "\n"}, StringSplitOptions.RemoveEmptyEntries)
Hmm, hämmästelen. kyllä meinaan debuggasin tuon koodinpätkän ja taulukkoon tuli ihan niinkuin pitikin. ensimmäinen parametri splitille on char taulukko, ellei sitten string muotoon määritä (niinkuin olit nyt tehnyt).
no pääasia että toimii nyt!
Aihe on jo aika vanha, joten et voi enää vastata siihen.