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

Инвертирование содержимого файла - C++

Восстановить пароль Регистрация
 
yur@
5 / 5 / 2
Регистрация: 06.03.2014
Сообщений: 106
21.03.2014, 23:04     Инвертирование содержимого файла #1
Здравствуйте! Скажите как модно реализовать инвертирование содержимого файла! Причем нужно инвертировать не по одному символу, а целыми блоками! Например:
Петров 12 4
Иванов 13 5
Сидоров 14 3

После инвертирования, при выводе содержимого файла должно получится:
Сидоров 14 3
Иванов 13 5
Петров 12 4

P.S. Файл - бинарный
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
21.03.2014, 23:09     Инвертирование содержимого файла #2
Цитата Сообщение от yur@ Посмотреть сообщение
P.S. Файл - бинарный
Записаны в файле структуры? Объявление структуры покажите.
yur@
5 / 5 / 2
Регистрация: 06.03.2014
Сообщений: 106
21.03.2014, 23:23  [ТС]     Инвертирование содержимого файла #3
alsav22,
C++
1
2
3
4
5
6
7
typedef
    struct SEdaF{
      char stran[30];
      char blud[30];
      int kalory;
      int  Next;
} TEdaF;
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
21.03.2014, 23:26     Инвертирование содержимого файла #4
Вам какой вариант: попроще или посложнее?
yur@
5 / 5 / 2
Регистрация: 06.03.2014
Сообщений: 106
21.03.2014, 23:28  [ТС]     Инвертирование содержимого файла #5
alsav22, давайте посложнее))) не будем искать легких путей
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
21.03.2014, 23:34     Инвертирование содержимого файла #6
Тогда можно такой вариант: открываете файл для чтения и записи, создаёте две временные структруры, первую структуру и последнюю читаете во временные структуры, записываете на место первой - последнюю, на место последней - первую, и т.д.
yur@
5 / 5 / 2
Регистрация: 06.03.2014
Сообщений: 106
21.03.2014, 23:41  [ТС]     Инвертирование содержимого файла #7
alsav22, Вы имеете ввиду создать временные структуры прямо в файле?
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
22.03.2014, 00:08     Инвертирование содержимого файла #8
В файле, при всём желании, не получится. В коде.
yur@
5 / 5 / 2
Регистрация: 06.03.2014
Сообщений: 106
22.03.2014, 00:12  [ТС]     Инвертирование содержимого файла #9
alsav22, вот в том и проблема, реализовать нужно, не создавая ничего в коде, работая только в файле (так поставлено задание)
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
22.03.2014, 00:42     Инвертирование содержимого файла #10
Цитата Сообщение от yur@ Посмотреть сообщение
так поставлено задание
Хотелось бы текст задания увидеть. Знаете, что такое - испорченный телефон?

Добавлено через 4 минуты
Вообще ничего не создавать в коде не получится, в программировании чудес не бывает. Что-то да прийдётся. Если не структуру, так переменную или поток, в воздухе данные висеть не могут.
yur@
5 / 5 / 2
Регистрация: 06.03.2014
Сообщений: 106
22.03.2014, 00:58  [ТС]     Инвертирование содержимого файла #11
само задание имеет такой вид: Реализовать операцию инвертирования списка!

но по словам преподавателя функция должна быть реализована по принципу вот такого удаления! то есть мы работаем в файле!

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
bool delElement(FILE* &f,int &St,char key[30])
{
    bool isDeleted=false;
    int pp,wp;
    TEdaF eda,prevEda;
 
    wp=St;
    pp=-1;
 
    if (findInSortList1(f,St,key,pp,wp)) {
        isDeleted=true;
        fseek(f,wp,SEEK_SET);
        fread(&eda,sizeof(TEdaF),1,f);
        if (pp==-1) {
            St=eda.Next;
            fseek(f,sizeof(TEdaF),SEEK_SET);
            fwrite(&eda,sizeof(TEdaF),1,f);
        } else {
            fseek(f,pp,SEEK_SET);
            fread(&prevEda,sizeof(TEdaF),1,f);
            fseek(f,wp,SEEK_SET);
            fread(&eda,sizeof(TEdaF),1,f);
            fseek(f,pp,SEEK_SET);
            prevEda.Next=eda.Next;
            fwrite(&prevEda,sizeof(TEdaF),1,f);
        }
        deleteFromFile(f,wp);
    };
    return isDeleted;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.03.2014, 01:09     Инвертирование содержимого файла
Еще ссылки по теме:

Написать программу по разбивке и анализу содержимого файла отчета работы ПО (log-файла) C++
Подключение файла с текстом и его инвертирование C++
C++ Обработка содержимого файла

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
22.03.2014, 01:09     Инвертирование содержимого файла #12
Цитата Сообщение от yur@ Посмотреть сообщение
то есть мы работаем в файле!
Работайте, кто вам не даёт? Только вот это что?
C++
1
2
3
bool isDeleted=false; // создаётся переменная типа bool
int pp,wp; // создаются две переменные типа int
TEdaF eda,prevEda; // создаются, аж две, структуры типа TEcaF
Yandex
Объявления
22.03.2014, 01:09     Инвертирование содержимого файла
Ответ Создать тему
Опции темы

Текущее время: 16:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru