Форум программистов, компьютерный форум CyberForum.ru

Сортировка\редактирование\удаление бинарного файла - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Шейкерная сортировка массива (в виде функции) http://www.cyberforum.ru/cpp-beginners/thread1176329.html
Выполнить сортировку целочисленного массива(поиск в массиве) из n элементов. Алгоритм сортировки(поиска) Шейкер-сортировка, оформить в виде функции.
C++ Описать объект "Matrix", содержащий методы для обработки двумерных массивов произвольной размерности Описать тип-объект MATRIX (матрица произвольной размерности M*N) и его методы: ввод матрицы; вывод матрицы; дублирование столбцов матрицы, где каждый элемент содержит только неповторяющиеся цифры. Описать тип и методы его потомка MATR (методы: дублирование строк матрицы, где количество нулей среди цифр всех чисел строки равно номеру строки; дублирование столбцов матрицы, где все элементы... http://www.cyberforum.ru/cpp-beginners/thread1176321.html
Сформировать массив В, элементами которого являются нули и единицы C++
В файле F матрица действительных чисел размером 3 * 6. Сформировать массив В, элементами которого являются нули и единицы. b = 1 Если все элементы i-го строки меньше действительного числа х и b=0 если хотя бы один элемент строки больше от х. #include "stdafx.h" #include "stdafx.h" #include <stdio.h> #include <conio.h> void main() {
Сумма факториалов C++
Помогите, пожалуйста, написать на языке C++ три варианта программы для решения задачи с помощью цикла с предусловием, цикла с постусловием и цикла с параметром соответственно. задача: 1!+2!+3!+...+n!
C++ Создать класс, описывающий квадрат и определить радиус круга http://www.cyberforum.ru/cpp-beginners/thread1176311.html
Доброго дня. Прошу помочь с заданием: Создать класс, описывающий квадрат. Определить радиус круга, описанного вокруг квадрата.
C++ Определить попадание произвольной точки в заштрихованную область Помогите пожалуйста с программой!) Задача:"Определить попадание произвольной точки в заштрихованную область"Язык С++ Заранее огромное спасибо!!!))) подробнее

Показать сообщение отдельно
anshelika
0 / 0 / 0
Регистрация: 04.11.2013
Сообщений: 54
15.05.2014, 11:13  [ТС]     Сортировка\редактирование\удаление бинарного файла
Это по принципу:
C++
1
2
3
4
5
6
 if (strcmp(fname, "Не выбран") == 0)
    {
        std::cout << "Файл не выбран!" << std::endl;
        system("pause");
        return;
    }
Добавлено через 11 минут
ой..
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
void Del()
{
  if (strcmp(fname, "Не выбран") == 0)
    {
        std::cout << "Файл не выбран!" << std::endl;
        system("pause");
        return;
    }
  allowance al[100];
  int i, n=0;
  std::fstream file;
    file.open(fname, std::ios::out  | std::ios::binary);
  for(i=0; !file.eof(); i++)
  {
     file.read((char*)&al[i], sizeof(allowance));
     n++;
  }
  file.close();
  //далее редактирование/удаление/сортировка
 }
я правильно понимаю?

Добавлено через 1 час 40 минут
Функция редактирования такая... правда в конце в файл записывается мусор. в чем может быть причина?
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
33
void EditRec()//редактировать запись
{
    if (strcmp(fname, "Не выбран") == 0)
    {
        std::cout << "Файл не выбран!" << std::endl;
        system("pause");
        return;
    }
    allowance alnew;
    int i;
    std::cout << "Введите ФИО матери на редактирование - ";
    //std::cin.ignore(1,'\n');
    std::cin>>alnew.MothFIO;
    std::cout << "Введите новое количество детей - ";
    std::cin >> alnew.ChCount;
    alnew.AllowSize = alnew.ChCount * PSIZE;
    allowance tmp[100];
    std::fstream file;
    file.open(fname, std::ios::in | std::ifstream::binary);
    for(i=0; !file.eof(); i++)
    {
        file.read((char*)&tmp[i], sizeof(allowance));
        if (strcmp(tmp[i].MothFIO, alnew.MothFIO) == 0)
            tmp[i] = alnew;
    }
    file.close();
    std::fstream file2;
    file2.open(fname, std::ios::out | std::ifstream::binary);
    for (int j = 0; j < i; j++)
        file2.write((char*)&tmp[j], sizeof(alnew));
    file2.close();
    std::cout << "Запись успешно изменена!" << std::endl;
}
 
Текущее время: 00:10. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru