Eli kuinka javascriptillä tulisi parsio tietoja txt tiedostosta siten, että saadaan poimittua vain tietty tietopätkä ja esitettyä se halutussa yhteydessä. Esimerkki parsittavan tekstitiedoston sisällöstä, 2 rivinen tiedosto:
26.05.14 21:48:28 4.8 92 3.6 2.3 2.3 45 0.0 10.9 1063.4 NE 2 m/s C mb mm 269.3 0.6 42.2 78.5 2.6 20.1 45 2.6 -0.4 16.4 00:00 4.7 21:44 9.5 21:13 9.5 21:13 1063.5 21:46 1055.3 04:23 1.9.2 1032 8.2 4.8 4.8 0 0 0 43 0.0 -1 1 0 NE 149 m 1.8 0.0 32 0
Toinen rivi alkaa tuosta 21:46 1055 lähtien...
Jos tuolta haluaisin poimia esim tuulensuunnan NE, sekä nopeuden 2 m/s, niin miten tuo tulisi parsia jotta sen voisi järkevästi esittää html5 sivun yhteydessä? Käytännössä täytyy tietää toki mikä arvo vastaa mitäkin ja esimerkissäkin täytyy ehkä poimia 3 tekijää, suunta, nopeus sekä nopeuden yksikkö ja esittää nämä 3 sitten halutussa järjestyksessä / muoodossa..
Mutta miten ylipääään parsitaan oikeaoppisesti, saatika että voisi poimia jonkin tietyn arvon yhdestä raakadata tekstitiedostosta?
Tiedoista & vinkeistä kiittäen!
Jacasriptillä tietojen parsiminen
10
327
Vastaukset
- JSON
Helpottaisi kovasti, jos data olisi saatavissa JSON- tai XML-muodossa.
- parsi harju
Näitäkin muotoja täytyy vielä käsitellä mutta se tulee eteen hieman tuonnempana.. Olisiko sulla heittää jotain hyvää opaslikkiä kumpaiseenkin? Google toki löytää, ongelmana vain erottaa joukosta hyväksi todetut, helposti ymmärrettävät joista jotain oppiikin pelkän kopioinnin sijaan..
Kiitos kuitenkin jo tähänastisista!
- Retaattori
Esimerkiksi tekemällä tekstistä array ja poimimalla sieltä oikeat indexsit, huom indexsien laskenta lähtee 0 arvosta.
var txt='26.05.14 21:48:28 4.8 92 3.6 2.3 2.3 45 0.0 10.9 1063.4 NE 2 m/s ';
var a=txt.split(" ");
var sn=a[11] ' ' a[12] a[13];
document.getElementById("tuuli").innerHTML = sn;- parsi harju
Kiitos vastauksesta!
En halua teettää valmiiksi pätkää toisilla, joten kysyisin vielä tuosta index asiasta ym. Olisiko sulla muuten heittää jotain linkkiä asiaa selkokiielisesti käsittelevään oppaaseen tms? Joka tapauksessa, voidaanko nuo arvot kuvitella ikäänkuin olisivat taulukkolaskennan soluja, eli tuo 26.05. olisi index 0, 14 olisi index 1 jne? Entä miten poikkeaa kun vaihtuu rivi, vai jatkuuko index laskenta eteenpäin normaalisti?
Olen tässä asiassa jokseenkin ummikko, mutta pyrin sisäistämään nopeasti perusasioita, kiitos siis jo tähänastisista? :)
- JSON
// Data merkkijonona
var data = "26.05.14 21:48:28 4.8 92 3.6 2.3 2.3 45 0.0 10.9 1063.4 NE 2 m/s";
// Tehdään datasta taulukko
data = data.split(' ');
// Taulukko on nyt seuraavan näköinen:
["26.05.14", "21:48:28", "4.8", "92", "3.6", "2.3", "2.3", "45", "0.0", "10.9", "1063.4", "NE", "2", "m/s"]
// Jos halutaan ensimmäinen taulukon kohta:
var eka = data[0];
// Jos taas toinen:
var toka = data[1];
// jne.
// Rivinvaihdossa taulukko jatkuu normaalisti.
// Onko rivien tärkeä erottua toisistaan?- parsi harju
Kiitos!
Tuo toki kommenttina koodissa, mutta oletan että myös kysymykseksi tarkoitettu, joten.. Rivien ei ole tärkeää erottua. Tulostus olisi tarkoitus tehdä html sivulle "taulukkoon", tai ihan tekstimääritteen perään. Eli esim Lämpötila: ja påoimia parsitusta datasta arvo perään.. Liittyy oikeastaan seuraavaan, mutta tavallaan molempiin..
jos & kun tiedot poimitaan tyyliin
data.data[0] // (meniköhän jo väärin),
niin mikä on oikeaoppinen tapa poimia tuo tuota käyttäen normi html:n sekaan, vaikka nyt tekstin perään / väliin jne, ei välttämättä taulukkomuotoisena (muotoiluasiat täytyy osata itse)?
En ole tosiaan ehtinyt näitä vielä kokeilemaan käytännössä (vieläkin töissä), mutta jonkinverran tämä alkaa hahmottumaan. Viilaamista varmasti vaatii vielä paljon, mutta...
KIITOS!
- JSON
// Kerrot, että sinun tarvitsee myöhemmässä vaiheessa mahdollisesti paria JSON-muotoista dataa. Tässä muutama on lyhyt esimerkki:
// ESIM. 1
// Kuvitellaan, että meillä on seuravanlaista JSON-dataa tallennettuna muuttujaan.
var data = '{"nimi": "Keijo", "ika": 24, "osoite": "Koodikuja 17 B"}';
// Tehdään tuosta merkkijonosta objekti
data = JSON.parse(data);
// Tiedot napataan näin:
data.nimi // "Keijo"
data.ika // 24
data.osoite // "Koodikuja 17 B" - JSON
ESIM. 2
Meillä on seuraavanlainen JSON-data:
{"ihmiset" : [
{"nimi": "Keijo", "ika": 24, "osoite": "Koodikuja 17 B"},
{"nimi": "Liisa", "ika": 32, "osoite": "Datatie 54"},
{"nimi": "Matti", "ika": 22, "osoite": "Ohjelmoijankatu 16 F"}
]}
Kuvitellaan, että se on tallennettu muuttujaan data2.
// Tehdään datasta objekti:
data2 = JSON.parse(data2);
// Käyttöesimerkkejä:
// Noudetaan 1. henkilön osoite:
data2[0].osoite
// Noudetaan 2. henkilön nimi:
data[1].nimi
// Noudetaan 3. henkilön ikä:
data[2].ika- JSON
Käyttöesimerkit ovat väärin. Niiden pitäisi olla siis:
// Noudetaan 1. henkilön osoite (eli "Koodikuja 17 B"):
data2.ihmiset[0].osoite
// Noudetaan 2. henkilön nimi (eli "Liisa"):
data2.ihmiset[1].nimi
// Noudetaan 3. henkilön ikä (eli 22):
data2.ihmiset[2].ika - parsi harju
JSON kirjoitti:
Käyttöesimerkit ovat väärin. Niiden pitäisi olla siis:
// Noudetaan 1. henkilön osoite (eli "Koodikuja 17 B"):
data2.ihmiset[0].osoite
// Noudetaan 2. henkilön nimi (eli "Liisa"):
data2.ihmiset[1].nimi
// Noudetaan 3. henkilön ikä (eli 22):
data2.ihmiset[2].ikaKysyin jo yllä tähän svuten, joten jos siellä vastaus, tämän saa sivuttaa.. Mutta varuksi tähän tiivistettynä mitä hain takaa..
Millainen koodinpätkä siis vaaditaan "keskelle leipätekstiä" tms. jos halutaankin poimia joku arvo väliin ja jatkaa siitä normaalisti eteenpäin?
Tuosta jos vielä saisi esimerkin, olisin tavattoman kiitollinen.. Muutoin täytyy opiskella asioita itse eteenpäin.. Kiitos kaikille!
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
Persujen mukaan rasismi on huumoria
Vaan kun koomikko kutsui Halla-ahoa fasistiksi, niin piti haastaa oikeuteen. Mihin se huumorinitaju yhtäkkiä hävisi? ⠀2666640Rasismia kaikkialla näkevät ovat Suomen tyhmimpiä ihmisiä
ja monillahan kuluu myös mielialalääkkeitä, eli päässä on ongelmia. Mutta he eivät tajua kuinka paljon ja ihan todellis2176192Ei kahta sanaa etteikö Petteri Orpo hyväksy rasismia
Koska jatkaa hallituksessa rasistisen perussuomalaisiksi itseään kutsuvan puolueen kanssa. Se on Petteri Orpon arvomaai385640Mitkäs nuorisoporukat ovat toisia nuoria ryöstelleet (selvää rassismia)
No poliisi kertoo, että maahanmuuttajataustaisia ovat, ja isot porukat sillä yhden suomalaisen uhrin kimpussa on ollut j1514968Pitkän linjan yritysjohtaja: Suomen tapahtumat eivät ole Aasian kärkiuutinen
Viimeaikaista kohua on käytetty sisäpoliittisena lyömäaseena, Thomas Zilliacus sanoo. – Koska asiaa kuitenkin kommentoi293774Hallitus on kaadettava ja Orpon on erottava
Mikään muu hallitus ei ole oman elämäni aikana tuhonnut näin paljon tämän maan taloutta ja työllisyyttä sekä suomen main1913709Lasse Lehtonen vaatii persuja pyytämään anteeksi aasialaisilta
Persut ova romahduttaneet Suomen maakuvan parissa päivässä negatiiviseksi rasismillaan ja se alkaa vaikuttamaan jo Suome1313445HS 12/25 kysely: persut romahti, demarit raketoi
Kyyti on kylmää persuleirissä, saattaa vetää siellä silmätkin viirulleen. Sen sijaan SDP:n puoluetoimistolla voidaan pok333133Demarit ovat oikeasti törppöjä eli heikkoälyisiä
ja todistavat sitä päivittäin täällä lapsellisilla jutuillaan. Kauheasti on hehkuttaneet kuinka demarien kannatus vaan43113Rasismi rapauttaa Suomen mainetta ja hallituksen hiljaisuus pahentaa vahinkoa
Finnairin viesti Japanista on pysäyttävä: suomalaisen politiikan rasismikohut heijastuvat suoraan matkustuspäätöksiin ja3302775