Subj : Re: DOS question (revised) To : borland.public.cpp.borlandcpp From : waking@idirect.com (Wayne A. King) Date : Mon Jul 14 2003 10:04 pm On Mon, 14 Jul 2003 19:52:29 GMT, waking@idirect.com (Wayne A. King) wrote: >Hmmm, pseudo-code? Just so you don't think I'm only an armchair critic, here's a fleshed-out example of what I expect you were suggesting. N.B. - Error checking of fread/fwrite omitted for brevity. #include #include #include void SaveScreen(FILE *fptr, int left, int top, int right, int bottom); void ReadScreen(FILE *fptr); extern _stklen = 8192; int main() { FILE *ptr = fopen("scrndmp", "wb"); if(!ptr) { fprintf(stderr, "Can't open file!\n"); return EXIT_FAILURE; } SaveScreen(ptr, 1, 1, 80, 25); fclose(ptr); getch(); clrscr(); getch(); ptr = fopen("scrndmp", "rb"); if(!ptr) { fprintf(stderr, "Can't open file!\n"); return EXIT_FAILURE; } ReadScreen(ptr); fclose(ptr); getch(); return EXIT_SUCCESS; } void SaveScreen(FILE *fptr, int left, int top, int right, int bottom) { int scn_image[132 * 50]; gettext(left, top, right, bottom, scn_image); fwrite(&left, sizeof(int), 1, fptr); fwrite(&top, sizeof(int), 1, fptr); fwrite(&right, sizeof(int), 1, fptr); fwrite(&bottom, sizeof(int), 1, fptr); fwrite(scn_image, (right - left + 1), (bottom - top + 1) * sizeof(int), fptr); } void ReadScreen(FILE *fptr) { int scn_image[132 * 50], left, top, right, bottom; fread(&left, sizeof(int), 1, fptr); fread(&top, sizeof(int), 1, fptr); fread(&right, sizeof(int), 1, fptr); fread(&bottom, sizeof(int), 1, fptr); fread(scn_image, (right - left + 1), (bottom - top + 1) * sizeof(int), fptr); puttext(left, top, right, bottom, scn_image); } -- Wayne A. King (ba994@torfree.net, wayne.king@ablelink.org, waking@idirect.com, Wayne_A_King@compuserve.com) .