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.