Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: vb6 mid

Sivun loppuun

Milu [26.04.2005 20:23:04]

#

Nyt ei kyllä ymmärä mikse mid toimi niinkuin pitäisi.

haen tiedostosta käskyllä line input rivin
siitä midillä koitan pomia tietoa, niin ei hae oikeasta kohdasta tietoa.
Tiedosto on loggerin tekemä texti tiedosto.
Jos se tieto ei ole saman pituista alkaa hakemaan mitä sattuu, eli kohdassa 15,5 voi olla 4 tai 5 merkkiä.
Editorilla ole katsonut että tiedon alkamis ja loppumis kohdan ovat sillä kohtaa rivillä.


rivi on string muuttuja ja rpm long muuttuja

line input#1,rivi
rpm = mid(rivi,15,5)

tesmu [26.04.2005 20:27:28]

#

Muista tuo mid hakee tuossa Kirjaimen joka on kohdassa 15 ja siitä 5 merkkiä eteenpäin eli katos vielä että onko alotuskirjain tosiaan paikassa 15 ja siitä 5 merkkiä eteenpäin on lopetus kirjain

hunajavohveli [26.04.2005 20:31:47]

#

Mitä tuo palauttaa ja mitä sen pitäisi palauttaa?

Milu [26.04.2005 21:01:08]

#

Tuo oli vaan esimerkki, mutta tiedosto on tällainen

tp voi olla 1-3 merkkiä pitkä ja rpm 3-5 merkkiä

kun lukee tohon time: asti nuo ylimääräiset rivit pois niin
sen jälkee tuo tp loytyy kohdasta mid(rivi,6,3) ja rpm mid(rivi,10,5) vaikka ei ne siinä kohdassa rivillä kyllä ole, sotkeeko nuo pilkut jotenki vai voiko noissa olla jotenki välilyöntejä jotka ei muistiolla lukemalla näy?

cb900kol.djl

Time		TP	RPM	AFR	W	R
0,000		5	1701	17,2	1	0
0,101		2	1685	17,2	1	0
0,221		4	1669	17,2	1	0
0,311		1	1657	17,3	1	0
0,401		4	1638	17,3	1	0
0,531		0	1623	17,3	1	0
0,621		6	1608	17,3	1	0
0,711		2	1604	17,3	1	0
0,802		4	1576	17,3	1	0
1,002		4	1553	17,3	1	0
1,112		0	1547	17,3	1	0
1,202		0	1535	17,5	1	0
1,302		0	1516	17,5	1	0
1,452		4	1494	17,5	1	0
1,533		0	1482	17,5	1	0
1,623		4	1480	17,5	1	0
1,713		3	1460	17,5	1	0
1,803		6	1450	17,5	1	0
1,903		4	1436	17,5	1	0
2,003		0	1421	17,3	1	0
2,103		4	1408	17,3	1	0
2,234		0	1394	17,3	1	0
2,324		4	1384	17,3	1	0
2,414		4	1369	17,2	1	0
2,504		4	1354	17,2	1	0
2,624		4	1344	17,1	1	0

edit; ei nyt tullut kopioimalla nuo näköjään samalla lailla mutta siinä on kumminki noiden tietojen välissä tyhjää tp alkaa kohdasta 17 ja rpm 25 kun muistiolla katsoo

T.M. [26.04.2005 21:10:42]

#

Kannattaa käyttää koodi-tageja jos haluat säilyttää tekstin muotoilun.

esakom [26.04.2005 21:15:45]

#

miten niin paikasta 17 ja 25?

tp alkaa ton perusteella paikasta 7 ja rpm paikasta 9.
Onko sulla jotain tabulaattoreita käytössä?

https://www.ohjelmointiputka.net/ohje.php?tunnus­=kohjeet

jos käytät tabulaattoria, niin silloin notepad taitaa näyttää sen kyllä erilailla mitä se on stringissa vb:ssä. (tabi on varmaankin joku ascii-koodi tai vastaavaa)

hunajavohveli [26.04.2005 21:22:06]

#

Lisäsin tuohon kooditagit. Ja se paikka riippuu tosiaan siitä, onko tuo tehty välilyönneillä vai tabulaattoreilla. Kaikkein järkevintä olisi erotella arvot toisistaan pilkuillaan ja käyttää desimaalipilkkuna pistettä. Tai sitten tehdä kokonaan binäärimuotoisena.

esakom [26.04.2005 21:25:30]

#

jeps. erottimella ei sinällään ole väliä, kunhan se on jotain muuta kuin tabulaattori. Voit kyllä käyttää tabia, muttaa joutuisit laskemaan hieman. Käytä erottimena jotain jota ei heti sotke mihinkään muuhun, kuten #, /, tai puolipiste. Itse en käyttäisi pilkkua, sen kun voi tosiaan sekoittaa siihen pisteeseen.

Milu [26.04.2005 21:31:49]

#

Tuo tiedosto ei ole minun tekemä vaan se on valmiin dataloggerin tiedosto, haluaisin lukea sieltä ton tp,rpm ja afr:n ja tehdä sittä kolmiulotteisen kartan sitä on paljon helpomi havannoida kuin pelkkiä lukuja.
Elikä miten pitäisi nuo tiedot sieltä ronkkia jos tuo tp on vaikka 2 merkkiä alkaa seuraava rivi pykältää omituisesti.

esakom [26.04.2005 22:02:23]

#

lasket tabulaattorin yhdeksi merkiksi, esim. tp jos se on yhden merkin pitkä:

Mid(rivi, 7, 1)

jos sulla on tapauksia että tuo tp on kaksi merkkiä pitkä etkä siis tiedä etukäteen mistä seuraava tietopaikka alkaa, joudut etsimään sen alkupaikan instr:llä tyyliin:

InStr(1, rivi, vbTab, vbTextCompare)

olettaen että nuo siis oli todella tabulaattoreita.

Milu [26.04.2005 22:08:13]

#

Juu tarkistin näyttäis olevan erotettu tabulaattoreilla, kiitos taas oppi jotain uutta.


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta