Osekanie textu alebo co to je :D

Nedaří se vám s projektem a nenašli jste vhodné místo, kde se zeptat? Napište sem.
Pravidla fóra
Tohle subfórum je určeno pro konzultaci ucelených nápadů, popřípadě řešení komplexnějších projektů, které opravdu není možné rozdělit na menší části.
Většinu problémů jde rozdělit na menší a ptát se na ně v konkrétních subfórech.
Odpovědět
00alkskodi00
Příspěvky: 21
Registrován: 29 srp 2020, 10:02
Reputation: 0

Osekanie textu alebo co to je :D

Příspěvek od 00alkskodi00 » 03 říj 2020, 15:17

Chlapy mam amatersku otazku

Mam nejaky takyto text v arduine nacitany zo serial

D: 10.552m 0097

Potreboval by son vytiahnut s toho iba 10.552 aby som to mohol pouzit nadalsi vypocet

Rozmyslal som ze to iba jednpducho osekam od pozicie po poziciu ale problem je ze ono sa to meni neustale napr D: 8.33m 0052...


Su to udaje z laseroveho dialkomeru a naozaj neviem ako to urobit

:lol:

ondraN
Příspěvky: 932
Registrován: 08 srp 2019, 20:01
Reputation: 0

Re: Osekanie textu alebo co to je :D

Příspěvek od ondraN » 03 říj 2020, 15:55

Zkus to takhle

Kód: Vybrat vše

float x;
if(Serial.available()>0){
	do{
		if(isDigit(Serial.peek())){
			break;
		}
		Serial.read();
	}while(Serial.available()>0);
	x=Serial.parseFloat(SKIP_NONE);
// tady muzes docist zbytek za tim cislem
}
A nebo taky takhle

Kód: Vybrat vše

float x;
if(Serial.available()>0){
	x=Serial.parseFloat(SKIP_ALL);
}

martinius96
Příspěvky: 579
Registrován: 01 srp 2017, 19:29
Reputation: 0
Bydliště: Poprad
Kontaktovat uživatele:

Re: Osekanie textu alebo co to je :D

Příspěvek od martinius96 » 03 říj 2020, 18:00

Obrázek

Kód: Vybrat vše

String midString(String str, String start, String finish) {
  int locStart = str.indexOf(start);
  if (locStart == -1) return "";
  locStart += start.length();
  int locFinish = str.indexOf(finish, locStart);
  if (locFinish == -1) return "";
  return str.substring(locStart, locFinish);
}

void setup() {
  Serial.begin(115200);
  String line = "D: 10.552m 0097";
  String retazec = midString(line, " ", "m");
  float hodnota = retazec.toFloat();
  Serial.println(hodnota, 3); //vypis hodnoty float na 3 desatinne miesta (NEOVPLYVNI TO PREMENNU HODNOTA A POCET DESATINNYCH MIEST V NEJ)
}

void loop() {

}

00alkskodi00
Příspěvky: 21
Registrován: 29 srp 2020, 10:02
Reputation: 0

Re: Osekanie textu alebo co to je :D

Příspěvek od 00alkskodi00 » 03 říj 2020, 19:22

dikes za odpoved idem skusat :)

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 57 hostů