четверг, 25 июня 2009 г.

выборка группы файлов для записи на носитель, предполагается что пару батников вы запустили

#include <iostream>
#include <fstream>
#include <string>
#include <vector>
#include <time.h>
#include <stdio.h>
#include <stdlib.h>
#include "rx.h"

using namespace std;

class File
{
public:
string FileName;
int Size;
File(string Name, int Sz) : FileName(Name), Size(Sz) {}
};

vector<File> Group;
randomx g(time(NULL));

void read_db()
{
ifstream f("Files.LST");
char buf[1250];
while (f.good())
{
int Sz;
string Name, Full_name;
char Name_buf[512];
f >> Sz;
f.get(Name_buf, 255, '\n');
Full_name = "C:\\Aleksandr\\Files\\";
Full_name += Name_buf+1;
Group.push_back(File(Full_name, Sz));
}
}

void save_sequence()
{
#define TOTAL_EXPECTED 4482
int Total_files = Group.size();
int Expected_size_Mb = 0;
while (Expected_size_Mb < TOTAL_EXPECTED)
{
int Next_file = g.rand_n(Total_files);
string command("");
command += "copy \"";
command += Group[Next_file].FileName;
command += "
\">nul";
system(command.c_str());
double added_size = Group[Next_file].Size;
added_size /= 1024;
added_size /= 1024;
Expected_size_Mb += (int)added_size;
string polzunok("");
double vsego_blokov;
double percents;
percents = Expected_size_Mb;
percents /= TOTAL_EXPECTED;
percents *= 100;
vsego_blokov = 80;
vsego_blokov /= 100;
vsego_blokov *= percents;
for (int i=0; i<(int)vsego_blokov; i++)
polzunok += "#";
printf("\r%s", polzunok.c_str());
}
}

int main()
{
read_db();
save_sequence();
return 1;
}

Комментариев нет:

Отправить комментарий