PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : variable mit <cr><lf> löschen



lanic
16.03.2006, 17:37
hallo ich bekomme einen string gesendet volgend <cr><lf> alles kein ding den einmal auszulesen danach die variable löschen mit s = "" nun sollte die wariable eigendlich lehr sein ist sie aber nicht es bleiben diese zeichen drin <cr><lf>.

wie bekomme ich die gelöscht




Onrxd:
S = S + Chr(udr)
If Len(s) > 11 Then
A = S
S = ""
End If
If A = "Œ01042054FA9" Then
A = ""
Incr Tran1:
End If

return



was amch ich da falsch? es fungtionirt ja immer einmal dann muß der mc resetet werden. und dann geht es auch wider einmal also wirt die variable anscheint nicht ganz gelöscht oder?

mit dem imput befehl und davor



Neu:
B = Inkey(#1)
If B = 0 Then 'fragt ab ob der soeicher null ist und liest gleichzeitg aus
Goto Gut
Else
Goto Neu
End If

Gut:


ist es kein problem nur als interupt geht zu viel zeit flöten

ich hoffe mir kann jemand helfen

gruß Nico

x-ryder
16.03.2006, 18:37
beim inkey iss das löschen des udr schon inbegriffen, das s liest jetz einfach vermutlich die steuerkommandos wieder it ein, wird aber nicht über 11 steigen, also wirds auch nich gelöscht, du musst das UDR noch löschen, wenn du nur UDR abfragst

Martin

lanic
16.03.2006, 22:42
hey danke erst mal für die antwort. bei der konfusen frage stellung. nun die frage wie kann ich denn die udr löschen ? das ist ja algemein mein problem.

du meinst das die steuer comandos nach dem eigendlichem string wider eingelesen werden ! ich habe mal eingestellt das er nach dem empfang von 13 zeichen erst löschen soll da macht er aber nichts weil er die steuerzeichen ergend wie nicht anerkennt. als zeichen.

wenn ich mir die variable mal anzeigen lasse übers lcd oder auf dem terminal mischen sich die zahlen also wirt immer was hinten drann gehängt.

kann mann die steuerzeichen ergend wie verarbeiten wenn das kommt mache das ? vofür wirt es denn mitgesendet?

x-ryder
17.03.2006, 12:58
versuchs doch mal mit udr = 0 ^^

mal schaun obs geht, hab grad keine passende appl, in der cih das so testen könnte.

Martin

lanic
17.03.2006, 16:56
hey mit udr = 0 geht es nicht weil der schohn lehr ist. mein problem habe ich glaube ich gefunden.




Onrxd:
S = S + Chr(udr)
If Len(s) > 11 Then
Select Case S

Case "Œ01042054FA9"

Tran3 = Tran3 + 2

If Tran3 =< 8 Then Print #2 , "c00" ; Tran3
Waitms 500
If Tran3 > 8 Then Print #2 , "c0" ; Tran3
Waitms 500
If Tran3 > 98 Then Print #2 , "c" ; Tran3
Waitms 500

Case usw.

Case Else
Waitms 500
End Select
S = ""
End If

Return


nach dem du mir gesagt hast das er die 11 zeichen nicht ereicht, habe ich gesucht ......

und zwar hohlt er die einzelnen bytes aus dem udr puffer unf fühgt sie bis er 11 zeichen hat an einander dann führt er den code aus. ist am ende und hat aber noch 2 zeichen im puffer (<cr><lf>)die lät er wider rein hat aber nur diese beiden und kommt somit nicht über 11 zeichen und hat dann die variable mit den mist voll und alles andere wirt dannhinten drann gehängt.

nun muß ich erst im programm also nicht in der rotine die variable löschen s = "" dann geht das.

ich würde das aber gerne noch werent des interupts machen

und mir fehlen da die idehen wie ich das abfragen kann ?

wenn ich sage sobalt nur 2 zeichen im pufer sind soll er löschen somit komm ich nie über 2 zeichen.

hast du noch eine ide?

oder kann mann die zeichen (<cr><lf>) auch abfragen das ich Case "Œ01042054FA9 <cr><lf>" das geht nicht.

danke Nico