unsigned find1dlg(unsigned start) { static char ftext[12] = ""; strcpy(str, ftext); filledframe(10,10,16,4); tprint(10,10," find string ", FRM_HEADER); tprint(11,12,"text:", FFRAME_INSIDE); if (!inputhex(17,12,8,false)) return -1; strcpy(ftext, str); unsigned len = strlen(ftext); unsigned i; //Alone Coder 0.36.7 for (unsigned ptr = memadr(start+1); ptr != start; ptr = memadr(ptr+1)) { for (/*unsigned*/ i = 0; i < len; i++) if (editrm(memadr(ptr+i)) != ftext[i]) break; if (i == len) return ptr; } tprint(11,12," not found ", FFRAME_ERROR); debugflip(); while (!process_msgs()); return -1; }
int main(int argc, char **argv) { int i; int num_read; int num_left; char *input_filename = NULL; char *output_filename = NULL; struct stat stbuf; char *buf; char *p; FILE *in_file; FILE *out_file; for (i = 1; i < argc; i++) { if (argv[i][0] != '-') usage(); if (argv[i][1] == 'i') { if (argv[i][2] != '\0') input_filename = &argv[i][2]; else input_filename = argv[++i]; } else if (argv[i][1] == 'o') { if (argv[i][2] != '\0') output_filename = &argv[i][2]; else output_filename = argv[++i]; } } if (input_filename == NULL || output_filename == NULL) usage(); if (stat(input_filename, &stbuf) != 0) { fprintf(stderr, "mkmsghdr: Unable to stat %s: %s\n", input_filename, strerror(errno)); exit(1); } if ((buf = (char*)malloc(stbuf.st_size + 1)) == NULL) { fprintf(stderr, "mkmsghdr: Unable to allocate %d bytes\n", stbuf.st_size); exit(1); } if ((in_file = fopen(input_filename, "r")) == NULL) { fprintf(stderr, "mkmsghdr: Unable to open %s for reading: %s\n", input_filename, strerror(errno)); exit(1); } p = buf; num_left = stbuf.st_size; while (num_left > 0) { num_read = fread(buf, 1, num_left, in_file); if (num_read == 0) break; p += num_read; num_left -= num_read; } fclose(in_file); buf[stbuf.st_size] = '\0'; if ((out_file = fopen(output_filename, "wb")) == NULL) { fprintf(stderr, "mkmsghdr: Unable to open %s for writing: %s\n", output_filename, strerror(errno)); exit(1); } process_msgs(buf, out_file); return 0; }