Autor
|
Tema: [Duda] Impresion stdprn (Leído 6,345 veces)
|
apoeti
Desconectado
Mensajes: 81
|
Hola. ¿Cómo puedo limitar el número de líneas por página al imprimir un archivo por stdprn? Tengo que imprimir un archivo por la impresora poniendo solo 55 líneas por página. Ya sé que se pueden pasar los archivos a la impresora con fprintf, previamente cogiendo todos los caracteres del archivo con fgets(yo por lo menos, lo hago así). Así que la cuestión es solo la antes planteada, pero si me pasáis un código completo que me pueda servir para aprender, pues mejor.
Saludos.
|
|
|
En línea
|
|
|
|
|
apoeti
Desconectado
Mensajes: 81
|
He estado pensando y creo que sería fácil si conociera cuántos caracteres caben en una línea de un fóleo DIN A4. Creo que ese valor sería la clave ¿Alguna idea?
|
|
|
En línea
|
|
|
|
avesudra
Desconectado
Mensajes: 724
Intentando ser mejor cada día :)
|
He estado pensando y creo que sería fácil si conociera cuántos caracteres caben en una línea de un fóleo DIN A4. Creo que ese valor sería la clave ¿Alguna idea?
Depende de los márgenes , del tamaño de la letra...
|
|
|
En línea
|
Regístrate en
|
|
|
apoeti
Desconectado
Mensajes: 81
|
Ok, vamos, que está dificilillo, aunque la idea era que fuera para texto plano. Bueno, ya que he abierto un tema, hago otra pregunta ¿Qué fallo tiene este código? /* Copia de archivo de texto cambiando minúsculas por mayúsculas. */ #include <stdio.h> FILE copia_mayus(FILE *fp, FILE *fp_nuevo); main() { char filename[40], filename_nuevo[40]; char contenido[200]; FILE *fp, *fp_nuevo; printf("Introduce la ruta del archivo a copiar: "); printf("Introduce la ruta del archivo nuevo: "); fp_nuevo =fopen(filename_nuevo ,"w"); fp_nuevo=copia_mayus(fp, fp_nuevo); fgets(contenido , 200, fp ); } FILE copia_mayus(FILE *fp, FILE *fp_nuevo) { char caracter; while(caracter!=EOF) { if((caracter=>61)&(caracter=<121)) { fprintf(fp_nuevo , "%c", caracter -32); } else { } } return fp_nuevo; }
Me dice que hay un error al asignar los tipos (cuando asigno el valor de retorno de mi función personalizada a fp_nuevo, dice que no son compatibles).
|
|
|
En línea
|
|
|
|
avesudra
Desconectado
Mensajes: 724
Intentando ser mejor cada día :)
|
Estás retornando FILE en vez de FILE* , además , en la función copia mayus tienes un error de sintaxis como casas jajaja mira: Este es tu código: if((caracter=>61)&(caracter=<121))
Y este es tu código corregido: if((caracter>=61)&&(caracter<=121))
El and debe de ser lógico... , los operadores de comparación estaban al revés.Y he añadido para que coja el filename_nuevo que no lo tenías puesto , hé aquí tu código: /* Copia de archivo de texto cambiando minúsculas por mayúsculas. */ #include <stdio.h> FILE* copia_mayus(FILE *fp, FILE *fp_nuevo); main() { char filename[40], filename_nuevo[40]; char contenido[200]; FILE *fp, *fp_nuevo; printf("Introduce la ruta del archivo a copiar: "); printf("Introduce la ruta del archivo nuevo: "); fp_nuevo =fopen(filename_nuevo ,"w"); fp_nuevo=copia_mayus(fp, fp_nuevo); fgets(contenido , 200, fp ); } FILE* copia_mayus(FILE *fp, FILE *fp_nuevo) { char caracter; while(caracter!=EOF) { if(caracter>=61&&caracter<=121) { fprintf(fp_nuevo , "%c", caracter -32); } else { } } return fp_nuevo; }
|
|
« Última modificación: 5 Septiembre 2012, 21:31 pm por avesudra »
|
En línea
|
Regístrate en
|
|
|
rir3760
Desconectado
Mensajes: 1.639
|
Bueno, ya que he abierto un tema, hago otra pregunta ¿Qué fallo tiene este código? /* Copia de archivo de texto cambiando minúsculas por mayúsculas.
*/ Si como indica el enunciado el objetivo es tomar un texto y convertirlo a mayúsculas la primera pregunta que viene a la mente es: ¿Porque comparas con el rango 61 .. 121? Tomando como base el programa de avesudra la función se puede reducir a: #include <ctype.h> FILE *copia_mayus(FILE *fp, FILE *fp_nuevo) { int ch; /* getchar et al retornan un "int" */ while ((ch = fgetc(fp )) != EOF ) return fp_nuevo; }
Un saludo
|
|
|
En línea
|
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly. -- Kernighan & Ritchie, The C programming language
|
|
|
avesudra
Desconectado
Mensajes: 724
Intentando ser mejor cada día :)
|
Si como indica el enunciado el objetivo es tomar un texto y convertirlo a mayúsculas la primera pregunta que viene a la mente es: ¿Porque comparas con el rango 61 .. 121?
Tomando como base el programa de avesudra
El programa es suyo jajajaja lo digo porque no me gusta eso de que haya corregido algo y ya el codigo es mio , es verdad yo tampoco entiendo para que lo compara , en todo caso sería comparar si estuviese desde 97 a 122 que son las minusculas y si esta entre ellas le resta 32 para ponerlas en mayusculas, hombre no lo mates , que con eso que ha hecho en vez de utilizar la funcion toupper hace la suya propia y asi aprende jejeje ¡Un saludo y buena observacion!
|
|
|
En línea
|
Regístrate en
|
|
|
apoeti
Desconectado
Mensajes: 81
|
Gracias por las respuestas, me sirvieron un montón. Eso sí, ¿para qué sirve la función toupper()? Otra cosilla, yo había puesto un operador de bit(&), ¿no?
Saludos.
|
|
« Última modificación: 6 Septiembre 2012, 12:39 pm por apoeti »
|
En línea
|
|
|
|
avesudra
Desconectado
Mensajes: 724
Intentando ser mejor cada día :)
|
Gracias por las respuestas, me sirvieron un montón. Eso sí, ¿para qué sirve la función toupper()? Otra cosilla, yo había puesto un operador de bit(&), ¿no?
Saludos.
La funcion toupper sirve para pasar el caracter que le pases a mayusculas, claro los operadores de bit no se utilizan para comparar , ten cuidado con eso ¡Un saludo!
|
|
|
En línea
|
Regístrate en
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Impresion en VB
Programación Visual Basic
|
valtheran
|
1
|
1,369
|
30 Septiembre 2006, 16:13 pm
por CeLaYa
|
|
|
DUDA impresion caracter a caracter con retardo (C)
Programación C/C++
|
el_nene_kpy
|
8
|
14,737
|
5 Febrero 2012, 03:43 am
por Xandrete
|
|
|
Duda en la impresion en pantalla
Programación C/C++
|
EdgarKrieger
|
3
|
5,535
|
27 Noviembre 2013, 20:25 pm
por EdgarKrieger
|
|
|
Duda sobre impresion [Resuelto]
PHP
|
elezekiel
|
2
|
3,550
|
21 Agosto 2017, 05:32 am
por elezekiel
|
|
|
Duda general Impresión por VPN W10
Windows
|
SrMcLister
|
0
|
2,628
|
16 Junio 2019, 17:17 pm
por SrMcLister
|
|