Tilføj til fil
Jeg har en del kode,der sådan set har virket helt fint på et tidspunkt, men lige pludselig er holdt op med det. Jeg skal lave en analyse på filer, for derefter at skrive resultatet i en ny fil, de gamle resultater skal forblive i filen.... Er der nogen der har en bedre ide end mig!Det drejer sig om Skriv_alarm_log(), Skriv_database_log(), samt Kontroller_fil().
Her er koden:
char Enter_file(void);
FILE *stream;
FILE *stream2;
char tmpbuf[128]; //buffer til tiden
float xpos[501],ypos[501];
float xpos2[501], ypos2[501];
float x_max=0.0,y_max=0.0,range=0.0;
float pulse=0.0;
//////////////////////////////////////////////////////////
// Afslutter programmet og rydder op efter sig hvis //
// det skulle v‘re n›dvendigt //
// MENU (q) //
//////////////////////////////////////////////////////////
void Quit(void)
{
if(stream == NULL)
{
closegraph();
cout<<"\nEnding program.........";
exit(0);
}
else
{
closegraph();
cout<<"\n\nEnding program.........";
fclose(stream);
exit(0);
}
}
//////////////////////////////////////////////////////////
// float WRITE ALARM,LOG FILE //
// Skriver alle fejl til fil alarm.log //
//////////////////////////////////////////////////////////
float Skriv_alarm_log(float alarm, char buffer2[7], char buffer3[7], char filnavn[80], char filnavn2[80])
{
char alarm_gammel[]="c:\\otdr\\alarmold.log";//gammel fil
char alarm_ny[]="c:\\otdr\\alarm.log"; //ny fil
char blip[4]="\n"; //linieskift
char buffer[10]; //buffer til konvertering
char c; //buffer til in->out kopiering
char def1[]="File: "; //case 1 og 2
char def2[]=", not all coordinates there, will try again later."; //case 1
char def3[]=", file or directory not existing, check your file.."; //case 2
int x; //buffer til konvertering
////†bner gammel logfil, omd›ber den og opretter ny logfil/////////////////////
system("rename c:\\otdr\\alarm.log alarmold.log");
//omdøber ny fil til gammel, som derefterskrives tilbage i ny
ifstream alarm_in(alarm_gammel,ios::in);//åbner gammel fil
if (!alarm_in) //er det ikke tilladt at åbne den, fejlmeldes
cerr<<"Unabel to open file: "<<alarm_gammel<<" for input!"; //fejl
ofstream alarm_out(alarm_ny,ios::out); //åbner ny fil
if(!alarm_out) //er det ikke tilladt at lave den fejlmeldes
cerr<<"Unabel to open file: "<<alarm_ny<<" for output!"; //fejl
////////////////Skriver tid til logfilen//////////////////////
_strtime(tmpbuf); //kopierer tiden til tmpbuf
alarm_out.write(tmpbuf,strlen(tmpbuf)); //skriver tiden
_strdate(tmpbuf); //kopierer datoen til tmpbuf
alarm_out.write(" ", strlen(" ")); //mellemrum
alarm_out.write(tmpbuf,strlen(tmpbuf)); //skriver dato
alarm_out.write(blip, strlen(blip)); //linieskift
/////////////////////////Konvertering af float til int//////////////////////////
gcvt(alarm, 5, buffer);//konverterer float(alarm) til string (buffer)
x = atoi(buffer); //konverterer string (buffer) til integer (x)
switch(x)
{
case 1:
{
////////////////Skriver datalinie til logfilen////////////////
alarm_out.write(def1,strlen(def1)); //skriver file:
alarm_out.write(filnavn,strlen(filnavn));//filnavnet i logfil
alarm_out.write(def2,strlen(def2)); //skriver opståede fejl
alarm_out.write(blip, strlen(blip)); //linieskift
while(alarm_out&&alarm_in.get(c)) //kopierer fra in til out
alarm_out.put(c); //skriver chars fra
alarm_in.close(); //lukker in(ny fil)
alarm_out.close(); //lukker out(gammel fil)
system("del c:\\otdr\\alarmold.log"); //sletter gammel fil
}; break; //afslut case 1
case 2:
{
alarm_out.write(def1,strlen(def1)); //skriver file:
alarm_out.write(filnavn,strlen(filnavn));//filnavnet i logfil
alarm_out.write(def3,strlen(def3)); //skriver opståede fejl
alarm_out.write(blip, strlen(blip)); //linieskift
while(alarm_out&&alarm_in.get(c)) //kopierer fra in til out
alarm_out.put(c); //skriver chars fra
alarm_in.close(); //lukker in(ny fil)
alarm_out.close(); //lukker out(gammel fil)
system("del c:\\otdr\\alarmold.log"); //sletter gammel fil
cout<<"\nNo such directory or file.\n";
Enter_file();
}; break; //afslut case 2
case 3:
{
alarm_out.write("Comparing ",10);
alarm_out.write(filnavn,strlen(filnavn));//filnavnet i logfil
alarm_out.write(" and ",5);
alarm_out.write(filnavn2,strlen(filnavn2));//filnavnet i logfil
alarm_out.write(" found errors at: ",18);
alarm_out.write(buffer2,strlen(buffer2));
alarm_out.write(" km, ",5);
alarm_out.write(buffer3,strlen(buffer3));
alarm_out.write(" dB",3);
alarm_out.write(blip, strlen(blip)); //linieskift
while(alarm_out&&alarm_in.get(c)) //kopierer fra in til out
alarm_out.put(c); //skriver chars fra
alarm_in.close(); //lukker in(ny fil)
alarm_out.close(); //lukker out(gammel fil)
system("del c:\\otdr\\alarmold.log"); //sletter gammel fil
}; break;
}
return 0;
}
//////////////////////////////////////////////////////////
// WRITE DATABASE.LOG FILE //
//////////////////////////////////////////////////////////
int Skriv_database_log(char filnavn[80])
{
char blip[4]="\n"; //linieskift
char c; //buffer til in->out kopiering
char database_ny[]="c:\\otdr\\database.log"; //ny fil
char database_gammel[]="c:\\otdr\\databaseold.log"; //gammel fil
system("rename c:\\otdr\\database.log databaseold.log");
//omdøber ny fil til gammel, som derefterskrives tilbage i ny
ifstream database_in(database_gammel,ios::in); //åbner gammel fil
if (!database_in) //er det ikke tilladt at åbne den, fejlmeldes
cerr<<"Unabel to open file: "<<database_gammel<<" for input!"; //fejl
ofstream database_out(database_ny,ios::out); //åbner ny fil
if(!database_out) //er det ikke tilladt at lave den fejlmeldes
cerr<<"Unabel to open file: "<<database_ny<<" for output!"; //fejl
////////////////////Skriver datalinie til logfilen////////////////////////
database_out.write(filnavn,strlen(filnavn)); //skriver filnavnet i logfil
database_out.write(blip, strlen(blip)); //linieskift
while(database_out&&database_in.get(c)) //kopierer fra in til out
database_out.put(c); //skriver chars fra
database_in.close(); //lukker in(ny fil)
database_out.close(); //lukker out(gammel fil)
system("del c:\\otdr\\databaseold.log"); //sletter gammel fil
cout<<"Database logfile written....."; //ok udførelse
return (0); //afslutter rutinen
}
int filedelete(void)
{
system("del c:\\otdr\\kontrolold.log");
return 0;
}
int rename(void)
{
// printf("About to spawn command interpreter and run a DOS command\n");
system("rename c:\\otdr\\kontrol.log kontrolold.log");
return 0;
}
//////////////////////////////////////////////////////////
// WRITE KONTROLFILE.LOG //
//////////////////////////////////////////////////////////
int Kontroller_fil(char filnavn[80])
{
char c; //buffer til in->out kopiering
char blip[4]="\n"; //linieskift
char def1[]="\tThe file: "; //skriver
char def2[]=", passed sizecontrol!"; //skriver
char kontrol_ny[]="c:\\otdr\\kontrol.log"; //ny fil
char kontrol_gammel[]="c:\\otdr\\kontrolold.log";//gammel fil
cout<<"Modtaget filnavn: "<<filnavn<<" fra skriv()"<<endl;//TEST
// getch();
cout<<"Omd›ber kontrol.log til kontrolold.log!"<<endl; //TEST
rename();
cout<<"done!"; //TEST
getch(); //TEST
ifstream kontrol_in("c:\\otdr\\kontrolold.log"); //åbner gammel fil
// ifstream kontrol_in(kontrol_gammel,ios::app); //åbner gammel fil
if (!kontrol_in) //er det ikke tilladt at åbne den, fejlmeldes
cerr<<"Unabel to open file: "<<kontrol_gammel<<" for input!\n"; //fejl
ofstream kontrol_out(kontrol_ny,ios::out); //åbner ny fil
if(!kontrol_out) //er det ikke tilladt at lave den fejlmeldes
cerr<<"Unabel to open file: "<<kontrol_ny<<" for output!"; //fejl
////////////////////Skriver tid og dato til logfilen//////////////////////
_strtime(tmpbuf); //lægger værdi af tid til tmpbuf
kontrol_out.write(tmpbuf,strlen(tmpbuf)); //skriver tiden
_strdate(tmpbuf); //lægger værdi af dato til tmpbuf
kontrol_out.write(" ", strlen(" ")); //mellemrum
kontrol_out.write(tmpbuf,strlen(tmpbuf)); //skriver dato
////////////////////Skriver kontrollinie til logfilen////////////////////////
kontrol_out.write(def1,strlen(def1)); //skriver def1 til logfil
kontrol_out.write(filnavn,strlen(filnavn)); //skriver filnavn til logfil
kontrol_out.write(def2,strlen(def2)); //skriver def2 til logfil
kontrol_out.write(blip, strlen(blip)); //linieskift
cout<<"Check for files!!!\n";
getch();
while(kontrol_out&&kontrol_in.get(c)) //kopierer fra in til out
{
cout<<"Char!"; //TEST
kontrol_out.put(c); //skriver chars fra in til out
}
kontrol_in.close(); //lukker in(ny fil)
kontrol_out.close(); //lukker out(gammel fil)
// system("del c:\\otdr\\kontrolold.log"); //sletter gammel fil
cout<<"Second check!!\n"; //TEST
getch(); //TEST
filedelete();
return (0); //afslutter rutinen
}
//////////////////////////////////////////////////////////
// Funktion der finder den største x og y-koordinat //
//////////////////////////////////////////////////////////
float Max_value(float a, float b)
{
if (a>b)
return a;
else
return b;
}
//////////////////////////////////////////////////////////
// Funktion finder en søgestreng, //
// overført fra Search_file() //
//////////////////////////////////////////////////////////
char* Seek(FILE *stream,char *seek_string1)
{
// Find en linie i stream, der starter med "POS(km) VAL(dB)"
char *string = new char[1024];
while (fgets(string,1023,stream))
if (strncmp(string,seek_string1,strlen(seek_string1))==0)
return string;
return NULL; // Tekst ikke fundet
}
//////////////////////////////////////////////////////////
// void skriv(char filnavn[80], int number_of_files) //
//////////////////////////////////////////////////////////
void skriv(char filnavn[80],int number_of_files)
{
float x,y;
float maxx,maxy;
char str[1024];
int pts=0;
// int i=0;
// clrscr();
FILE *ny_fil=fopen(filnavn, "r");
if(!ny_fil)
{
cerr<<"File "<<ny_fil<<" not found\n";
return;
}
cout<<"Analyse no. "<<number_of_files;//<<endl;
cout<<" - on file: "<<filnavn<<endl;
char *t=Seek(ny_fil, "POS(km) VAL(dB)");
if(!t)
{
cerr<<"Could not find \"POS(km) VAL(dB)\" in file.....";
return;
}
delete[] t;
while (fgets(str, 1023, ny_fil))
{
if(str[0]>31)
{
// float x,y;
sscanf(str,"%f %f", &x, &y);
maxx=Max_value(maxx,x);
maxy=Max_value(maxy,y);
pts++;
// xpos[pts]=x; ypos[pts]=y; pts++;
// printf("X,Y: %2.4f , %2.4f\n",x,y);
// cout<<"Points read :"<<pts<<endl;
// getch();
}
}
if(pts>500)
{
Kontroller_fil(filnavn);
}
else
{
Skriv_alarm_log(1,0,0,filnavn,0);
}
/* for(i=0;i<pts;i++)
{
cout<<"X,Y: "<<xpos[i]<<" , "<<ypos[i]<<endl;
}*/
cout<<"X max, Y max : "<<maxx<<" , "<<maxy<<endl;
cout<<"Points read :"<<pts<<endl<<endl;
fclose(ny_fil);
getch();
return;
}
//////////////////////////////////////////////////////////
// Denne funktion bruges kun til testudskrift //
//////////////////////////////////////////////////////////
int Skriv(float x_max, float y_max, float range, int coordinates, float pulse)
{
printf("Distance range: %2.3f km\n", range);
printf("Pulse width: %2.0f ns\n\n", pulse);
cout<<"\tX max: "<<x_max<<endl;
cout<<"\tY max: "<<y_max<<endl;
cout<<"\nCoordinates found: "<<coordinates<<endl;
getch();
return 0;
}
//////////////////////////////////////////////////////////
// Tegner den aktuelle graf til sk‘rmen //
//////////////////////////////////////////////////////////
void Graf(char *filnavn, float x_max, float y_max)
{
char string[1024];
int i=0;
int fejl, maxx, maxy;
int driver, mode;
driver = DETECT;
initgraph(&driver, &mode, "c:\\progra~1\\tc\\bgi");
fejl = graphresult();
if (fejl)
{
cout<<"\nError no.: "<<fejl;
cout<<"\n"<<grapherrormsg(fejl);
exit(0);
}
maxx = getmaxx();
maxy = getmaxy();
setcolor(1);
stream = fopen(filnavn, "r"); //Åbner filen bestemt af *filnavn
if (!stream) //Hvis filen ikke kan åbnes skrives
{ //fejlmeddelse til skærmen, og programmet afsluttes
cout<<"Could not open file: \""<<filnavn<<"\"..."<<endl;
return;
}
char *t = Seek(stream,"POS(km) VAL(dB)");
if (!t) //Hvis t ikke kan findes, skrives
{ //fejlmeddelse til skærmen, og programmet afsluttes
cout<<"Could not find \"POS(km) VAL(dB)\"..."<<endl;
return;
}
delete[] t; //pointeren t bliver nedlagt igen, frigiver hukommelsen af t
while (fgets(string,1023,stream))
{
if (string[0]>31) // Ignor‚r tomme linier (de begynder med newline, som er <32)
{
float x,y;
sscanf(string,"%f %f",&xpos[i],&ypos[i]);
// printf("No.: %d, %f , %f\n",i, xpos[i], ypos[i]);
i++;
}
}
for(i=0; i<500;i++)
{
line( ((maxx*(xpos[i]/x_max))/2)+1, ((maxy-(maxy*(ypos[i]/y_max)))/2),
((maxx*(xpos[i+1]/x_max))/2)+1, ((maxy-(maxy*(ypos[i+1]/y_max)))/2) );
}
// cout<<"\nMax X: "<<x_max<<" , "<<"Max Y: "<<y_max;
// cout<<"\nPress any key!\n";
getch();
cleardevice();
closegraph();
return;
// Quit();
}
//////////////////////////////////////////////////////////
// Funktionen der finder x og y-koordinaterne, samt //
// distance range for et trace //
//////////////////////////////////////////////////////////
void Search_file(char *filnavn)
{
char string[1024];
char *r, *t, *p;
int coordinates = 0;
// FILE *stream=fopen(filnavn,"r");
stream = fopen(filnavn, "r"); //Åbner filen bestemt af *filnavn
if (!stream) //Hvis filen ikke kan åbnes skrives
{ //fejlmeddelse til skærmen, og programmet afsluttes
cout<<"Could not open file: \""<<filnavn<<"\"..."<<endl;
return;
}
//Kalder funktionen Seek, med "DISTANCE_RANGE" som søgestreng
r = Seek(stream,"DISTANCE_RANGE:");
if (!r) //Hvis r ikke kan findes, skrives
{ //fejlmeddelse til skærmen, og programmet afsluttes
cout<<"Could not find \"DISTANCE_RANGE:\"..."<<endl;
return; //afslutter funktionen hvis s›gestrengen ikke blev fundet
}
sscanf(r,"DISTANCE_RANGE: %f km",&range);
//S›ger efter DISTANCE_RANGE i stream gemmen pointeren r
delete[] r; //pointeren t bliver nedlagt igen, frigiver hukommelsen af r
//Kalder funktionen Seek, med "PULSE_WIDTH:" som søgestreng
p = Seek(stream,"PULSE_WIDTH:");
if (!p) //Hvis r ikke kan findes, skrives
{ //fejlmeddelse til skærmen, og programmet afsluttes
cout<<"Could not find \"PULSE_WIDTH:\"..."<<endl;
return;
}
sscanf(p,"PULSE_WIDTH: %f ns",&pulse);
//S›ger efter PULSE_WIDTH i stream gemmen pointeren p
delete[] p; //pointeren t bliver nedlagt igen, frigiver hukommelsen af p
//Kalder funktionen Seek, med "POS(km) VAL(dB)" som søgestreng
t = Seek(stream,"POS(km) VAL(dB)");
if (!t) //Hvis t ikke kan findes, skrives
{ //fejlmeddelse til skærmen, og programmet afsluttes
cout<<"Could not find \"POS(km) VAL(dB)\"..."<<endl;
return;
}
delete[] t; //pointeren t bliver nedlagt igen, frigiver hukommelsen af t
while (fgets(string,1023,stream))
{
if (string[0]>31) // Ignorér tomme linier (de begynder med newline, som er <32)
{
float x,y;
sscanf(string,"%f %f",&x,&y);
// printf("%f , %f\n",x,y); //TEST
// getch(); //TEST
x_max=Max_value(x_max,x);
y_max=Max_value(y_max,y);
xpos[coordinates]=x; ypos[coordinates]=y; coordinates++;
}
}
Graf(filnavn, x_max, y_max);
// Skriv(x_max, y_max, range, coordinates, pulse); //TESTUDSKRIFTER
printf("Distance range: %2.3f km\n", range);
printf("Pulse width: %2.0f ns\n\n", pulse);
cout<<"\tX max: "<<x_max<<endl;
cout<<"\tY max: "<<y_max<<endl;
cout<<"\nCoordinates found: "<<coordinates<<endl;
getch();
return;
}
//////////////////////////////////////////////////////////
// Spørger bruger efter fil som skal behandles //
//////////////////////////////////////////////////////////
char Enter_file(void)
{
char filnavn[80];
cout<<"Please enter path & filename: ";
cin>>filnavn;
return filnavn[80];
}
//////////////////////////////////////////////////////////
// Leder et dir bestemt af brugeren igennem for filer //
// af en bestemt extension, ogs† bestemt af brugeren //
//////////////////////////////////////////////////////////
int Dir_filer(void)
{
struct ffblk ffblk;
int done;
char c;
char filnavn[80]="c:\\otdr\\files.dat";
char sti[70];
char ext[10]="*.asc";
char opens[75];
clrscr();
// clearviewport();
// outtextxy(2,12, "Please enter path: (eg. d:\\otdr\\): ");
cout<<"Please enter path for files:"<<endl;
cout<<"(eg. n:\\Tad\\Edd\\Measurements\\Test1\\)"<<endl;
cout<<"Path: ";
cin>>sti;
strcpy(opens, sti);
strcat(opens, ext);
// outtextxy(2,22, "Files will be retrieved from: ");
// outtextxy(20,32, opens);
fstream in(filnavn, ios::out);
if (!in)
cerr<<"Unabel to open file: "<<filnavn<<" for input!";
else
{
clrscr();
cout<<"Files to analyse: \n";
done = findfirst(opens,&ffblk,0);
while (!done)
{
printf(" %s\n", ffblk.ff_name);
ofstream out(filnavn,ios::out|ios::app);
if(!out)
cerr<<"Unabel to open file: "<<filnavn<<" for output!";
out.write(sti, strlen(sti));
out.write(ffblk.ff_name, strlen(ffblk.ff_name));
out.write("\n",1);
while(out&&in.get(c))
out.put(c);
out.close();
done = findnext(&ffblk);
}
}
cout<<"\nPress any key to continue analyse.\n";
getch();
in.close();
return (0);
}
//////////////////////////////////////////////////////////
// Start p† menu funktionen, denne funktion lader //
// brugeren v‘lge den programk›rsel der passer ham //
// bedst. //
// MENU (u) //
//////////////////////////////////////////////////////////
Menu()
{
char ch=0;
// setviewport(0,0,320,240,1);
do
{
clrscr();
// clearviewport();
// rectangle(0,0,320,240);
// outtextxy(2,2, "(A)utomode");
cout<<"(A)utomode"<<endl;
// outtextxy(2,12, "(M)anual mode");
cout<<"(M)anual mode"<<endl;
// outtextxy(2,22, "This was a mistake I (Q)uit!");
cout<<"This was a mistake I (Q)uit!"<<endl;
// outtextxy(2,40, "Please choose mode: ");
cout<<"\nPlease choose mode: ";
ch = getch();
}
while(!strchr("amq", tolower(ch)));
if(tolower(ch)=='q')
{
return tolower(ch);
}
/////////////////AUTO MODE/////////////////////////
if(tolower(ch)=='a')
{
clrscr();
// clearviewport();
do
{
// rectangle(0,0,320,240);
// outtextxy(2,47,"Main men(U)");
cout<<"Main men(U)"<<endl<<endl;
// outtextxy(2,2,"S(I)ngle trace analysis");
cout<<"S(I)ngle trace analysis"<<endl;
// outtextxy(2,12,"Quick si(N)gle trace analysis");
cout<<"Quick si(N)gle trace analysis"<<endl;
// outtextxy(2,22,"Dual trace (C)omparison");
cout<<"Dual trace (C)omparison"<<endl;
// outtextxy(2,32,"Quick dual trace c(O)mparison");
cout<<"Quick dual trace c(O)mparison"<<endl;
// outtextxy(2,57,"(Q)uit program");
cout<<"(Q)uit program"<<endl;
// outtextxy(2,72,"Please choose: ");
cout<<"\nPlease choose: ";
ch = getch();
}
while(!strchr("cinoqu", tolower(ch)));
}
////////////////MANUAL MODE///////////////////////
else if(tolower(ch)=='m')
{
clrscr();
// clearviewport();
do
{
// rectangle(0,0,320,240);
// outtextxy(2,27,"Main men(U)");
cout<<"Main men(U)"<<endl<<endl;
// outtextxy(2,2,"(S)ingle trace analysis");
cout<<"(S)ingle trace analysis"<<endl;
// outtextxy(2,12,"(D)ual trace comparison");
cout<<"(D)ual trace comparison"<<endl;
// outtextxy(2,37,"(Q)uit program");
cout<<"(Q)uit program"<<endl;
// outtextxy(2,52,"Please choose: ");
cout<<"\nPlease choose: "<<endl;
ch = getch();
}
while(!strchr("dqsu", tolower(ch)));
}
return tolower(ch);
}
//////////////////////////////////////////////////
// int Auto_Dual() //
// Dette er til automatisk analyse af traces //
// angivet af et bruger defineret bibliotek. //
// QUICK MODE, uden grafik //
// MENU (c) //
//////////////////////////////////////////////////
int Auto_Dual()
{
clrscr();
// cleardevice();
cout<<"This is the Auto Dual function!!\n";
cout<<"Press any key!";
// outtextxy(0,0,"Dette er Auto_Dual funktionen!!");
// outtextxy(0,10,"Tryk en tast!");
getch();
return 0;
}
//////////////////////////////////////////////////
// int Auto_Dual_Graf() //
// Dette er den automatiske trace analyse med //
// grafisk fremstilling og delay. Defineret af //
// bruger, biblioteksbestemmelse. //
// MENU (o) //
//////////////////////////////////////////////////
int Auto_Dual_Graf()
{
clrscr();
// cleardevice();
cout<<"This is the Auto Dual Graf function!!\n";
cout<<"Press any key!";
// outtextxy(0,0,"Dette er Auto_Dual_Graf funktionen!!");
// outtextxy(0,10,"Tryk en tast!");
getch();
return 0;
}
//////////////////////////////////////////////////
// int Auto_Single() //
// Automatisk analyse af single trace filer, //
// een fil ad gangen, QUICK MODE uden grafik //
// Brugerdefineret bibliotek, samt delay //
// MENU (n) //
//////////////////////////////////////////////////
int Auto_Single()
{
Dir_filer(); //leder efter alle filer i dir!
int i=0;
char filnavn[80];
// int pts=0;
char str[1024];
FILE *test=fopen("c:\\otdr\\files.dat","r");
if(!test)
{
cout<<"File "<<test<<" not found\n";
cout<<"Make sure your permittet to write to disk!"<<endl;
cout<<"Press any key!";
getch();
return 0;
}
clrscr();
cout<<"Files opend!"<<endl<<endl;
while(fgets(str, 1023, test))
{
if(str[0]>31)
{
sscanf(str,"%s", &filnavn);
i++;
skriv(filnavn,i);
}
}
cout<<"\nFiles processed: "<<i<<endl;
return 0;
}
//////////////////////////////////////////////////////
// int Auto_Single_Graf() //
// Auto analyse af single, inkl. grafik og delay //
// Brugerdefineret bibliotek samt delay //
// MENU (i) //
//////////////////////////////////////////////////////
int Auto_Single_Graf()
{
clrscr();
// cleardevice();
// outtextxy(0,0,"Auto Single Graf function!!");
// getch();
cout<<"Auto Single Graf function!!\n";
cout<<"Press any key!";
getch();
return 0;
}
//////////////////////////////////////////////////////
// int Manual_Dual() //
// Manuel indtastning af begge filer, med mulighed //
// for grafik. //
// MENU (d) //
//////////////////////////////////////////////////////
int Manual_Dual()
{
// cleardevice();
// outtextxy(0,0,"Dette er Manual_Dual funktionen!!");
// outtextxy(0,10,"Tryk en tast!");
clrscr();
cout<<"This is the Manual Dual function!!\n";
cout<<"Press any key!";
getch();
return 0;
}
//////////////////////////////////////////////////////
// int Manual_Single() //
// Manuel valg af sti og fil til analyse. Valg af //
// grafik, samt gr‘nsev‘rdier for fejlfinding //
// MENU (s) //
//////////////////////////////////////////////////////
int Manual_Single()
{
// cleardevice();
// outtextxy(0,0,"Dette er Manual_Single funktionen!!");
// outtextxy(0,10,"Tryk en tast!");
clrscr();
cout<<"This is the Manual Single function!!\n";
cout<<"Press any key!";
getch();
return 0;
}
//////////////////////////////////////////////////////////
// Main, kalder funktionen scan, og overf›rer filen //
// som scan skal scanne igennem og finde v‘rider i. //
//////////////////////////////////////////////////////////
int main(void)
{/*
Auto_Single();
return 0;
} */
// int fejl;
// float maxx, maxy;
// int driver, mode;
// driver = DETECT;
// initgraph(&driver, &mode, "c:\\temp");
// fejl = graphresult();
// if (fejl)
// {
// cout<<"\nError no.: "<<fejl;
// cout<<"\n"<<grapherrormsg(fejl);
// exit(0);
// }
// maxx = getmaxx();
// maxy = getmaxy();
// setcolor(1);
// cleardevice();
// clrscr();
// Search_file("d:\\t.txt");
// Enter_file();
// getch();
for(;;)
{
switch(Menu())
{
case 'c': Auto_Dual(); break;
case 'd': Manual_Dual(); break;
case 'i': Auto_Single_Graf(); break;
case 'o': Auto_Dual_Graf(); break;
case 'q': Quit(); break;
case 's': Manual_Single(); break;
case 'n': Auto_Single(); break;
case 'u': Menu(); break;
}
}
// return 0;
}
