#1
08 февраля 2008 в 10:15
Всем привет! <br />Решил написать программу которая: <br />Отрезает(копирует в новый, не модифицирует оригинал) от видеофайла 6МБ кусок<br />Для чего? Ну, чтобы экономить время и болванки, когда скачаю несколько новых <br />фильмов и хочу проверить будут ли они работать на моем домашнем DVD. <br />То-есть, отрезанные кусочки закатать на болванку и уже их проверить на читаемость. <br /><br />Большое спасибо Кригсу - он помог мне довести дело до создания исполняемого <br />модуля, исправив мои грубые ошибки :D <br /><br />А дальше тоже пошло негладко - вместо 6Мега программа почему-то создает куски <br />размером 4.29КБайт которые не открываются ни одним медиаплеером. <br /><br />
#include <stdio.h><br />int main(){<br /> #define defaultPath "d:/Cut_Vid_temp/tempVid.data"<br /><br /> char cPath[127], fileByte; // one byte out of opened file <br /> double i; <br /><br /> FILE *f, *g; <br /><br /> printf("\nEnter full path to file \n including name and extension: \n> ");<br /> gets(cPath); <br /><br /> f=fopen(cPath,"rb"); // binary, read-only<br /> g=fopen(defaultPath,"wb"); // binary, write only <br /><br /> if(f==NULL||g==NULL)<br /> printf("\nError while opening file!\n"); <br /> else // 1048576 bytes is 1MByte<br /> for(i=0; (i<1048576*6) && (fileByte=getc(f))!=EOF; i++)<br /> putc(fileByte,g);<br /> fclose(f);<br /> fclose(g); <br /><br /> printf("\nResult is in the file %s\n Press any key to exit\n", defaultPath);<br /> getch(); <br /><br /> return 0;<br />}<br /><br />
#2
09 февраля 2008 в 07:42
Всё народ, проблема разрешилась. <br />Надо было переменную fileByte объявить как тип int <br />(существенно для хранения символа конца файла в данной переменной). <br /><br />Вводить путь к файлу надо целиком через обычный слэш <br />[center]/[/center]<br />или через двойной обратный<br />[center]\\[/center]<br /><br />Пользуйтесь, кому надо 8)<br /><br />P.S.<br />Чуть не забыл, копированные 6МБайтные куски будут сохраняться , как видно из кода, <br />"по адресу" d:/Cut_Vid_temp/tempVid.data<br />Не знаю, обязательно ли предварительно создавать директорию Cut_Vid_temp для <br />корректной работы, но я сам создал эту папку отдельно. <br /><br />P.P.S.<br />Не забудьте поменять расширение *.data на *.AVI<br />Мой домашний DVD например, просто не видит файлов с иными расширениями.