private:
void split_it()
{
FILE *fpi, *fpo; char * dr = new char[1024];
char inputfilename[100] = "", tmp[20] = ".part", tname[80] = "", c;
int n = 2, j = 0, l = 0, m = 0, rem = 0;
long divided = 0;
double k = 0;
n = int(No_of_Parts; Value);
size_t size;
for each (char t in Input_Path - > Text)
{
inputfilename[j] = t;
j++;
}
j = 0;
if ((fpi = fopen(inputfilename, "rb")) == NULL)
{
System::Windows::Forms::MessageBox::Show("Invalid File Name:");
exit(0);
}
fseek(fpi, 0, SEEK_END);
k = ftell(fpi);
rewind(fpi);
for (j = strlen(inputfilename); j> = 0; j--)
{
if (inputfilename[j] == '.')
{
for (m = j - 1; inputfilename[m] != '/'; m--)
{
tname[l] = inputfilename[m];
l++;
}
}
}
strrev(tname);
for (j = 0; j< n; j++)
{
c = j + '0';
output[j].outputfiles = new char[20];
strcpy(output[j].outputfiles, inputfilename);
tmp[strlen(tmp)] = c;
strcat(output[j].outputfiles, tmp);
strcpy(tmp, ".part");
}
divided = long(k) / n;
rem = long(k) - (divided*n);
m = divided / 512;
for (j = 0; j< (n - 1); j++)
{
l = 0;
fpo = fopen(output[j].outputfiles, "wb+");
while (l != m)
{
size = fread(dr, 1, 512, fpi);
fwrite(dr, size, 1, fpo);
l++;
}
m = divided - (m * 512);
size = fread(dr, 1, m, fpi);
fwrite(dr, size, 1, fpo);
fclose(fpo);
m = divided / 512;
}
l = 0;
fpo = fopen(output[j].outputfiles, "wb+");
while (l != m)
{
size = fread(dr, 1, 512, fpi);
fwrite(dr, size, 1, fpo);
l++;
}
m = divided - (m * 512);
m = m + rem;
size = fread(dr, 1, m, fpi);
fwrite(dr, size, 1, fpo);
fclose(fpi);
fclose(fpo);
}
I m created the CLR c++ Project in visual studio.Added the new Windows Form.
Form application was working correctly.But when i call the above function to split the selected file using the OpenFileDialog component.it splits the file correctly,then the application Exiting automatically instead of returning back.