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.
Podział odczytu łańcucha danych typu string
-
- Posty: 2
- Rejestracja: 17 sty 2017 10:41
- Wersja środowiska: LabVIEW 2013
Podział odczytu łańcucha danych typu string
- Załączniki
-
- 2017-01-17_112359.jpg (44.95 KiB) Przejrzano 9404 razy
-
- 2017-01-17_112653.jpg (20.98 KiB) Przejrzano 9405 razy
- Pitol
- Moderator
- Posty: 984
- Rejestracja: 19 lip 2007 00:00
- Wersja środowiska: LabVIEW 2019
- Lokalizacja: Kraków
Podział odczytu łańcucha danych typu string
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.
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.
Podział odczytu łańcucha danych typu string
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.
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.
-
- Posty: 2
- Rejestracja: 17 sty 2017 10:41
- Wersja środowiska: LabVIEW 2013
Podział odczytu łańcucha danych typu string
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!
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!
-
- Posty: 641
- Rejestracja: 31 gru 2010 01:36
- Wersja środowiska: LabVIEW 2017
- Lokalizacja: Katowice
Re: Podział odczytu łańcucha danych typu string
Inny znak dziesiętny ustawiony w systemie (przecinek, kropka)?chaberek90 pisze:I uwaga: działa! Nie wiam dlaczego u mnie nie
Re: Podział odczytu łańcucha danych typu string
Można wymusić konwersję przy separatorze innym niż domyślny systemowy dzięki modyfikatorowi "%.;"
http://zone.ni.com/reference/en-XX/help ... er_syntax/
http://zone.ni.com/reference/en-XX/help ... er_syntax/