Für dieses Forum muß Javascript im Browser aktiviert werden!
Kommentar: Einfügen von HTML im Kommentar: Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a> Bild einfügen: <img src="BILDURL"> Text formatieren: <b>fetter Text</b> <i>kursiver Text</i> <u>unterstrichener Text</u> Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b> C2 Quellcode formatieren: <code>Quellcode</code> ASM Quellcode formatieren: <asm>Quellcode</asm> (Innerhalb eines Quellcodeabschnitts ist kein html möglich.) Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst ! > Hallo BeGu2, > > > ich sitze geraume Zeit an einer simplen Datenübernahme > > aus Visual Basic 6. > > Ich habe mich irgendwie verrannt. > > 3 Werte sind zu übergeben. > > Sie können unterschiedlich lang sein (3-5 Stellen). > > In VB6 lese ich die Werte aus einem Formular und übergebe sie als > > String ... > > > > MSComm4.Output = Tg.Text + "-" + Df.Text + "-" + VDruck.Text + "-" + vbCr > > > > ... > > > > in der CC2 behandele ich die Werte wie folgt: > > > > > > if hwcom.rxd() // Datenübernahme von VB6 > > { > > hwcom.inputstr(s,0); // String 3 Werte mit '-'-Trennzeichen > > strx.split(s,t,'-'); // WERTE trennen > > a=t[0]; > > b=t[1]; > > c=t[2]; > > Tg = get_int_of_string(a); // Umwandlung in Integer > > Df = get_int_of_string(b); // Funktionen aus dem Forum > > VDruck = get_int_of_string(c); > > }// if hwcom.rxd() > > > > Ich habe das Gefühl, dass es einfacher geht. > > Auf jeden Fall muß Du, wenn Du mit hwcom.inputstr() arbeiten willst, CR + LF senden und > nicht nur CR. (Also vbCrLf statt vbCr) > Warum willst Du Werte aus VB unbedingt als String senden ?? > Das Einlesen von Werten als String hat z.B. nur bei Verwendung von Terminal-Programmen > einen Sinn. > Wenn man selbst ein Proggie am PC schreibt, welches die Kommunikation übernimmt, > ist es besser die Werte direkt zu senden. > Natürlich muß man hier dann Zahlen, die größer als der Bytebereich sind, > entsprechend zerlegen > > In Deinem Fall sind es 3 Integerwerte, also 6 Byte. > In VB sähe dies dann in etwa so aus: > <font face="Courier New" size=2> > sub sendWord(wert) > wert=format(wert,"0") > MSComm.output= Chr(wert \ &H100&) & Chr(wert and &HFF&) > end sub > ... > sendWord Tg.Text > sendWord Df.Text > sendWord VDruck.Text > </font> > CC2-seitig muß das ganze dann ungefähr so aussehen: > <code> > byte data[6]; > byte recbytescnt; > ... > wait hwcom.rxd(); > recbytescnt=hwcom.receive(data,6,250); > if recbytescnt==6 > { > Tg=(data[0] shl 8) or data[1]; > Df=(data[2] shl 8) or data[3]; > VDruck=(data[4] shl 8) or data[5]; > } > else > { > // ungültiger Datenrahmen, zu wenige Bytes empfangen > } > </code> > > MfG André H.