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)
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
Mitä tuo palauttaa ja mitä sen pitäisi palauttaa?
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
Kannattaa käyttää koodi-tageja jos haluat säilyttää tekstin muotoilun.
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)
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.
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.
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.
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.
Juu tarkistin näyttäis olevan erotettu tabulaattoreilla, kiitos taas oppi jotain uutta.
Aihe on jo aika vanha, joten et voi enää vastata siihen.