Strona 1 z 1
Porównanie i zamiana.
: 17 kwie 2009 16:43
autor: Dragonfly
Szukam pomysłu jak porównać dane przylatujące jako string z danymi zawartymi w pliku txt, a następnie (jeżeli dane są te same, czyli wynik porównania jest TRUE) zamienić string na numeric.
Do tej pory udało mi się już rozbić przychodzące dane i wyodrębnić to co chce porównywać a potem zamienić, wygląda to tak jak w załączniku.
Teraz problem mam z porównaniem ich i zamianą n.p.:
Dane przychodzące ~ Dane w pliku ~ Numeric na który ma być zamienion
EA57 EA57 89
E458 E458 90
DE58 DE58 91
Potzrebuje je zamienić z tego względu, że chcę w czasie rzeczywistym przedtsawiać stan zbiornika.
Za wszelkie podpowiedzi bymbył wdzięczny.
Re: Porównanie i zamiana.
: 18 kwie 2009 10:02
autor: jogurt_owocowy
Dobrze byłoby jakbyś napisał trochę bardziej konkretnie: jak wyglądają dane przychodzące i jak wygląda plik txt. Z rysunku, który zmieściłeś niespecjalnie wiele wynika.
Re: Porównanie i zamiana.
: 20 kwie 2009 14:09
autor: Dragonfly
Dane przychodzące ototrzymuje z szyny CAN i wyglądają one jak w tabeli 1 dodanej do schematu. W kolejnym kroku udaje mi się wyodrębnić te bity, które mnie interesują i wygląda to jak w tabeli 2 (również dołączone do schematu).
W następnym krorku chciałbym porównać dane z Result String z danymi, które znajdują się w pliku txt i wyglądają następująco:
0000
FA00
F401
EE02
E803
E204
DC05
D606
D007
CA08
C409
BE0A
B80B
B20C
AC0D
A60E
A00F
9A10
9411
8E12
8813
8214
7C15
7616
7017
6A18
6419
5E1A
581B
521C
4C1D
461E
401F
3A20
3421
2E22
2823
2224
1C25
1626
1027
0A28
0429
FE2A
F82A
F22B
EC2C
E62D
E02E
DA2F
D430
CE31
C832
C233
BC34
B635
B036
AA37
A438
9E39
983A
923B
8C3C
863D
803E
7A3F
7440
6E41
6842
6243
5C44
5645
5046
4A47
4448
3E49
384A
324B
2C4C
264D
204E
1A4F
1450
0E51
0852
0253
FC54
F655
F056
EA57
E458
DE58
D859
D25A
CC5B
C65C
C05D
BA5E
B45F
AE60
A861
W drugim pliku tekstowym mam kolumnę z liczbami od 0 do 100 (które defakto są "odzwierciedleniem" danych z pierwszego pliku txt, tylko że w formie liczb dziesiętnych). W wyniku porównania Result String z danymi z pierwszego pliku txt (w przypadku zgodności znaków) chciałbym aby nastąpiło podstawienie liczb z Result String na dane znajdujące się w drugim pliku txt.
Mam nadzieje, żę udało mi się to troche rozjaśnić. Na schemacie widać moje próby zralizowania tego za pomocą Read from Text file ale niestety nie moge uzyskać podstawienia.
Re: Porównanie i zamiana.
: 20 kwie 2009 21:15
autor: jogurt_owocowy
Teraz lepiej.
Poniżej przykład, który Ci trochę powinien pomóc.
Pozdrawiam
Re: Porównanie i zamiana.
: 21 kwie 2009 08:11
autor: Dragonfly
Wielkie dzięki za pomoc.
Oprócz Twojego sposobu doszedłem do jeszcze jednej metody podmiany danych. Zapewne nie jest to wykonane zbyt profesjonalnie, ale również działa poprawnie, lecz zastanawiam sie jakie mogą być wady mojej metody?
Wpierw ciąg danych dwu bitowych zostaje zapisywany to pliku "dane.txt" (zapisywany jest tylko jeden string, w przypadku nadejścia kolejnego nadpisuje się on na poprzedni). Potem ten sam plik i plik ze zmodyfikowanym kodem ("kody_modyfikacja.txt") zostają otwarte (do kodów dodałem bez spacji wartości liczbowe, którym mają one odpowiadać i tak n.p. 000000, 624369, 5C4470, 564571, 504672 itd.).
W bloczku Search/Split String oba ciągi znaków zostają porównane i w przypadku odnalezienia ciągu z pliku "dane.txt." w pliku "kody_modyfikacja.txt" cały ciąg odnaleziony, wraz z dopisanymi wartościami, zostaje przesłany na jego wyjście. W bloczku Replace Substring 4 pierwsze znaki zostają podmienione na nic w wyniku czego otrzymuje dwa ostatnie znaki, które są wartościa liczbową odpowiadającą stanowi zbiornika. Zostaje jeszcze zamiana z Decimal String to Number.
Re: Porównanie i zamiana.
: 21 kwie 2009 13:50
autor: Dragonfly
Nasunęło mi się jeszcze jedno pytanie.
Czy jest możliwe zapisanie strumienia danych otrzymanych z bloku CAN Read Net Multi (czyli otrzymanych bitów z szyny CAN) w jakimkolwiek pliku nie zmieniając ich formy, tak aby następnie było możliwe odczytanie ich i po lekkiej modyfikacji przesłanie spowrotem do szyny CAN ?
Porównanie i zamiana.
: 21 kwie 2009 17:04
autor: folon
Nie wiem dokładnie w jakiej postaci otrzymuje się dane z tego VIjaja, ale jak nie chcesz ich sobie jakoś sformatować i wpisać uporządkowanych do pliku, to spróbowałbym Flatten to string, a przy odczycie Unflatten from string.
Edit: Plik LV8.0 na szybko zrobiony, więc może haczyć:)