Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 27 gru 2024, o 11:37


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 8 ] 
Autor Wiadomość
PostNapisane: 20 wrz 2018, o 11:05 
Offline
Nowy

Dołączył(a): 11 lip 2017
Posty: 4
Pomógł: 0

Chcę wysłać liczbę(np. wartość 3.5) po RS232.
Zaczynam tak:
1. Wysyłam z avr (Atmega8) po rs232 jako znaki 3.5 (zresztą bez znaczenia czy jako text czy liczbę wprost).
2. W Delphi robię odczyt przez comport i wyświetlam na komponencie Memo1 znak(i) 3.5 - jest ok.
3. Następnie znaki z komponentu Memo1 chcę zamienić na wartość liczbową real przez StrToFloat i mam błąd. Zamiana nie następuje.
mam komunikat, że 3.5 nie można zamienić na typ real.
4. Jeżeli prześlę po RS232 liczbę typu Integer, to z zamianą StrToInt nie ma problemu. Problem jest z liczba niecałkowitą(typu real).

Poproszę o pomoc.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 wrz 2018, o 12:20 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27319
Lokalizacja: Szczecin
Pomógł: 1041

separator zmień

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 wrz 2018, o 13:34 
Offline
Nowy

Dołączył(a): 11 lip 2017
Posty: 4
Pomógł: 0

Hm, ale reprezentacja liczby po stronie pierwotnej(źródła wysyłającego) jest postaci z kropką (np. 3.5).



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 wrz 2018, o 14:34 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27319
Lokalizacja: Szczecin
Pomógł: 1041

no i co z tego ? a kto ci zabroni zmienić kropkę na przecinek po obojętnie której stronie ?

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 20 wrz 2018, o 14:38 
Offline
Nowy

Dołączył(a): 11 lip 2017
Posty: 4
Pomógł: 0

Popracuję wieczorem, dam znać.

-- dzisiaj, o 14:38 --

1. po stronie pierwotnej(nadawczej) mam program napisany w Bascomie i liczba rzeczywista ma kropkę.
2. po stronie wtórnej(odbiorczej) jest Delphi, który oczekuje przecinka.

Jeżeli wyślę text(string) postaci np."3,5" , konwersja do liczby w delphi jest prawidłowa, ale text muszę napisać ręcznie. Natomiast konwersja poprzez funkcję STR (Bascom) liczby na string daje wynik/text postaci "3.5" . Tym razem tego delphi nie trawi i koło się zamyka.

No chyba, że w delphi można jakoś zamienić otrzymany string "3.5" na "3,5" , wtedy to zadziała.
Oczywiście wartość liczbowa 3.5 jest przykładowa.
Jeżeli wie Pan jak to zrobić Panie Mirku, to poproszę o podpowiedź.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 wrz 2018, o 07:14 
Offline
Użytkownik

Dołączył(a): 02 paź 2015
Posty: 41
Pomógł: 1

Albo tak:
Składnia: [ Pobierz ] [ Ukryj ]
język delphi
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Albo użyj drugiej wersji funkcji StrToFloat, gdzie możesz podać własny format separatora dziesiętnego:
Składnia: [ Pobierz ] [ Ukryj ]
język delphi
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 wrz 2018, o 08:07 
Offline
Moderator
Avatar użytkownika

Dołączył(a): 03 paź 2011
Posty: 27319
Lokalizacja: Szczecin
Pomógł: 1041

kkarl napisał(a):
No chyba, że w delphi można jakoś zamienić otrzymany string "3.5" na "3,5" , wtedy to zadziała.

No panie kochany, toż to PODSTAWOWE operacje na stringach - co za problem zamienić sobie w odebranym string jakiś znak na inny ? w czym problem ?

Oczywiście jest wiele innych sposobów, tak jak np wyżej pisze kolega - ale specjalnie nie pisałem o tym wcześniej bo coś czułem, że ty na razie chyba masz jeszcze problem z podstawową obróbką stringów w Delphi - polecam ci zacznij od tego.

_________________
zapraszam na blog: http://www.mirekk36.blogspot.com (mój nick Skype: mirekk36 ) [ obejrzyj Kurs EAGLE ] [ mój kanał YT TV www.youtube.com/mirekk36 ]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 21 wrz 2018, o 11:07 
Offline
Nowy

Dołączył(a): 11 lip 2017
Posty: 4
Pomógł: 0

No, problem był w tym, że kompilator wyrzucał błąd. Nie dołączyłem biblioteki.
Obecnie działa.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 8 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 0 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO