- Ismét egy "Idióta" A.I. Projekt, hogy meglovagolja az aktuális trendeket...
- Időutazás floppyval: A 486-os visszavág PCem-men
- AMD Ryzen 9 9900X (100-100000662WOF)+ Samsung 990 PRO 2TB MZ-V9P2T0BW
- Processzor és videokártya szilícium mag fotók újratöltve!
- Az e-sport napistenének ajándéka: Lamzu Inca gamer egér
- Luck Dragon: Asszociációs játék. :)
- sziku69: Fűzzük össze a szavakat :)
- laskr99: Processzor és videokártya szilícium mag fotók újratöltve!
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Okos Otthon kezdőknek
- Vízügy: árvíz, belvíz, aszály, stb.
- Magga: PLEX: multimédia az egész lakásban
- Mr.Csizmás: Bestbuy travel, utazós, kirándulós topic - szállások, jegyek
- leslieke: leslieke farmerzsebe
- gban: Ingyen kellene, de tegnapra
Hirdetés
Új hozzászólás Aktív témák
-
válasz
#68216320 #10800 üzenetére
Az exe futtatása megoldható a
Runtime.getRuntime().exec(...)
hívással. Visszakapsz egy processz-t, aminek a lefutásátwaitFor()
-ral megvárod. Itt van rá egy kis példa program, ami már demonstrálja azt is, hogy hogyan lehet az exe outputját (stdout) megszerezni. (Alternatíva, hogy az exe egy fájlba írja az outputját, amit futás után normál módon fájlként felolvasol.)A parsolásra régebben még azt mondtam volna, hogy kell írni egy parsert, de manapság ez nem divat... Ha tényleg ennyire rögzített a szerkezet, akkor a sorban szereplő négy komponens (csoport, adatnév, értéknév, érték) előbányászható egy reguláris kifejezéssel is, pl. ezzel:
^([^.]+)\.([^.]+)\.([^.]+): *(.*?) *$
Az outputot soronként célszerű feldolgozni, az elején vagy ki kell hagyni fix számú sort, vagy egyszerűen ki kell hagyni azokat, amire nem illeszkedik a regex:
Pattern pattern = Pattern.compile(<a fenti regex>);
while (<van sor>) {
Matcher m = pattern.matcher(<a sor tartalma>);
if (m.find()) {
String sensorGroup = m.group(1);
// ...
String sensorValue = m.group(4);
// DB mentés
}
}Alternatív szervezés: linux-ban oldod meg, amit lehet. A java program nem hajt végre exec-et, helyette a standard input-ot olvassa, és dolgozza fel. Hívni meg valahogy így:
>sensor.exe <opciók> | java -jar sensorprocessor.jar
És az egészet lehet futtatni pl. cron-ból. (Hátránya, hogy a JVM indítás kissé erőforrásigényes, 30 másodpercenként meg pláne.)
Megjegyzések: (1) fejből írtam, a kódot tekintsük pszeudokódnak, (2) a regex pattern-ben a
\
-eket duplikálni kell a Java string konstansban.Szerk: A korábbi válaszokat nem láttam, pár dolog így ismétlés, bocs.
Új hozzászólás Aktív témák
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- ÚJ ASUS TUF AMD RYZEN 5 5600X GAMER MAX PC 32Gb RAM 512GB SSD NVIDIA RTX 3070TI 8GB DDR6 2ÉV GAR!
- Lenovo Thinkpad P72 17.3" Intel XEON E-2186M 6 mag Quadro P5200 16GB, 32GB RAM 2TB NVME SSD
- ASUS CORE I7 8700 GAMER MAX PC 16Gb DDR4 RAM 512GB SSD NVIDIA RTX 2060 6GB DDR6 1ÉV GAR!
- MSI Ventus RTX 2060 6GB OC
- Asrock B75M-DGS/G2030/4gb DDR3
- LG 65" C1 OLED - 4K 120Hz 1ms - NVIDIA G-Sync - FreeSync Premium - HDMI 2.1 - PS5 és Xbox Ready!
- DELL Latitude 7340 i7-1365U 16GB 512GB 13.3" FHD+ TouchScren 1 év garancia
- Telenor 5G Indoor WiFi Router (FA7550) + töltő
- LG 27GN800P - 27" IPS - 2560x1440 - 144 hz 1ms - NVIDIA G-Sync - AMD FreeSync - HDR 10
- Telefon felvásárlás!! iPhone 13 Mini/iPhone 13/iPhone 13 Pro/iPhone 13 Pro Max
Állásajánlatok
Cég: FOTC
Város: Budapest