Microsoft Windows CRD file print program
zemon at fritz.UUCP
zemon at fritz.UUCP
Sun Jul 13 07:48:10 AEST 1986
I got tired of waiting for the cardfile program to churn out a
simple cardfile on my dot matrix printer. It wastes an
incredible amount of time (and paper) on the cute graphics
boxes. Soooo, I cranked out this little program to just print
the text and be done with it. Enjoy.
Cheers,
-- Art Z.
/*
* crdprint - print a Microsoft Windows cardfile
*
* This program will print a cardfile in a simple fashion
* on any ASCII printer. It does not bother drawing the
* cute (and timeconsuming) boxes around the cards.
*
* Art Zemon July 12, 1986
*
* CompuServe: 72406,3275
* UUCP: ucbvax!trwrb!felix!zemon
*/
#include <stdio.h>
struct header {
char fill1[3];
short ncards;
char fill2[6];
} header;
struct cardheader {
long offset;
char fill1;
char text[47];
} cardheader;
struct cardbody {
short fill1;
short bytes;
} cardbody;
main(argc, argv)
int argc;
char *argv[];
{
FILE *h, *b; /* we will open the card file
twice, once for the headers &
once for the bodies of the cards */
char text[256];
int card;
static char separator[] = "----------------------------------------";
if (argc != 2) {
fputs("Usage: crdprint {card-file}\n", stderr);
fputs("\tCrdprint will display the entire cardfile in a simple format.\n", stderr);
exit(1);
}
if ((h = fopen(argv[1], "r")) == NULL) {
perror(argv[1]);
exit(1);
}
b = fopen(argv[1], "r");
/*
* Read the file header to determine how many cards there are.
*/
fread(&header, sizeof header, 1, h);
/*
* Loop once for each card.
*/
for (card = 1; card <= header.ncards; ++card) {
/*
* Read the cardheader to determine the location of the body.
*/
fread(&cardheader, sizeof cardheader, 1, h);
/*
* Seek to the location of the body and read its length.
*/
fseek(b, cardheader.offset, 0);
fread(&cardbody, sizeof cardbody, 1, b);
/*
* Now read the text of the card's body.
*/
fread(text, 1, cardbody.bytes, b);
/*
* Print everything.
*/
puts(separator);
puts(cardheader.text);
fwrite(text, 1, cardbody.bytes, stdout);
putchar('\n');
}
puts(separator);
exit(0);
}
--
-- Art Zemon
FileNet Corp.
...! {decvax, ihnp4, ucbvax} !trwrb!felix!zemon
More information about the Comp.sources.unix
mailing list