Bloqueado y debe ser una tontería

17/09/2004 - 19:46 por dgironal | Informe spam
Muy buenas, el problema es el siguiente:

Tengo varios cajones portamonedas (una especie de caja registradora para
meter monedas y billetes), cada uno de ellos se abre con una combinación
diferente, ejemplo:

(se abren através del puerto paralelo, o serie, conectado con una impresora
de tickets, , un ROLLO!!!)

Cajon de la Marca UNA: oStreamWrite.WriteLine(Chr(27) + Chr(112) +
Chr(1))
Cajon de la Marca OTRA: oStreamWrite.WriteLine(Chr(27) + "p" + Chr(0) +
Chr(25) + Chr(250))
Cajon de la Marca OTRO: oStreamWrite.WriteLine(Chr(&H1B) & "p" & Chr(0) &
Chr(100) & Chr(250))
etc, etc,...

No tengo problemas para abrirlos, el bloqueo biene por lo siguiente (y debe
ser una tontería):
¿Cómo almaceno la secuencia de apertura?, es decir

oStreamWrite.WriteLine(OPEN_DRAWER)

Por ejemplo en el registro, en un fichero, en el app.config, guardar la
secuencia de apertura para el cajón en cuestión y que funcione, ¿se
entiende?, ingenuo de mi he intentado esto:

OPEN_DRAWER = "Chr(&H1B) & 'p' & Chr(0) & Chr(100) & Chr(250)"

Pero claro no funciona.

Gracias de antemano

Preguntas similare

Leer las respuestas

#1 Eduardo A. Morcillo [MS MVP VB]
17/09/2004 - 20:26 | Informe spam
Por ejemplo en el registro, en un fichero, en el app.config, guardar
la secuencia de apertura para el cajón en cuestión y que funcione, ¿se
entiende?, ingenuo de mi he intentado esto:

OPEN_DRAWER = "Chr(&H1B) & 'p' & Chr(0) & Chr(100) & Chr(250)"



Quitale las comillas. Lo que quieres guardar no es esa cadena sino la cadena
resultado de la concatenacion.

OPEN_DRAWER = Chr(&H1B) & "p" & Chr(0) & Chr(100) & Chr(250)

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo
Respuesta Responder a este mensaje
#2 Leonardo Azpurua
17/09/2004 - 20:51 | Informe spam
"dgironal" escribió en el mensaje
news:%
Muy buenas, el problema es el siguiente:

Tengo varios cajones portamonedas (una especie de caja registradora para
meter monedas y billetes), cada uno de ellos se abre con una combinación
diferente, ejemplo:

(se abren através del puerto paralelo, o serie, conectado con una


impresora
de tickets, , un ROLLO!!!)

Cajon de la Marca UNA: oStreamWrite.WriteLine(Chr(27) + Chr(112) +
Chr(1))
Cajon de la Marca OTRA: oStreamWrite.WriteLine(Chr(27) + "p" + Chr(0) +
Chr(25) + Chr(250))
Cajon de la Marca OTRO: oStreamWrite.WriteLine(Chr(&H1B) & "p" & Chr(0)


&
Chr(100) & Chr(250))
etc, etc,...

No tengo problemas para abrirlos, el bloqueo biene por lo siguiente (y


debe
ser una tontería):
¿Cómo almaceno la secuencia de apertura?, es decir

oStreamWrite.WriteLine(OPEN_DRAWER)

Por ejemplo en el registro, en un fichero, en el app.config, guardar la
secuencia de apertura para el cajón en cuestión y que funcione, ¿se
entiende?, ingenuo de mi he intentado esto:

OPEN_DRAWER = "Chr(&H1B) & 'p' & Chr(0) & Chr(100) & Chr(250)"

Pero claro no funciona.



Hola, DGironal:

La funcion siguiente (escrita con VB5; no dudo que se pueda hacer mejor con
.NET -incluso con el propio VB5) convierte una secuencia del tipo
"\065\066\067" en "ABC".

De modo que si llamas a stTranslatre("\027p\000\100\250") -un valor que
puedes perfectamente guardar en el registro o en el archivo de
configuración- obtendrás el resultado deseado:

Public Function stTranslate(stinString As String) As String
Dim stRetVal As String, NextCh As String, stBuff As String, i As Integer, l
As Integer, j As Integer
l = Len(stinString)
stRetVal = "": NextCh = "": stBuff = ""
i = 1
Do While i <= l
NextCh = Mid(stinString, i, 1)
i = i + 1
If NextCh = "\" Then
stBuff = Mid(stinString, i, 3)
i = i + 3
stRetVal = stRetVal & Chr(Val(stBuff))
Else
stRetVal = stRetVal & NextCh
End If
Loop
stTranslate = stRetVal
End Function

Salud!

Leonardo
mvp vb
Respuesta Responder a este mensaje
#3 dgironal
20/09/2004 - 09:10 | Informe spam
Muchísimas gracias, creo y esto es algo personal, que nunca se deja de
aprender, yo el primero, de nuevo gracias!!!
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida