Пример #1
0
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;
}
Пример #2
0
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;
}