skill/
skill/files/
skill/files/src/
#include <fstream>
#include <iostream>

using namespace std;

#define FROM_MUD_H "frommud.txt"
#define CMD_LST "skill.list"

int main()
{
 void open_file(ifstream& fin,ofstream& fout);
 void read_file(ifstream& fin,ofstream& fout);
 
 ifstream fin;
 ofstream fout;
 
 
 
 open_file(fin,fout);
 read_file(fin,fout);
 
 
 
 
 return 0;
}


void open_file(ifstream& fin,ofstream& fout)
{
 fin.open(FROM_MUD_H);
 if(!fin)
 {
  cout<<"\n File \""<<FROM_MUD_H<<"\" could not be opened.\n"
      <<" Program will now exit.\n";
      exit(0);
 }
 fout.open(CMD_LST);
  if(!fout)
 {
  cout<<"\n File \""<<CMD_LST<<"\" could not be opened.\n"
      <<" Program will now exit.\n";
      exit(0);
 }

}


#define MAX_E 100

void read_file(ifstream& fin,ofstream& fout)
{
 int find_txt(string ,char [MAX_E]);
 int find_non_letter(string ,string& );
 string text;
 string cmd;
 string cmd2;
 string last=" ";
 int end=0;
 while( getline(fin,text) )
 {
  end=(find_txt(text,");")-19);
  cmd2=text.substr(19,end);
  
  end=find_non_letter(cmd2,cmd);
  
  fout<<cmd<<"\n";
  

  text.erase();
  cmd2.erase();
  cmd.erase();
  }
  
  
 }
 
 
 int find_non_letter(string x,string& cmd)
 {
  int result;
  
  for(int i=0;i<x.length();++i)
  {
   if( x.at(i) == 'a' || x.at(i) == 'b' || x.at(i) == 'c' || x.at(i) == 'd' ||
       x.at(i) == 'e' || x.at(i) == 'f' || x.at(i) == 'g' || x.at(i) == 'h' ||
       x.at(i) == 'i' || x.at(i) == 'j' || x.at(i) == 'k' || x.at(i) == 'l' ||
       x.at(i) == 'm' || x.at(i) == 'n' || x.at(i) == 'o' || x.at(i) == 'p' ||
       x.at(i) == 'q' || x.at(i) == 'r' || x.at(i) == 's' || x.at(i) == 't' ||
       x.at(i) == 'u' || x.at(i) == 'v' || x.at(i) == 'w' || x.at(i) == 'x' ||
       x.at(i) == 'y' || x.at(i) == 'z' || x.at(i) == '_' || x.at(i) == '1' ||
       x.at(i) == '2' || x.at(i) == '3' || x.at(i) == '4' || x.at(i) == '5' ||
       x.at(i) == '6' || x.at(i) == '7' || x.at(i) == '8' || x.at(i) == '9' ||
       x.at(i) == '0' )
       {
       	cmd+=x.at(i);
       	
       }
       else
       result = i;
  }	
  
  cout<<cmd<<" result= "<<result<<"\n";
  return result;
}

 

 
 int find_txt(string x,char y[MAX_E])
 {
  cout<<"\n"<<x;
  int result=0;
  for(int i=0;i<x.length();++i)
  {
   if(x.at(i) == y[0] && x.at(i+1) == y[1] )
   {
    result = i;
   }
  }
  if(result==0)
  {
   cout<<"ERROR";
   exit(0);
  }
  return result;
}