Omyl jsem kod smazal.
#include "stdafx.h"
#include <iostream> // std::cout
#include <fstream> // std::ifstream
#include <string>
#include <sstream>
#include <time.h>
#include <ctime>
const int COLUMNS = 7;
struct radek
{
float x;
float y;
float z;
float odrazivost;
float r;
float g;
float b;
};
using namespace std;
radek MakeRow(float pole[7])
{
radek soucasnejRadek;
soucasnejRadek.x = pole[0];
soucasnejRadek.y = pole[1];
soucasnejRadek.z = pole[2];
soucasnejRadek.odrazivost = pole[3];
soucasnejRadek.r = pole[4];
soucasnejRadek.g = pole[5];
soucasnejRadek.b = pole[6];
return soucasnejRadek;
}
#define DatumFormat "%d.%m.%Y %H:%M:%S "
#define DatumVelikost 21
#define DatumFormat2 "%d.%m.%Y %H:%M:%S "
#define DatumVelikost2 21
static char *DATUM(char *buff)
{
time_t t = time(0);
strftime(buff, DatumVelikost, DatumFormat, localtime(&t));
return buff;
}
float main()
{
char volba;
char format;
char format2;
float mez_X[2];
float mez_Y[2];
float mez_Z[2];
int odrazivost[2];
int barva_r[2];
int barva_g[2];
int barva_b[2];
int pocetRadku;
char date[DatumVelikost];
//char date1[DatumVelikost2];
int cas;
cout << "Pokud chcete vysledny soubor dle souradnic stiknete S.\n";
cout << "Pokud chcete vysledny soubor dle odrazivosti stiknete O.\n";
cout << "Pokud chcete vysledny soubor dle barev stiknete R.\n";
cout << "Pokud chcete vysledny soubor dle souradnic a odrazivosti vyberte variantu A.\n";
cout << "Pokud chcete vysledny soubor dle souradnic a barev vyberte variantu B.\n";
cout << "Pokud chcete vysledny soubor dle odrazivosti a barev vyberte variantu C.\n";
cout << "Pokud chcete vysledny soubor dle souradnic, odrazivosti a barev vyberte variantu D.\n";
cin >> volba;
cin.get();
// PODMINKA PRO SOURADNICE - S
if (volba=='S'|| volba=='s')
{
std::string filename;
std::string filenameOUT = "Vysledek_Cisla_Dle_Souradnic";
cout << "Zadejte jmeno souboru, ze ktereho chcete nacitat data.\n";
getline(cin, filename);
cout << endl;
cout << "Zadejte format nacitaneho souboru: \n";
cout << "(1) - .pts\n";
cout << "(2) - .txt\n";
cout << "(3) - .rcp\n";
cout << "(4) - .rcs\n";
cin >> format;
switch (format)
{
case '1':
filename += ".pts";
cout << "Byl vybran format .pts.\n";
break;
case '2':
filename += ".txt";
cout << "Byl vybran format .txt.\n";
break;
case '3':
filename += ".rcp";
cout << "Byl vybran format .rcp.\n";
break;
case '4':
filename += ".rcs";
cout << "Byl vybran format .rcs.\n";
break;
}
cout << endl;
cout << "Zadejte format vysledneho souboru: \n";
cout << "(1) - .pts\n";
cout << "(2) - .txt\n";
cout << "(3) - .rcp\n";
cout << "(4) - .rcs\n";
cin >> format2;
switch (format2)
{
case '1':
filenameOUT += ".pts";
cout << "Byl vybran format .pts.\n";
break;
case '2':
filenameOUT += ".txt";
cout << "Byl vybran format .txt.\n";
break;
case '3':
filenameOUT += ".rcp";
cout << "Byl vybran format .rcp.\n";
break;
case '4':
filenameOUT += ".rcs";
cout << "Byl vybran format .rcs.\n";
break;
}
std::ifstream ifs(filename.c_str(), std::ifstream::in);
std::ofstream ofs(filenameOUT.c_str(), std::ofstream::out);
cout << endl;
cout << "Zadejte souradnice pro vytvoreni souboru (x,y,z)\n";
cout << "Zadejte mez X: (nejpreve zapornou a pak kladnou)\n";
cin >> mez_X[0];
cin >> mez_X[1];
cout << "Zadejte mez Y:\n";
cin >> mez_Y[0];
cin >> mez_Y[1];
cout << "Zadejte mez Z:\n";
cin >> mez_Z[0];
cin >> mez_Z[1];
cout << "Meze zadany, nasleduje vytvareni souboru.\n";
time_t start = time(NULL);
int start1 = clock();
int a = 0;
if (ifs.is_open() && ofs.is_open())
{
std::string line;
while (std::getline(ifs, line))
{
std::istringstream ss(line);
radek soucasnejRadek;
if (!(ss >> soucasnejRadek.x >> soucasnejRadek.y >> soucasnejRadek.z >> soucasnejRadek.odrazivost >> soucasnejRadek.r >> soucasnejRadek.g >> soucasnejRadek.b))
{
continue;
}
if (mez_X[0] <= soucasnejRadek.x && mez_X[1] >= soucasnejRadek.x)
{
if (mez_Y[0] <= soucasnejRadek.y && mez_Y[1] >= soucasnejRadek.y)
{
if (mez_Z[0] <= soucasnejRadek.z && mez_Z[1] >= soucasnejRadek.z)
{
a++;
pocetRadku = a;
ofs << soucasnejRadek.x << " " << soucasnejRadek.y << " " << soucasnejRadek.z << " " << soucasnejRadek.odrazivost << " " << soucasnejRadek.r << " " << soucasnejRadek.g << " " << soucasnejRadek.b << '\n';
}
}
}
}
ifs.close();
ofs.close();
}
else
{
std::cout << "Error opening file";
}
//LOG soubor souradnic
time_t tt = time(0);
struct tm*now = localtime(&tt);
char DATUM_1[80];
strftime(DATUM_1, DatumVelikost2, DatumFormat2, now);
int stop = clock();
cas = ((stop - start1) / (CLOCKS_PER_SEC));
cout << "Vysledny soubor vytvoren.\n";
cout << "Nasleduje zapis LOG souboru.\n";
std::ofstream ofss("LOG_Cisla_Dle_Souradnic.txt", std::ofstream::out);
ofss << "Informace o vyslednem souboru vytvoreneho dle mezi souradnic:\n";
ofss << "Pouzite meze souradnic: \n" << "Mez X: " << "<" << mez_X[0] << "; " << mez_X[1] << ">\n" << "Mez Y: " << "<" << mez_Y[0] << "; " << mez_Y[1] << ">\n" << "Mez Z: " << "<" << mez_Z[0] << "; " << mez_Z[1] << ">\n";
ofss << "Pocet bodu v tomto souboru: " << pocetRadku << "\n";
ofss << "Zacatek vytvoreni souboru: " << DATUM(date) << "\n";
ofss << "Konec vytvoreni souboru: " << DATUM_1 << "\n";
ofss << "Cas tvoreni souboru: " << (double)(time(NULL)-start) << " s" << "\n";
ofss << endl;
cout << "LOG soubor byl vytvoren.\n";
cout << "Cas tvoreni souboru: " << cas << " s" << "\n";
}
#5 KIIV
Ten zápis trvá třeba hodinu, tak prostě mě zajímá kolik řádků se zapíše za sekundu. Tak mě zajímá co je jak náročné.
Ano, kod je asi sračka, učím se to 3ti týden, takže pro mě dobrý a zatím to dělá co má a dále se na tom učím. Namísto takového komentáře by jsi spíše mohl napsat co změnit, zlepšit, aby to nebyla taková hrůza. Až budu programovat pár let, tak jistě napíšu něco smysluplného.