Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.04.2009, 20:32   #1
Nina+
Пользователь
 
Регистрация: 19.11.2008
Сообщений: 39
По умолчанию Структуры и файлы С

Как можно удалить структуру из бинарного файла?
Код:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define N 40
#define M 21
#define L 5
main(){
struct sess
       {char fam[M];
        int ball[L];
        };
         char name[20],fam[21],s[21];
      FILE* f;
      int i;
      sess stud;
      printf("Vvedite imya fayla\n");
      scanf("%s",name);      
      f=fopen(name,"r+b");
      printf("Vvedite fam stud\n");
      scanf("%s",fam); 
      i=0;   
      while(stud.fam[0]!='.'){
         fread(&stud,sizeof(sess),1,f); 
         if (!strcmp(stud.fam,fam)){   
         fseek(f,i*sizeof(stud),SEEK_SET);
         break;
         }      
         i++;             
         }
      while(stud.fam[0]!='.'){                 
          //здесь не знаю что написать
         }
         fclose(f); 
         }
Nina+ вне форума Ответить с цитированием
Старый 16.04.2009, 21:49   #2
counter
Участник клуба
 
Регистрация: 18.10.2008
Сообщений: 1,409
По умолчанию

наверное нужно прочитать весь файл в массив структур или динамический список , найти там нужную структуру , удалить ее и перезаписать файл
counter вне форума Ответить с цитированием
Старый 16.04.2009, 21:59   #3
Nina+
Пользователь
 
Регистрация: 19.11.2008
Сообщений: 39
По умолчанию

А можно просто перезаписать все структуры, следующие за удаляемой, сдвигая текущую позицию влево (на единицу)?
Nina+ вне форума Ответить с цитированием
Старый 16.04.2009, 22:10   #4
counter
Участник клуба
 
Регистрация: 18.10.2008
Сообщений: 1,409
По умолчанию

их все равно нужно будет считывать
файл - это не массив
counter вне форума Ответить с цитированием
Старый 16.04.2009, 22:16   #5
Nina+
Пользователь
 
Регистрация: 19.11.2008
Сообщений: 39
По умолчанию

Цитата:
Сообщение от counter Посмотреть сообщение
их все равно нужно будет считывать
файл - это не массив
это я понимаю...
просто с динамическими типами данных в Си пока не разбиралась...
Nina+ вне форума Ответить с цитированием
Старый 16.04.2009, 22:20   #6
counter
Участник клуба
 
Регистрация: 18.10.2008
Сообщений: 1,409
По умолчанию

в winapi можно спроецировать файл в память и работать с ним как с массивом
counter вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Структуры и файлы. Проблема с сохранением. Hacker19_90 Общие вопросы C/C++ 2 20.03.2009 17:35
Пишу программу которая ищет файлы на компьютере ! Как лучше организовать структуры данных ? asked86 Общие вопросы Delphi 13 14.12.2008 19:33
Структуры в С++ bloo[d] Помощь студентам 1 30.01.2008 22:27
два вредных вопроса:про асю и прикриплёные файлы файлы steck Свободное общение 3 17.06.2007 14:53