<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl-pl">
<link rel="self" type="application/atom+xml" href="https://forum.atnel.pl/feed.php?f=66&amp;t=24819&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2025-05-20T17:44:47+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=66&amp;t=24819&amp;mode</id>
<entry>
<author><name><![CDATA[lolek50]]></name></author>
<updated>2025-05-20T17:44:47+01:00</updated>
<published>2025-05-20T17:44:47+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24819&amp;p=239096#p239096</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24819&amp;p=239096#p239096"/>
<title type="html"><![CDATA[Re: MKUDPS - range check error]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24819&amp;p=239096#p239096"><![CDATA[
Dzięki za obszerne wyjaśnienie, wszystko jasne!<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=22230">lolek50</a> — 20 maja 2025, o 17:44</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2025-05-20T06:56:44+01:00</updated>
<published>2025-05-20T06:56:44+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24819&amp;p=239095#p239095</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24819&amp;p=239095#p239095"/>
<title type="html"><![CDATA[Re: MKUDPS - range check error]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24819&amp;p=239095#p239095"><![CDATA[
Panie kochany to nie ma NIC a NIC wspólnego z MkUDPS <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> <br /><br />robisz MEGA BABOLE w kodzie - podstawowym to jest brak sprawdzania tego co ci przyleciało w PacketUDP. Jeśli przyleciał pusty string albo za krótki albo nie zawierający cyfr to będziesz dostawał takie komunikaty które są normalne jak świat - bo jak może nie być range error gdy np masz string '123' a ty chcesz sprawdzić jego 7 element if P[7] =  toż to nonsens<br /><br />Ty sobie zakładasz że jak przyleci w P[2] literka P to na 100% w StrtoInt(P[7]) = 0  a jak string będzie krótszy to ci się wyrypie, jeśli w tym miejscu nie będzie cyfry tylko litera to kolejny błąd wywali StrToInt .... jak już to stosuj StrToIntDef( P[7], -1 ) ... który nie wywali błędu jeśli w P[7] będzie litera albo nawet pusty znak to podstawi ci np -1<br /><br />Tak czy inaczej to jest kompletnie zła droga parsowania nadlatujących danych a testować to możesz sobie w byle buttonie - masz przykład <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> daj sobie raz P := '' a innym razem P := '5P' jak tu w kodzie - zobaczysz co się dzieje i że nie ma to nic wspólnego z MkUDPS, a taki komunikat widziałeś że to w MkUDPS i słusznie bo babola robiłeś w metodzie tego komponentu. Postaw sobie Button na formie <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /> <br /><br /><img src="https://obrazkiforum.atnel.pl/54/4dad8dd4a522cb3aecbb2a787a98c433.jpg" alt="Obrazek" /><br /><br />i wklej jego kod jak niżej - dostaniesz to samo a może jeszcze czegoś się nauczysz - bo nie można sobie zakładać że zawsze ci przyleci to czego oczekujesz<br /><br /><br />[syntax=c]procedure TForm1.Button1Click(Sender: TObject);<br />begin<br />  P := '';<br />  P := '5P';<br /><br />  // Pogoda-------------------------------------------<br /><br />  if StrtoInt(P&#91;1&#93;) = 5 then begin<br /><br />    if P&#91;2&#93; = 'P' then begin<br /><br />      // wilgotność------------------------<br /><br />      if StrtoInt(P&#91;3&#93;) = 6 then begin<br /><br />        W := P&#91;4&#93; + P&#91;5&#93; + P&#91;6&#93;;<br />        Wa := StrtoInt(W);<br />        Wb := Wa / 10;<br /><br />        Label8.Caption := FloatToStr(Wb);<br /><br />      end;<br />    end;<br /><br />  end;<br /><br />  if StrtoInt(P&#91;1&#93;) = 5 then begin<br /><br />    if P&#91;2&#93; = 'P' then begin<br /><br />      // ciśnienie------------------------<br /><br />      if StrtoInt(P&#91;7&#93;) = 0 then begin<br /><br />        P := P&#91;8&#93; + P&#91;9&#93; + P&#91;10&#93; + P&#91;11&#93; + P&#91;12&#93;;<br />        Pa := StrtoInt(P);<br />        Pb := Pa / 10;<br /><br />        Label6.Caption := Format('%0.1f hpa', &#91;Pb&#93;);<br /><br />      end;<br /><br />      if StrtoInt(P&#91;7&#93;) = 1 then begin<br /><br />        P := P&#91;8&#93; + P&#91;9&#93; + P&#91;10&#93; + P&#91;11&#93;;<br />        Pa := StrtoInt(P);<br />        Pb := Pa / 10;<br /><br />        Label6.Caption := Format('%0.1f hpa', &#91;Pb&#93;);<br /><br />      end;<br /><br />    end;<br />  end;<br />end;[/syntax]<br /><br />i weź formatuj te beginy tak - bo inaczej to masz tak rozstrzelony ten kod że nie dziwię, się że ciężko ci go nawet analizować<br /><br />masz tu więc pięknie odtworzony twój błąd i wskazane przez co to się dzieje i dlaczego tak nie można podchodzić do parsowania danych, wystarczy że pusta linia przyleci bo wysłany został tylko CRLF którego komponent usunie i będziesz miał po :<br /><br />[syntax=c]P := PacketUDP[/syntax]<br /><br />zawartość P = '' i już się zburzy cała twoja układanka tym właśnie range check errorem<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 20 maja 2025, o 06:56</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[lolek50]]></name></author>
<updated>2025-05-19T22:20:37+01:00</updated>
<published>2025-05-19T22:20:37+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24819&amp;p=239094#p239094</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24819&amp;p=239094#p239094"/>
<title type="html"><![CDATA[Re: MKUDPS - range check error]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24819&amp;p=239094#p239094"><![CDATA[
Ok, już załączam jakie typy danych i szerszy kontekst - całość jest umieszczona w procedurze GetPacketUDP <br /><br />[syntax=delphi]var<br />  Form5: TForm5;<br />  P, W: String;<br />  Pa, Wa: Integer;<br />  Pb, Wb: Double;<br /><br /><br /><br />procedure TForm5.MkUDPS1GetPacketUDP(Sender: TObject; PacketUDP, PacketUDPHex,<br />  PeerIP, PeerPort: string; var Response: string);<br /><br />begin<br /><br />P := PacketUDP;<br /><br />//Pogoda-------------------------------------------<br /><br />if StrtoInt(P&#91;1&#93;)= 5 then<br /><br />begin<br /><br /> if P&#91;2&#93;= 'P' then<br /><br />begin<br /><br /> //wilgotność------------------------<br /><br /> if StrtoInt(P&#91;3&#93;)= 6 then<br /><br />begin<br /><br /> W:=P&#91;4&#93;+P&#91;5&#93;+P&#91;6&#93;;<br /> Wa:=StrtoInt(W);<br /> Wb:=Wa/10;<br /><br /> Label8.Caption:= FloatToStr(Wb);<br /><br />end;<br />end;<br /><br />end;<br /><br /><br /> if StrtoInt(P&#91;1&#93;)= 5 then<br /><br />begin<br /><br /> if P&#91;2&#93;= 'P' then<br /><br />  begin<br /><br />//ciśnienie------------------------<br /><br />  if StrtoInt(P&#91;7&#93;)= 0 then<br /><br />begin<br /><br /> P:=P&#91;8&#93;+P&#91;9&#93;+P&#91;10&#93;+P&#91;11&#93;+P&#91;12&#93;;<br /> Pa:=StrtoInt(P);<br /> Pb:=Pa/10;<br /><br /> Label6.Caption:= Format('%0.1f hpa', &#91;Pb&#93;);<br /><br />end;<br /><br />  if StrtoInt(P&#91;7&#93;)= 1 then<br /><br />begin<br /><br /> P:=P&#91;8&#93;+P&#91;9&#93;+P&#91;10&#93;+P&#91;11&#93;;<br /> Pa:=StrtoInt(P);<br /> Pb:=Pa/10;<br /><br /><br /> Label6.Caption:= Format('%0.1f hpa', &#91;Pb&#93;);<br /><br />end;<br /><br />end;<br />end;<br /><br />end;[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=22230">lolek50</a> — 19 maja 2025, o 22:20</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2025-05-19T18:30:45+01:00</updated>
<published>2025-05-19T18:30:45+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24819&amp;p=239092#p239092</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24819&amp;p=239092#p239092"/>
<title type="html"><![CDATA[Re: MKUDPS - range check error]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24819&amp;p=239092#p239092"><![CDATA[
pokaż lepszy testowy kod bo z tego co pokazałeś to ja nawet nie wiem czy to ma coś wspólnego z MkUDPS - to kompletnie jakiś kod wyrwany z kontekstu, nie wiadomo jakie typy i jaki to ma styk z MkUDPS<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 19 maja 2025, o 18:30</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[lolek50]]></name></author>
<updated>2025-05-19T17:12:17+01:00</updated>
<published>2025-05-19T17:12:17+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24819&amp;p=239089#p239089</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24819&amp;p=239089#p239089"/>
<title type="html"><![CDATA[Re: MKUDPS - range check error]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24819&amp;p=239089#p239089"><![CDATA[
Tak, to jest komponent z kompilacji sprzed miesiąca, pod Delphi 12CE<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=22230">lolek50</a> — 19 maja 2025, o 17:12</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2025-05-19T09:49:38+01:00</updated>
<published>2025-05-19T09:49:38+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24819&amp;p=239087#p239087</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24819&amp;p=239087#p239087"/>
<title type="html"><![CDATA[Re: MKUDPS - range check error]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24819&amp;p=239087#p239087"><![CDATA[
a to najnowsza wersja komponentu?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 19 maja 2025, o 09:49</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[lolek50]]></name></author>
<updated>2025-05-18T16:53:37+01:00</updated>
<published>2025-05-18T16:53:37+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=24819&amp;p=239084#p239084</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=24819&amp;p=239084#p239084"/>
<title type="html"><![CDATA[MKUDPS - range check error]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=24819&amp;p=239084#p239084"><![CDATA[
Witam ponownie!<br />natrafiłem na problem z wykorzystaniem komponentu - wyskakuje mi błąd jak poniżej &quot;range check error&quot;<br /><br /><a href="https://obrazkiforum.atnel.pl/22230/fd3c37347858ddb83cf8ec2093c125bd.JPG"  class="postlink"><img src="https://obrazkiforum.atnel.pl/thumb/22230/fd3c37347858ddb83cf8ec2093c125bd.JPG" alt="Obrazek" /></a><br /><br />Poniżej fragment kodu (odczyt ciśnienia z czujnika wysyłanego przez sieć z wykorzystaniem UDP). Po rozpoznaniu P[7] wiem czy ciśnienie jest powyżej czy poniżej 1000hpa i odpowiednio wyświetlam to w aplikacji.<br />Wszystko jest ok jeśli w kodzie jest tylko jeden warunek if StrtoInt(P[7])= 0, dołożenie drugiego warunku<br />if StrtoInt(P[7])= 1 niestety powoduje wyświetlenie powyższego błędu i zupełnie nie rozumiem dlaczego - prośba o wsparcie.<br /><br />[syntax=delphi]if StrtoInt(P&#91;1&#93;)= 5 then<br /><br />begin<br /><br /> if P&#91;2&#93;= 'P' then<br /><br />  begin<br />//ciśnienie------------------------<br /><br />  if StrtoInt(P&#91;7&#93;)= 0 then<br /><br />begin<br /><br /> P:=P&#91;8&#93;+P&#91;9&#93;+P&#91;10&#93;+P&#91;11&#93;+P&#91;12&#93;;<br /> Pa:=StrtoInt(P);<br /> Pb:=Pa/10;<br /><br /> Label6.Caption:= Format('%0.1f hpa', &#91;Pb&#93;);<br />end;<br /><br /><br />  if StrtoInt(P&#91;7&#93;)= 1 then<br /><br />begin<br /><br /> P:=P&#91;8&#93;+P&#91;9&#93;+P&#91;10&#93;+P&#91;11&#93;;<br /> Pa:=StrtoInt(P);<br /> Pb:=Pa/10;<br /><br />Label6.Caption:= Format('%0.1f hpa', &#91;Pb&#93;);<br />end;<br /><br />end;<br /><br />end;[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=22230">lolek50</a> — 18 maja 2025, o 16:53</p><hr />
]]></content>
</entry>
</feed>