<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[ComPort Library von Dejan Crnila]]></title><description><![CDATA[<p>Hallo. Ich verwende die ComPort Library von Dejan Crnila und möchte Daten vom ComPort auslesen. Leider klappt das nicht wie gewünscht. Ich sende von einem anderen PC aus 308 Byte und empfange sie mit einem Terminal-Programm auch problemlos. Leider bekomme ich sie mit BCB nicht vollständig empfangen (am Ende fehlt mal mehr oder weniger).<br />
Mein Code zum OnRxChar Ereignis sieht so aus:</p>
<pre><code>void __fastcall TForm1::ComPort1RxChar(TObject *Sender, int Count)
{
        unsigned char z;
        for(int i=0; i&lt;Count; i++) {
                ComPort1-&gt;Read(&amp;z,1);
                Memo1-&gt;Lines-&gt;Add(a);
        }
}
</code></pre>
<p>Ist das so richtig???<br />
Weitere Frage: Wird Count von BCB selber bestimmt?</p>
<p>Danke, Flo</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/131101/comport-library-von-dejan-crnila</link><generator>RSS for Node</generator><lastBuildDate>Thu, 30 Jul 2026 10:54:34 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/131101.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 30 Dec 2005 22:06:12 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to ComPort Library von Dejan Crnila on Fri, 30 Dec 2005 22:06:12 GMT]]></title><description><![CDATA[<p>Hallo. Ich verwende die ComPort Library von Dejan Crnila und möchte Daten vom ComPort auslesen. Leider klappt das nicht wie gewünscht. Ich sende von einem anderen PC aus 308 Byte und empfange sie mit einem Terminal-Programm auch problemlos. Leider bekomme ich sie mit BCB nicht vollständig empfangen (am Ende fehlt mal mehr oder weniger).<br />
Mein Code zum OnRxChar Ereignis sieht so aus:</p>
<pre><code>void __fastcall TForm1::ComPort1RxChar(TObject *Sender, int Count)
{
        unsigned char z;
        for(int i=0; i&lt;Count; i++) {
                ComPort1-&gt;Read(&amp;z,1);
                Memo1-&gt;Lines-&gt;Add(a);
        }
}
</code></pre>
<p>Ist das so richtig???<br />
Weitere Frage: Wird Count von BCB selber bestimmt?</p>
<p>Danke, Flo</p>
]]></description><link>https://www.c-plusplus.net/forum/post/953151</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/953151</guid><dc:creator><![CDATA[Flo78]]></dc:creator><pubDate>Fri, 30 Dec 2005 22:06:12 GMT</pubDate></item><item><title><![CDATA[Reply to ComPort Library von Dejan Crnila on Fri, 30 Dec 2005 23:22:02 GMT]]></title><description><![CDATA[<p>Ich denke &quot;Count&quot; ist der Schlüssel zum Geheimnis. Es gibt an, wieviele Bytes empfangen werden. Doch Count wird ein Wert während der Laufzeit (z.B. 279) zugewiesen. Damit werden 279 Bytes empfangen...doch leider nicht die 308! Stelle ich Count auf 308 scheint es zu gehen...doch möchte ich flexibel in der Anzahl empfangener Bytes sein und dies nicht vorher im Code festlegen müssen! HILFE!!! ...danke.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/953198</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/953198</guid><dc:creator><![CDATA[Flo78]]></dc:creator><pubDate>Fri, 30 Dec 2005 23:22:02 GMT</pubDate></item><item><title><![CDATA[Reply to ComPort Library von Dejan Crnila on Fri, 30 Dec 2005 23:44:30 GMT]]></title><description><![CDATA[<p>Also Count scheint anzugeben, wieviele Bytes im Buffer eingegangen sind! Doch warum sind da nicht alle die, die ich gesendet habe?? Ein Null-Acht-Fünfzehn Terminalprogramm empfängt alles und BCB nicht...wo gibts denn so was?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/953203</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/953203</guid><dc:creator><![CDATA[Flo78]]></dc:creator><pubDate>Fri, 30 Dec 2005 23:44:30 GMT</pubDate></item><item><title><![CDATA[Reply to ComPort Library von Dejan Crnila on Sat, 31 Dec 2005 12:20:50 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>schau dir dochmal die Dokumentation zu deiner Komponente genau an<br />
da steht sicher drin was du aendern musst</p>
<p>Da ich deine Komponente nicht kenne kann ich dazu nicht viel sagen<br />
Nur eines - das hat mit dem BCB gar nichts zutun - das ist entweder ein Fehler<br />
in der Komponente oder ein Progammierfehler (Einstellungen zB)</p>
<p>Mfg<br />
Klaus</p>
]]></description><link>https://www.c-plusplus.net/forum/post/953337</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/953337</guid><dc:creator><![CDATA[KlausB]]></dc:creator><pubDate>Sat, 31 Dec 2005 12:20:50 GMT</pubDate></item><item><title><![CDATA[Reply to ComPort Library von Dejan Crnila on Sat, 31 Dec 2005 21:14:19 GMT]]></title><description><![CDATA[<p>hatte n ähnliches Problem bei UDP Packets,<br />
mach mal die &quot;/0&quot; String terminator raus, eventuell liegts daran das du nur ein Stückchen anzeigen kannst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/953759</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/953759</guid><dc:creator><![CDATA[GreyHound]]></dc:creator><pubDate>Sat, 31 Dec 2005 21:14:19 GMT</pubDate></item><item><title><![CDATA[Reply to ComPort Library von Dejan Crnila on Sun, 01 Jan 2006 23:18:54 GMT]]></title><description><![CDATA[<p>Hi,<br />
habe vor einem Jahr im Zuge einer Projektarbeit auch damit gearbeitet. Habe mal das Programm rausgekramt. Eventuell hilft dir das weiter. Habe noch ein paar mehr Beispiele, allerdings überblicke ich das Programm nicht mehr so ganz. Habe mich seit einem Jahr nicht mehr damit beschäftigt. Mensch was man nach so einer langen Zeit alles vergisst <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /></p>
<p>Aber ich glaube die for Schleife kannst du dir sparen. Hier mal zwei Beispiele aus meinem Programm. Habe jetzt nicht Editiert, such dir das passende raus.</p>
<p>Gruß<br />
Eddie</p>
<p><strong>Beispiel 1</strong></p>
<pre><code class="language-cpp">void __fastcall Tfrm_com_ansteuerung::ComPort3RxChar(TObject *Sender, int Count)
{
    //Daten einlesen und ausgeben

    AnsiString Str3,daten_com3;
    ComPort3-&gt;ReadStr(Str3, Count);
    daten_com3=daten_com3+Str3;
    memo_com3-&gt;Lines-&gt;Text=daten_com3;

}
</code></pre>
<p><strong>Beispiel 2</strong></p>
<pre><code class="language-cpp">void __fastcall Tfrm_com_ansteuerung::ComPort6RxChar(TObject *Sender, int Count)
{
     AnsiString varWT,WTnr,varWTREPLACE,Str6;
     static AnsiString daten_com6=&quot;&quot;;

     ComPort6-&gt;ReadStr(Str6, Count); //Empfange String vom ComPort

     daten_com6=daten_com6+Str6;

    try
    {
     int pos=daten_com6.Pos(&quot;\n&quot;);  //Im String nach &quot;CR&quot; und &quot;LF&quot; suchen
     if (pos&gt;0)
     {

     AnsiString ok=&quot;0    \n&quot;,nio=&quot;1    \n&quot;;
     int  laenge = daten_com6.Length();  //Stringlänge einen Integer zuweisen.

         if(laenge==396)             //Überprüfe Zeichenlänge
        {
         ComPort6-&gt;WriteStr(ok);     //Sende alles i.o.
        }
        else {ComPort6-&gt;WriteStr(nio); daten_com6=&quot;&quot;;}  //Sende n.i.o.

     varWT=daten_com6.SubString(11,5);
     //Zeichen Isolieren um Textnamen zu erzeugen
     varWTREPLACE = StringReplace(varWT, &quot; &quot;, &quot;&quot;, TReplaceFlags() &lt;&lt; rfReplaceAll &lt;&lt; rfIgnoreCase);
     //Lehrzeichen im isoliertem String löschen
     memo_com6-&gt;Lines-&gt;Text=daten_com6.SubString(1,pos);
     //Schreibe kompletten String ins Memo
     frmBenutzeroberflaeche-&gt;memuebergabe-&gt;Lines-&gt;Text=memo_com6-&gt;Lines-&gt;Text;
     //Textübergabe an Benutzermemo zur trennung IO und NIO Daten
     daten_com6=daten_com6.SubString(pos+1,daten_com6.Length());
     //Ersten String sichern, falls nächster Sring schon im Buffer
     memo_com6-&gt;Lines-&gt;SaveToFile(&quot;messdaten\\WT&quot; +varWTREPLACE+&quot;.txt&quot;);
     //String in Textdatei speichern, Dateinamen erzeugen
     }
    }
    catch (Exception&amp; e)                      //Fehlermeldung abfangen
    {
        String className = e.ClassName();
        String msg = e.Message;
    }
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/954380</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/954380</guid><dc:creator><![CDATA[kohliman]]></dc:creator><pubDate>Sun, 01 Jan 2006 23:18:54 GMT</pubDate></item></channel></rss>