datei auslesen

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • datei auslesen

    hallo,

    ich habe eine datei in der datensätze abgelegt werden. diese datensätze will ich in einem Nummernbereich auslesen. soweit so gut. den unten angefügte code funktoniert auch soweit. aber warum muss ich die leseposition zweimal zurücksetzen um die daten vortlaufen ausgegeben zu bekommen?

    ohne das doppelte fseek wird mir immer nur jeder zweite eintrag gezeigt.... habe ich in dem code einen fehler? sodass der immer einen datensatz überspringt?

    Quellcode

    1. void daten_del (FILE *ufp, Satztyp usatz, int low, int high)
    2. {
    3. fseek(ufp, 0, SEEK_SET);
    4. fread(&usatz, sizeof(usatz),1,ufp);
    5. while(!feof(ufp))
    6. {
    7. if (usatz.a_nummer >= low && usatz.a_nummer <= high){
    8. fseek(ufp, -((long)sizeof(usatz)) ,SEEK_CUR);
    9. fseek(ufp, -((long)sizeof(usatz)) ,SEEK_CUR);
    10. printf("ArchivNr.: %d\n", usatz.a_nummer);
    11. printf("Interpret: ");
    12. puts(usatz.interpret);
    13. printf("Titel: ");
    14. puts(usatz.titel);
    15. printf("del?\n0=keine aktion ; 1=del :");
    16. fflush(stdin);
    17. gets(&usatz.LK);
    18. fwrite(&usatz, sizeof(usatz), 1, ufp);
    19. fseek(ufp, sizeof(usatz),SEEK_CUR);
    20. }
    21. fread(&usatz, sizeof(usatz),1,ufp);
    22. }
    23. }
    Alles anzeigen