Códigos De Escape


Objetivo: Códigos De Escape
Hola,

Con el objeto de facilitar la lectura de código y de simplificar estoy intentando utilizar costantes para referirme a las combinaciones de los códigos de escape para una impresora térmica.

ejemplo

PUBLIC CONST escNewLine AS String = "Chr$(10)" ' NEW line(LF LINE feed)
PUBLIC CONST escUnerlineOn AS String = "Chr(27) & Chr(45) & Chr(1)" '/ Unerline On
PUBLIC CONST escUnerlineOnx2 AS String = "Chr(27) & Chr(45) & Chr(2)" '/ Unerline On x 2
PUBLIC CONST escUnerlineOff AS String = "Chr(27) & Chr(45) & Chr(0)" '/ Unerline Off
PUBLIC CONST escBoldOn AS String = "Chr(27) & Chr(69) & Chr(1)" '/ Bold On
PUBLIC CONST escBoldOff AS String = "Chr(27) & Chr(69) & Chr(0)" '/ Bold Off
PUBLIC CONST esc16Cpi AS String = "Chr(27) & Chr(77) & Chr(48)" '/ Font A - Normal Font
PUBLIC CONST esc20Cpi AS String = "Chr(27) & Chr(77) & Chr(49)" '/ Font B - Small Font
PUBLIC CONST escFeedAndCut AS String = "Chr$(27) & Chr$(109)" '/ Partial Cut
PUBLIC CONST escAlignLeft AS String = "Chr(27) & Chr(97) & Chr(48)" '/ Align Text TO the Left
PUBLIC CONST escAlignCenter AS String = "Chr(27) & Chr(97) & Chr(49)" '/ Align Text TO the Center
PUBLIC CONST escAlignRight AS String = "Chr(27) & Chr(97) & Chr(50)" '/ Align Text TO the Right



DIM hFile AS File
IF Exist("/dev/ttyS0") THEN
OPEN "/dev/ttyS0" FOR WRITE AS #hFile
PRINT #hFile, escFeedAndCut
CLOSE #hFile
ELSE
Message.Error("El puerto de la impresora no existe, el cajón no puede abrirse, ¡coja la llave!")
END IF

pero el resultado es que me imprime "Chr$(27) & Chr$(109)"

¿Hay alguna manera o función para convertir el string a códigos esc/pos?

Gracias anticipadas

Saludos

Objetivo: Re: Códigos De Escape
Hola,

Se me olvidó poner que si lo intento poner así

PUBLIC CONST euro AS String = Chr(27) & Chr(116) & Chr(19) & Chr(213)

me da error de sistaxis.

Resumo: si lo entrecomillo lo toma como texto puro y si no me da error de sintaxis.

¿alguna idea de cómo solucionarlo?


En cambio si lo meto dentro de una función funciona perfectamente. Os aporto una función para manejar acentos, eñes y otros caracteres.
dentro de esta función si que puedo igualar un string a Chr$(27) & Chr$(116) & Chr$(19) & Chr$(160) .

PUBLIC FUNCTION cambialetra(NOMBREesc AS String) AS String
DIM Acentu AS String
DIM busqueda AS String
DIM I AS Integer
DIM OCUPA1 AS Integer
DIM pos AS Integer

Acentu = Chr$(27) & Chr$(116) & Chr$(19) & Chr$(160)
OCUPA1 = Len(NOMBREesc)
FOR I = 1 TO OCUPA1
pos = InStr(NOMBREesc, "á", I)
IF pos > 0 THEN
NOMBREesc = Left(NOMBREesc, pos - 1) & Acentu & Mid(NOMBREesc, pos + 1, OCUPA1)
I = pos
ENDIF
NEXT

Acentu = Chr(27) & Chr(116) & Chr(19) & Chr(130)
OCUPA1 = Len(NOMBREesc)
FOR I = 1 TO OCUPA1
pos = InStr(NOMBREesc, "é", I)
IF pos > 0 THEN
NOMBREesc = Left(NOMBREesc, pos - 1) & Acentu & Mid(NOMBREesc, pos + 1, OCUPA1)
I = pos
ENDIF
NEXT

Acentu = Chr(27) & Chr(116) & Chr(19) & Chr(161)
OCUPA1 = Len(NOMBREesc)
FOR I = 1 TO OCUPA1
pos = InStr(NOMBREesc, "í", I)
IF pos > 0 THEN
NOMBREesc = Left(NOMBREesc, pos - 1) & Acentu & Mid(NOMBREesc, pos + 1, OCUPA1)
I = pos
ENDIF
NEXT

Acentu = Chr(27) & Chr(116) & Chr(19) & Chr(162)
OCUPA1 = Len(NOMBREesc)
FOR I = 1 TO OCUPA1
pos = InStr(NOMBREesc, "ó", I)
IF pos > 0 THEN
NOMBREesc = Left(NOMBREesc, pos - 1) & Acentu & Mid(NOMBREesc, pos + 1, OCUPA1)
I = pos
ENDIF
NEXT

Acentu = Chr(27) & Chr(116) & Chr(19) & Chr(163)
OCUPA1 = Len(NOMBREesc)
FOR I = 1 TO OCUPA1
pos = InStr(NOMBREesc, "ú", I)
IF pos > 0 THEN
NOMBREesc = Left(NOMBREesc, pos - 1) & Acentu & Mid(NOMBREesc, pos + 1, OCUPA1)
I = pos
ENDIF
NEXT

Acentu = Chr(27) & Chr(116) & Chr(19) & Chr(129)
OCUPA1 = Len(NOMBREesc)
FOR I = 1 TO OCUPA1
pos = InStr(NOMBREesc, "ü", I)
IF pos > 0 THEN
NOMBREesc = Left(NOMBREesc, pos - 1) & Acentu & Mid(NOMBREesc, pos + 1, OCUPA1)
I = pos
ENDIF
NEXT

Acentu = Chr(27) & Chr(116) & Chr(19) & Chr(137)
OCUPA1 = Len(NOMBREesc)
FOR I = 1 TO OCUPA1
pos = InStr(NOMBREesc, "ë", I)
IF pos > 0 THEN
NOMBREesc = Left(NOMBREesc, pos - 1) & Acentu & Mid(NOMBREesc, pos + 1, OCUPA1)
I = pos
ENDIF
NEXT

Acentu = Chr(27) & Chr(116) & Chr(19) & Chr(148)
OCUPA1 = Len(NOMBREesc)
FOR I = 1 TO OCUPA1
pos = InStr(NOMBREesc, "ö", I)
IF pos > 0 THEN
NOMBREesc = Left(NOMBREesc, pos - 1) & Acentu & Mid(NOMBREesc, pos + 1, OCUPA1)
I = pos
ENDIF
NEXT

Acentu = Chr(27) & Chr(116) & Chr(19) & Chr(165)
OCUPA1 = Len(NOMBREesc)
FOR I = 1 TO OCUPA1
pos = InStr(NOMBREesc, "ñ", I)
IF pos > 0 THEN
NOMBREesc = Left(NOMBREesc, pos - 1) & Acentu & Mid(NOMBREesc, pos + 1, OCUPA1)
I = pos
ENDIF
NEXT
RETURN NOMBREesc
END FUNCTION


Saludos


Página 1 de 1


  
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario

   

Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Página generada en:: 0.4067s (PHP: -74% SQL: 174%)
Consultas SQL: 45 - Debug off - GZIP Activado