Member 13124691 Ответов: 2

Как разделить файл с форматом файла на C++


Я искал решение для разделения файла с любым форматом файла, используя C++. то, что я нашел до сих пор и попробовал, могло только разделить файл .txt. Разбить (скажем,. docx) файл на 2 файла можно, но открыть разбитые файлы дают ошибку. То же самое относится и к другим форматам файлов. Например, попробуйте использовать приведенный ниже код с другим расширением файла, а не .txt или .dat (скажем,. jpg).

кто-нибудь может мне помочь, пожалуйста?

с уважением,

Что я уже пробовал:

<pre>#include<iostream>
#include<fstream>
#include<stdio.h>
#include<stdlib.h>
using namespace std;
int main()
{
     ifstream fin1, fin2;
     ofstream fout;
     char ch, file_name1[20], file_name2[20], file_name3[30];
     cout<<"\n Enter First File Name with Extension '.txt'    :   ";
     gets(file_name1);
     cout<<"\n Enter Second File Name with Extension '.txt'   :   ";
     gets(file_name2);
     cout<<"\n Enter Third File Name with Extension '.txt' ";
     cout<<"\n (which will Store the Contents of \n First File and Second File)                    	:   ";
     gets(file_name3);
     
     fin1.open(file_name1);
     fin2.open(file_name2);
     if(fin1==NULL || fin2==NULL)
     {
          cout<<"\n Invalid File Name. \n There is no such File or Directory ...";
          exit(EXIT_FAILURE);
     }
     fout.open(file_name3);
     if(!fout)
     {
          cout<<"\n Invalid File Name. \n There is no such File or Directory ...";
          exit(EXIT_FAILURE);
     }
     while(fin1.eof()==0)
     {
          fin1>>ch;
          fout<<ch;
     }
     while(fin2.eof()==0)
     {
          fin2>>ch;
          fout<<ch;
     }
     cout<<"\n Two Files have been Merged into "<<file_name3<<" File Successfully...!!!";
     fin1.close();
     fin2.close();
     fout.close();
     return 0;
}

Mohibur Rashid

Ну, вы спрашиваете о разделении, ваш исходный код - это слияние двух файлов в новый файл. И текстовый файл прост в объединении или разделении, но jpeg или doc имеют vomplex определение, этот простой метод не является вашим решением

RAMASWAMY EKAMBARAM

что это за требование-просто разбить любой файл (. docx, .rar,. exe или какой-нибудь экспортный дамп базы данных), а затем объединить их позже, чтобы получить обратно оригинал? это было распространенным требованием много лет назад, когда существовал строгий предел размера почтовых вложений. Если это только для этой ограниченной цели, то можно разделить любой файл, ничего не зная о формате, а затем объединить части, чтобы получить обратно ваш файл.

2 Ответов

Рейтинг:
2

Patrice T

Цитата:
Я искал решение для разделения файла с любым форматом файла, используя C++.

Его нет.
Вся эта концепция ошибочна. Вы можете получить файл. docx и разделить его на 2 файла, но полученные файлы не будут действительными файлами .docx.
Причина проста docx относится к" msword document file format", это означает, что файл уважает формат, это означает, что файл имеет структуру, разделяя файл, вы получаете 2 файла с нарушенной структурой, и это делает их нечитаемыми.


Рейтинг:
0

KarstenK

Вы не можете разделить файлы с отформатированными данными простым способом. Если вы хотите это сделать, вы должны загрузить все данные в модель данных вашего приложения и ЧЕМ решите, какие данные сохранить в том или ином файле.

Пример: сжатый файл изображения сначала загрузите его (распакуйте данные), затем сохраните верхнюю половину (со сжатием) и затем сохраните нижнюю половину (со сжатием).