Хочу Вам рассказать, как я, будучи начинающим в языке программирования C, да и вообще в программировании, справился с задачей форматирования, переименования 200 флешек и загрузки на них информации для потенциальных клиентов нашей компании, которые будут раздаваться на выставке в Берлине.
Как только я себе представил, сколько будет длиться, обработка 200 флешек в ручную, начал искать любые пути, для прибавления эффективности сему процессу.
Для сохранения моего USB-Port'a, приобрёл активный USB-Hub на 7 портов в eBay.
А далее, имея небольшие знания яз. прогр. C, пытался соорудить что-то, что автоматически сделает за меня работу, заставляя меня, лишь сменить 7 флешек в хабе и нажать клавишу клавиатуры для продолжения операции «Флешка».
Гугл как всегда меня спас, ибо кроме «format (буква):», я не знал, как мне решить данную задачу. Благодаря данной страничке разобрался как отформатировать диск, и задать метку тома. Благо, хоть как копировать файлы, знал.
Открываем редактор notepad++, CodeBlocks и т.д., и начинаемПрограммировать, что-то более или менее похожее на решение моей задачи.
Проверяем — ура! Работает!
Пробуем копировать нужный нам файл, при этом ещё и переименовать его:
Проверяем… работает: прекрасно!
Ну а дальше, дело техники, добавляем удобств:
7 портов, а значит за раз максимально 7 флешек. Изначально проверяем, идут ли буквы съёмных дисков по алфавиту, и от какой буквы.
-Задаём команды с наличием 7 наименований дисков
-Спрашиваем себя, готовы ли мы перейти к решению задачи (стоят ли флешки)
-Проверяем ответ, и начинаем стирать данные с флешек
После обработки 7 флешек, незабываем их извлечь, с помощью данного скрипта
Ну вот и всё! На написание программы понадобилось пару часов, получил кучу удовольствия от программирования и решения поставленной задачи, облегчил себе жизнь на этой недели, попрактиковался в Си, ну и ещё много всякого позитива.
Надеюсь, что данная статья поможет кому, а если нет, не будет скучна для чтения.
Исходный код, можно скачать здесь.
Строго не судите, это мой первый пост и я ещё учусь.
Предложения по улучшению программы — приветствуются.
Поправки правописания — в личку.
Как только я себе представил, сколько будет длиться, обработка 200 флешек в ручную, начал искать любые пути, для прибавления эффективности сему процессу.
Для сохранения моего USB-Port'a, приобрёл активный USB-Hub на 7 портов в eBay.
А далее, имея небольшие знания яз. прогр. C, пытался соорудить что-то, что автоматически сделает за меня работу, заставляя меня, лишь сменить 7 флешек в хабе и нажать клавишу клавиатуры для продолжения операции «Флешка».
Гугл как всегда меня спас, ибо кроме «format (буква):», я не знал, как мне решить данную задачу. Благодаря данной страничке разобрался как отформатировать диск, и задать метку тома. Благо, хоть как копировать файлы, знал.
Открываем редактор notepad++, CodeBlocks и т.д., и начинаем
//a для контроля, если происходит ошибка (к пр. нету диска), получаем a = 1
a = system("format g: /q /v:Name"); //Форматируем Диск G; /q – для быстрого форматирования; /v – задаём метку тому
Проверяем — ура! Работает!
Пробуем копировать нужный нам файл, при этом ещё и переименовать его:
//b для контроля, если происходит ошибка (к пр. неправильное имя файла), получаем b = 1
b = system("copy DSCI0198.jpg g:image.jpg"); //копируем файл с именем DSCI0198.jpg на съёмный диск G под именем image.jpg
Проверяем… работает: прекрасно!
Ну а дальше, дело техники, добавляем удобств:
7 портов, а значит за раз максимально 7 флешек. Изначально проверяем, идут ли буквы съёмных дисков по алфавиту, и от какой буквы.
-Задаём команды с наличием 7 наименований дисков
//форматирование
char * fcommand[7] = {"format f: /q /v:Name /y > nul",
"format g: /q /v:Name /y > nul",
"format h: /q /v:Name /y > nul",
"format i: /q /v:Name /y > nul",
"format j: /q /v:Name /y > nul",
"format k: /q /v:Name /y > nul",
"format l: /q /v:Name /y > nul"};
//копирование файла
char * ccommand[7] = {"copy DSCI0198.jpg f:image.jpg",
"copy DSCI0198.jpg g:image.jpg",
"copy DSCI0198.jpg h:image.jpg",
"copy DSCI0198.jpg i:image.jpg",
"copy DSCI0198.jpg j:image.jpg",
"copy DSCI0198.jpg k:image.jpg",
"copy DSCI0198.jpg l:image.jpg"}
-Спрашиваем себя, готовы ли мы перейти к решению задачи (стоят ли флешки)
repeat = askAgain(); //repeat получит от askAgain, после ответа (y – да, n – нет) на вопрос 1 — да, готов; или 0 — нет, не готов, закончить программу!
-Проверяем ответ, и начинаем стирать данные с флешек
a = system(command[i]); // отправляем команду на формат диска f, g...
if (a) //a получила от system 1 или больше?
{
printf("\n---ERROR: Всё плохо! Наверное диск, в списке под номером: %i не найден\n", i);
}
else
{
printf("+++Диск под номером %i был успешно отформатирован+++\n", i);
b = system(сcommand[i]); //копируем фотографию на флешку
if (b)
printf("\n---ERROR: И опять всё плохо\n\n");
if (!b)
printf("+++Копирование завершено+++\n");
else
printf("---FILE-ERROR");
}
i++; // переходим на след. Диск
После обработки 7 флешек, незабываем их извлечь, с помощью данного скрипта
system("removedrive f: -l"); // так для каждого диска
Ну вот и всё! На написание программы понадобилось пару часов, получил кучу удовольствия от программирования и решения поставленной задачи, облегчил себе жизнь на этой недели, попрактиковался в Си, ну и ещё много всякого позитива.
Надеюсь, что данная статья поможет кому, а если нет, не будет скучна для чтения.
Исходный код, можно скачать здесь.
Строго не судите, это мой первый пост и я ещё учусь.
Предложения по улучшению программы — приветствуются.
Поправки правописания — в личку.