Podział odczytu łańcucha danych typu string

Sprawy związane z interfejsem użytkownika - kontrolki, wskaźniki, wyświetlacze, wykresy oraz inne zagadnienia tego typu...
chaberek90
Posty: 2
Rejestracja: 17 sty 2017 10:41
Wersja środowiska: LabVIEW 2013

Podział odczytu łańcucha danych typu string

Post autor: chaberek90 »

Witam,
Mam problem z odczytem łańcucha typu string, a bardziej jego podziałem. Do momentu, kiedy odczytywałam wszystkie pozycje na raz ładnie działało. Jednak muszę wydzielić ostatnie 17 pozycji, aby z tych pierwszych zrobić oddzielny podprogram. Stwierdziłam że zdubluję narzędzie Scan From String Function, podłączając się pod wyjście remaining string. Oczywiście zmniejszyłam wywoływanie tych pozycji w format string w pierwszym narzędziu. Po podłączeniu nie wyrzuca mi żadnych błędów, a jednak odbiorniki nie chcą działać. Sprawdziłam pod lupa, sygnał do nich dochodzi, więc powinno być w porządku... Ale nie jest, czy może ma ktoś pomysł co zrobiłam źle? Pozdrawiam.
Załączniki
2017-01-17_112359.jpg
2017-01-17_112359.jpg (44.95 KiB) Przejrzano 8831 razy
2017-01-17_112653.jpg
2017-01-17_112653.jpg (20.98 KiB) Przejrzano 8832 razy
Awatar użytkownika
Pitol
Moderator
Posty: 982
Rejestracja: 19 lip 2007 00:00
Wersja środowiska: LabVIEW 2019
Lokalizacja: Kraków

Podział odczytu łańcucha danych typu string

Post autor: Pitol »

Jeśli dobrze rozumiem, to masz jakiś "string" z danymi, który chcesz odczytać za pomocą dwóch Scan From String.

Powiem tak: u mnie działa :)

A tak na poważnie, to jeśli możesz, to wrzuć obie definicje formatu dla bloczka Scan From String oraz przykładową linię z Twojego pliku.
ObrazekObrazekObrazek
Chcesz taki podpis? Zajrzyj tutaj
Awatar użytkownika
koofaya
Posty: 38
Rejestracja: 23 sty 2014 14:51
Wersja środowiska: LabVIEW 2014

Podział odczytu łańcucha danych typu string

Post autor: koofaya »

Nie wiem, co chcesz zrobić i w sumie to nie wnikam, ale na załączonych obrazkach widzę poważny zalążek spaghetti.

Widzę, że masz poszczególne wartości podzielone w tym stringu średnikami.
Moja rada wobec tego jest następująca:
- wykorzystaj funkcję Spreadsheet String To Array
- tablicę stringów przepuszczasz przez pętlę for
- w pętli for jest case, który Ci dekoduje i konwertuje na odpowiednie typy wartości w zależności od indeksu
- tam najlepiej upakować to do clustra - będziesz mogła sobie po wyjściu z pętli powyciągać elementy po tagach (cluster przechowywany w shift registrze)

Tym sposobem możesz zastąpić oba Scan From String. Nie sprawdza się w takich zastosowaniach, bo tworzy się straszna plątanina kabli, a jak potem chcesz coś zmienić, to masakra.
Wrzuciłbym code snippeta, ale nie mam na tym kompie LabVIEW. Poszukasz w helpie, w przykładach, nauczysz się znacznie więcej.
chaberek90
Posty: 2
Rejestracja: 17 sty 2017 10:41
Wersja środowiska: LabVIEW 2013

Podział odczytu łańcucha danych typu string

Post autor: chaberek90 »

Odpisuje dopiero teraz, bo po tym jak Pitol napisał, że u niego coś takiego działa, zaświeciła mi się lampka aby sprawdzić na innym kompie, a dopiero teraz miałam taką możliwość. I uwaga: działa! Nie wiam dlaczego u mnie nie :-? Najważniejsze, że w sumie problemu nie ma i rozwiązanie działa.

koofaya: ciekawe rozwiązanie, jak będę miała chwilę czasu na pewno przetestuje, teraz zależy mi na czasie, a musiałam wyświetlić ponad 60 pozycji, dlatego po wyjściu ze Scan From String podłączyłam je pod Stacked Sequence Structure i tam już w środku przyporządkowałam odpowiednią "operację dla każdego". Pewnie na około, ale wtedy nie miałam innego pomysłu, a teraz nie bardzo mam czas to zmieniać.

dziękuję za zainteresowanie! :)
PiDi
Posty: 641
Rejestracja: 31 gru 2010 01:36
Wersja środowiska: LabVIEW 2017
Lokalizacja: Katowice

Re: Podział odczytu łańcucha danych typu string

Post autor: PiDi »

chaberek90 pisze:I uwaga: działa! Nie wiam dlaczego u mnie nie :-?
Inny znak dziesiętny ustawiony w systemie (przecinek, kropka)?
ObrazekObrazekObrazekObrazek
Awatar użytkownika
micard
Posty: 207
Rejestracja: 30 wrz 2011 11:28
Wersja środowiska: LabVIEW 2017
Kontakt:

Re: Podział odczytu łańcucha danych typu string

Post autor: micard »

Można wymusić konwersję przy separatorze innym niż domyślny systemowy dzięki modyfikatorowi "%.;"
http://zone.ni.com/reference/en-XX/help ... er_syntax/
ODPOWIEDZ