Форум программистов, компьютерный форум, киберфорум
Наши страницы

Удаление строки из файла\либо удаление самого файла. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Выборка из массива http://www.cyberforum.ru/cpp-beginners/thread37319.html
У меня есть программка, которая выполняет,при длине L четной, то удаляются 2 первых и 2 последних символа; #include<iostream.h> #include<string.h> #include<stdlib.h> #include<stdio.h>...
C++ Невозможно поместить строку map<string,float>pairs_map; в .h-файл Делаю проект,есть 3 файла : // project_header.h #ifndef PROJECT_HEADER_H_INCLUDED #define PROJECT_HEADER_H_INCLUDED #include <iostream> #include <map> #include <iterator> #include <string>... http://www.cyberforum.ru/cpp-beginners/thread37318.html
C++ Строковый ввод-вывод. С++
У меня возникла проблема с заданием. Создать текстовый файл F1 не менее, чем из 10 строк и записать в него информацию 1) Скопировать из файла F1 в файл F2 все строки, которые содержат только...
C++ Переход по ссылке
Люди кто знает как в программу добавить переход по ссылке html напимер нажимаеш на button и переходит к конкретной ссылке ;)
C++ Метод Зейделя http://www.cyberforum.ru/cpp-beginners/thread37291.html
Ребята, каждый из вас уже делал лабы по матрицам. Если у кого-то есть готовая лаба по методу Зейделя, прошу, напишите ее тут и желательно с комментариями. >>Тут<< можно почитать о методе Зейделя...
C++ Объявление шаблона ассоциативного массива map Необходимо объявить шаблон map таким образом,чтобы в map записывалось второе значение согласно шаблону.Например,у нас пары значений string-int,string-double.Как можно объявить шаблон на такой массив?... подробнее

Показать сообщение отдельно
groozzz
0 / 0 / 0
Регистрация: 12.05.2009
Сообщений: 26

Удаление строки из файла\либо удаление самого файла. - C++

30.05.2009, 15:12. Просмотров 7272. Ответов 9
Метки (Все метки)

День добрый, вот функция(используемые переменные объявленны ранее):
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
void delete_cruise()
{
    FILE *fout;
open_file("abase.dat");
    char *result;   
    char line[255], find_str[255];
fin=fopen("abase.dat","rt");
    if(fin==NULL)
    cout<<"ЋиЁЎЄ*! “Є*§***л© д*©« *Ґ **©¤Ґ*."<<"\n";//Сообщение об ошибке, если файл не найден
    else
    {
        cout<<"‚ўҐ¤ЁвҐ *®¬Ґа ३б*:"<<char(9);//Введите номер рейса:
        input_part(&Num[0],10);
        while((result=fgets(line,255, fin))!=NULL)
        {
        int len=strlen(line);
                while(len>=0)
                {
                    find_str[len]=line[len];
                    len--;
                }
        strtok(find_str,"   ");
        if(!strstr(find_str, Num))
            {
                printf("%s\n",result);//на время, потом заменю на запись в файл
            }
        }
    fclose(fin);
    remove("abase.dat"); //не удаляет.
    }
 
}
Проблема в следующем. Несмотря на fclose - файл не удаляется.
Вообще задача состоит в удалении строки с найденным значением Num(в первом поле).
Пробовал через tmpfile() создать новый файл и вести запись строк не удовлетворяющих условию поиска в него, сообщений об ошибке нет, но при попытке чтения из этого "временного файла" не выводит никакой информации, какие-то 3-4 посторонних символа и всё.

З.Ы. Как показала практика - невозможно открыть файл для чтения и сразу писать в него? То есть я не могу найденную строку удалить из исходного файла, не прибегая к посторонним?
Собственно, перепробовав множество различных вариантов - остановился на создании нового фала, в который будет производится запись, а затем удалении оригинала и переименовании созданного.

Добавлено через 17 минут 15 секунд
Так, по поводу удаления разобрался, дело было в функции
C++
1
open_file("abase.dat");
которая конфликтовала с простым открытием. После этого файл закрылся. Теперь интересует только возможность работы именно с временным, а не промежуточным файлом(tmpfile()) или по возможности редактировании текущего
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru