Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Фаилы в С/C++.

31K
12 мая 2008 года
snoop_lan
11 / / 05.04.2008
Привет всем .
Помогите пожалуйста , очень надо,написать функцию удаление строки из файла.
Мой вариант но удаление не получается и не перезаписывается.
Исправьте пожалуйста .

Код:
void DEL()
{
  FILE *F;
  char Country[20];
PRINT();
printf("\n");

  printf("\nVvedite Naimenovanie udaleaemoi strani>>"); gets(Country);
tovar=fopen(FileName,"rt");
{
   if(!tovar)
     {
      textcolor(4);
      cputs("Fail ne mojet biti otkrit dlea udaleniea.\n");
      textcolor(15); getch();return;
     }

           while (!feof(tovar))
              {
               fscanf(tovar,"%s%s%d",&tov.strana,&tov.siriio,&tov.obiom);
              }


//....................udalenie..............................???

F=fopen("d:\\erase_file", "at+");
{
     {  if(!F)
        {
         textcolor (4);
         cprintf("Fail ne mojet biti otkriti delea perezapisi.\n");getch();
         textcolor(7);  return;
        }

       while(!feof(tovar))
        {
         fprintf(F,"%-10s     %-10s      %10d      \n",
                 tov.strana,
                 tov.siriio,
                 tov.obiom);
        }
      }


  if(fclose(tovar)== EOF){printf("FAil ne bil zakrit.");getch();}
  }
if(fclose(F)== EOF){printf("FAil ne bil zakrit.");getch();}
 }

                  /* udalenie faila, i novoe imea failu */
                   remove(FileName);
                   rename("d:\\erase_file", FileName);

}
1
13 мая 2008 года
kot_
7.3K / / 20.01.2000
Для удаления строки из файла (в общем случае) необходимо считать все строки из файла, кроме той, которую надо удалить - и заново их в файл записать.
Код который вы превели никакого отношения к описаной задаче не имеет - вероятно тема была создана с целью получить готовое решение. В связи с этим тема закрываеться - все вопросы мне в ЛС или ПЛ (личные или публичные сообщения) или в асю.
Если мое предположение не будет опровергнуто в течении 3-х суток с момента данного сообщения топикстартеру будет выдано нарушение в двойном размере.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог