Witam. Chyba z tego siedzenie na programem juz zglupialem bo juz nie wiem co sie dzieje. Probujac uzyc funkcji scan for string dostaje caly czas blad. Zrobilem nawet sobie taki testowy programik i dalej to samo. Prosze oswieccie mnie co robie zle. Ponizej banalny(?) testowy program i blad jaki sie pojawia.
Witaj
Czemu jako input string masz tekst "u6" a nie "6".
Wytnij pierwszy znak (np. funkcją String Subset, jeśli pierwszy znak się zmienia) i będzie dobrze.
bogdani
Ktoś ci pomógł na forum? Podziękuj dając pochwałę.
No ok moge wyciac ale co bedzie gdy string wejsciowy ma postac np UWE34 (oczywiscie formatowanie scan for string to UWE%f), wtedy funckja powinna mi wyciac UWE a przepuscic 34, natomiast gdyby bylo UWY34 to wogole funkcja nic nie powinna przepuscic bo jest tak ustawiona zeby przepuszcac wszystko co ma przedrostek UWE. Glownie tu o taki przypadek mi chodzi bo funkcja ma mi separowac dane pochodzace z poszczegolnych blokow a tu wlasnie pojawia mi sie ten sam blad. Moze cos zle ustawiam w parametrach jesli tak to prosze o podpowiedz jak ustawic funkcje aby moc rozrozniac skad sa dane.
Pozdrawiam
Witam ponownie. Nie mialem dalej pojecia czym spowodowany jest ten blad tym bardziej ze wydawalo mi sie wczesniej ze nie mialem problemow z ta funkcja. Wiec pogrzebalem w opcjach i na chybil-trafil w VI Propeties/Execution odznaczylem Enable automatic error handling. I problem znikl. Oj nameczylem sie przy tym troche :evil:
Pozdrawiam!
Wyłączenie automatcznego wychwytywania błędów nie jest dobrą opcją.
Można to nazwać ukrywaniem śmieci pod dywanem.
Nie rozwiązuje to problemu w twoim przypadku.
Zastosowanie bloczka decimal string to number z offsetem nie pozwoli mi na identyfikacje miejsca pochodzenia danych. On tylko wyluska mi wartosc liczbowa a jak wspomialem np przy odbiorze danych z RS-232 konieczne jest zidentyfikowanie do czego dana wartosc liczbowa sie odnosi. Np, jesli jest slowo iwy2 i potem nastepne slowo uwy5 prad I ma isc na jedno pole odczytowe
a wartosc napiecia na drugie. Wiec jak to zrobic bez odznaczania tego niesczesnego sprawdzenia bledow?
Po co odznaczać sprawdzanie błędów? Skoro już jest jakiś błąd, to przecież lepiej o tym wiedzieć.
A jeśli dobrze rozumiem, to potrzebujesz czegoś takiego:
No mniej wiecej o to mi chodzilo. Ale sprobuj wpisac jako input string samo slowo napiecie bez tej wartosci 8,1234 lub odwrotnie wartosc bez slowa i czy wyskoczy Ci blad. U mie wlasnie wtedy wyskakuje, czyli na wejscie musze zadac dokladnie to co ten bloczek oczekuje a w przypadku gdy nie zawsze dostarczam dane np. z portu na wejscie tego bloczka, non stop generuja mi sie bledy.
na wejscie musze zadac dokladnie to co ten bloczek oczekuje
Tak byłoby idealnie, ale jeśli już pojawia się błąd to trzeba go jakoś obsłużyć. Najprostsza "obsługa" to jego zignorowanie tak jak na załączonym rysunku. Dodatkowo możesz na wejścia Scan From String podać wartości domyślne parametrów, które będą zwrócone na wyjściu w przypadku błędu.