Clipper/FiveWin - Ayudadme Clipperos...!!!

 
Vista:

Ayudadme Clipperos...!!!

Publicado por CyberNet (15 intervenciones) el 17/05/2001 19:52:57
Soy nuevo en Clipper, pero tengo un monton de preguntas, que ojalá me las puedan contestar:
a) ¿Cómo puedo crear una PASSWORD para que aparezcan los * cuando pulse una tecla?...
b) ¿Cómo puedo imprimir un Listado a lo ancho en una impresora de carro angosto?.
c) ¿Cómo puedo imprimir en un puerto USB en MS/DOS?...

Debo contar que solamente trabajo con CA-Clipper 5.2e y BLINKER 5.1,
gracias por su posible ayuda...
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ayudadme Clipperos...!!!

Publicado por Alonso (45 intervenciones) el 18/05/2001 00:36:31
Saludos Amigo:

Si te parece bien, envíame de nuevo tu dirección postal
para remitirte un pequeño libro con diversas funciones para Clipper que quizá puedan ayudarte.

[email protected]
ó bien :
[email protected]

Un abrazo.

Alonso.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayudadme Clipperos...!!!

Publicado por skaigualker (221 intervenciones) el 18/05/2001 09:10:09
1).- Con la instruccion get no lo puedes hacer, tendras que crear una funcion donde ejecutes un bucle en el que aceptes datos del teclado con la funcion inkey() e inmediatamente a que el usuario pulse una tecla tu borres ese caracter de la pantalla y en su lugar pongas un "*". Inmediatamente concatenas el caracter que acaba de pulsar el usuario a una variable de tipo cadena. Este bucle lo repites hasta que el usuario pulse intro o escape, cuyos ascii son 13 y 27 respectivamente como creo que ya sabras.

2º) Para imprimir un listado en una impresora de carro angosto, (supongo que te refieres a una impresora de formato A3), no tienes nada que hacer en tu programa, tan solo imprimir lineas cuya ancho sea superior al de un A4.

3º) Hasta donde yo se, no puedes utilizar puertos USB en Ms-Dos, salvo que encuentres un programa que redirija la salida de otro puerto al puerto USB.

Saludos.-
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Rutinas para hacer...!!!

Publicado por CyberNet (15 intervenciones) el 18/05/2001 20:20:28
Gracias Manuel Alonso por todo tu apoyo y Skaigualker, pero me puedes enviar algunas rutinas para la password y la impresión a lo ancho...

RICHARD DONNELLY
Avda. Torreblanca 712 - Diego de Almagro - III Región de Atacama
CHILE
[email protected]
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Rutinas para hacer...!!!

Publicado por Alonso (45 intervenciones) el 19/05/2001 14:13:06


Amigo Richard: Ahi va una rutina lista para compilar que espero te resuelva el problema de la contraseña.

En cuanto a la impresion en horizontal no puedo por las prisas decirte nada en concreto. Algunas impresoras permiten configurar la impresion en vertical u horizontal. En las matriciales antiguas, yo lo resolvia habilkitando la impresion en comprimido.

Func Main()
Local nContador := 0
Local cNombre := Space(8) // N£mero de caracteres que tendr  la contrase¤a

Clear
@ 9,20 To 12,50 DOUBLE

// Mientras no se pulse ESC o nContador menor ¢ igual a 3...

While LastKey() <> 27 .AND. nContador <= 3
@ 10,24 Say 'CLave de acceso'
Encripta(@cNombre) // IRA MOSTRANDO LA CLAVE CON ASTERISCOS

// ­­OJO!! Es Case sensitive: Distingue entre may£sculas y min£sculas...

If Trim(cNombre) <> "RICHARD" // SI NO EXISTE...
@ 13,12 Say 'Acceso denegado. Usted no est  autorizado'
InKey(2)
@ 13,12 Clear To 13,60
nContador ++
Else
@13,12 Say 'Clave correcta'
Exit
End
End

// Si se intenta escribir la clave m s de 3 veces...

If nContador > 3
@ 13,12 Say 'No se permiten m s intentos, Se cancela...'
Inkey(2)
End

Return

//
Func Encripta(cCad1,cCar,nFila,nCol)
Local nLong, cCad1, nCont

Do Case
Case PCount() = 1
cCar := '*' // Por defecto, asterisco como sustituto
nFila := Row() // de caracter tecleado. Puedes poner el que quie
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Reenvio 2 Rutinas para hacer...!!!

Publicado por Alonso (45 intervenciones) el 19/05/2001 14:49:10
//
Func Encripta(cCad1,cCar,nFila,nCol)
Local nLong, cCad1, nCont

Do Case
Case PCount() = 1
cCar := '*' // Por defecto, asterisco como sustituto
nFila := Row() // de caracter tecleado. Puedes poner el que quieras.
nCol := Col()
Case PCount() = 2
nFila := Row()
nCol := Col()
End

nLong := Len(cCad1)
cCad1 := Space(0)
nCont := 1

@ nFila, nCol Say Space(nLong)
@ nFila, nCol Say Space(0)

While nCont <= nLong
cCad1 := AllTrim(cCad1) + Chr(InKey(0)) // Introduccion de la clave
If LastKey() = 13 .OR. LastKey() = 27 // Distingue mayusculas y minusculas
Exit
End
@ nFila, nCol + nCont - 1 Say cCar
nCont ++
End

Return

Supongo resultara legible.

Alonso.

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Rutinas para hacer...!!!

Publicado por alejandro gonzalez cardona (1 intervención) el 08/08/2001 18:27:34
me podrias mandar la rutina completa del password.

gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Reenvio Rutinas para hacer...!!!

Publicado por Alonso (45 intervenciones) el 19/05/2001 14:43:40
Func Main()
Local nContador := 0
Local cNombre := Space(8) // Numero de caracteres que tendr  la contraseña

Clear
@ 9,20 To 12,50 DOUBLE

// Mientras no se pulse ESC o nContador menor o igual a 3...

While LastKey() <> 27 .AND. nContador <= 3
@ 10,24 Say 'CLave de acceso'
Encripta(@cNombre) // IRA MOSTRANDO LA CLAVE CON ASTERISCOS

// ­­OJO!! Es Case sensitive: Distingue entre mayusculas y minusculas...

If Trim(cNombre) <> "RICHARD" // SI NO EXISTE...
@ 13,12 Say 'Acceso denegado. Usted no esta  autorizado'
InKey(2)
@ 13,12 Clear To 13,60
nContador ++
Else
@13,12 Say 'Clave correcta'
Exit
End
End

// Si se intenta escribir la clave mas de 3 veces...

If nContador > 3
@ 13,12 Say 'No se permiten mas intentos, Se cancela...'
Inkey(2)
End

Return NIL
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Rutinas para hacer...!!!

Publicado por skaigualker (221 intervenciones) el 21/05/2001 08:35:43
Te envio a tu correo la rutina que yo utilizo para pedir una contraseña, es similar a la que te muestra Alonso.

En cuanto a la impresion en una impresora de 132 columnas no hay ejemplo que enviar. Cuando tu imprimes en una impresora de 80 columnas (A4) y el ancho de la linea tiene mas de 80 caracteres, (estoy hablando en caso de no activar ningun tipo de letra especial), la impresora automaticamente imprime los primeros 80 caracteres en la linea y el resto los pasa a la siguiente linea. Bien pues la impresora de 132 caracteres hace esto mismo pero puede imprimir 132 caracteres en una linea. Pero tu en el programa no tienes nada que hacer ni que cambiar.

Ej. Si ejecutas los siguiente:

cadena:= "Lucas"+space(74)+"Skaigüalker"
set printert to lpt1
set device to print
?cadena

Si esto lo ejecutas en una impresora de 80 columnas, El nombre Lucas aparecera en una linea y Skaigüalker aparecera en la siguiente linea, pero si lo haces en una impresora de 132 columnas todo aparecera en la misma linea con 76 espacios en blanco de separacion.

Saludos.-
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar