> Dieser Variante hier ist die Größe des Offsets egal.

Meinst du damit z.B. 57 + 1024 oder 57 - 1024?

Mit dieser Version sollte das ebenfalls funktionieren:

#include <stdlib.h>
#include <stdio.h>

int main (int argc, char *argv[])
{
    if (argc != 2)
    {
        printf("usage: %s filename\n", argv[0]);
        exit(1);
    }
    else
    {
        FILE *file = fopen(argv[1],"r");
        
        if (file == NULL)
        {
            printf("Could not open file\n");
            exit(1);
        }
        else
        {
            int start = 0;
            int detect = 0;
            int c = 0;
            long int pos = 0;
            int offset = 0;
            
            while ((c = fgetc(file)) != EOF)
            {
                if (c == '\n')
                {
                    if(start)
                    {
                        printf("\n");
                    }
                    else
                    {
                        start = 1;
                    }
                }
                else
                {
                    if(start)
                    {
                        if(detect)
                        {
                            c+=offset;
                            printf("%c",c);
                        }
                        else
                        {
                            pos = ftell(file);
                            
                            while ((c = fgetc(file)) != EOF)
                            {
                                if (c == '\n')
                                {
                                    fseek(file,-4,SEEK_CUR);
                                    offset = '*' - fgetc(file);
                                    detect = 1;
                                    break;
                                }
                            }
                            
                            fseek(file,pos-1,SEEK_SET);
                        }
                    }
                }
            }
            
            fclose(file);
        }
    }
    
    return 0;
}

_______________________________________________
Talk-de mailing list
Talk-de@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-de

Antwort per Email an