M
also der mit dem memcmp findet nichts.
ich hab davor schonmal was geschrieben, und der findet eben auch was, wenn die zeilen nicht direkt aufeinander folgend vorkommen.
if(strcmp(argv[3],"CMD")==0) //Search: CMD+Bank
{
size_t sizeA, sizeB, i;
char *bufA, *bufB;
fseek (orig_file, 0L, SEEK_END);
fseek (search_file, 0L, SEEK_END);
sizeA = ftell(search_file);
sizeB = ftell(orig_file);
bufA = (char*)malloc (sizeA);
bufB = (char*)malloc (sizeB);
fseek (search_file, 0L, SEEK_SET);
fseek (orig_file, 0L, SEEK_SET);
fread (bufA, 1, sizeA, orig_file);
fread (bufB, 1, sizeB, search_file);
for (i = 0; i <= (sizeB-sizeA); i++)
{
if (!memcmp(bufA, bufB+i, sizeA))
{
++num;
printf ("%d. Treffer gefunden ab Position %d\n",num, i);
}
}
printf("Insgesamt %d Treffer gefunden\n",num);
free (bufA);
free (bufB);
}
und mein alter:
switch(mode)
{
case 1:
if(strncmp(orig_line,search_line,49)==0)
{
if(fgets(search_line,MAX_LINE_LEN,search_file)==NULL)
{
rewind(search_file);
fgets(search_line,MAX_LINE_LEN,search_file);
num = num + 1;
printf("# %i.Match in Line %d \n",nline);
if(argc == 5)
{
fprintf(log_file,"Sequence found in Line %d \n",nline);
}
}
}