//---------------------------------------------------------------------------
#include <vcl\vcl.h>
#pragma hdrstop
#include <stdlib.h>
#include "Export.h"
//---------------------------------------------------------------------------
Export::Export()
{
	int t, i(0);
    string L("Lektion"),Ma("Mandag"),Ti("Tirsdag"),On("Onsdag"),To("Torsdag"),Fr("Fredag");
    int SLL(0),SLMa(0),SLTi(0),SLOn(0),SLTo(0),SLFr(0);
    char tal(49);

    SLL = strlen(L.c_str());
    SLMa = strlen(Ma.c_str());
    SLTi = strlen(Ti.c_str());
    SLOn = strlen(On.c_str());
    SLTo = strlen(To.c_str());
    SLFr = strlen(Fr.c_str());

    for(i = 0; i < 28; i++)
      for(t = 0; t < 84; t++)
        SPlan[i][t] = ' ';                  //blank stiller det doblete char array

    for(i = 0; i < 28; i = i + 3)           //vandrettte streger
	  for(t = 0; t < 84; t++)
        SPlan[i][t] = '-';

    for(t = 0; t < 85; t = t + 14)          //lodrette streger
	  for(i = 0; i < 28; i++)
        SPlan[i][t] = '|';

    for(i = 0; i < 28; i = i + 3)           //box kryds
      for(t = 0; t < 85; t = t + 14)
        SPlan[i][t] = '+';

    for(i = 4; i < 28; i = i + 3)           //Lektionerne indsættes
      for(t = 0; t < SLL; t++)
        SPlan[i][t+2] = L[t];
    for(i = 4; i < 28; i = i + 3)           //Lektions tal indsættes
      {
      SPlan[i][10] = tal;
      tal++;
      }

    for(t = 0; t < SLMa; t++)               //Dagene indsættes
        SPlan[1][t+18] = Ma[t];
    for(t = 0; t < SLTi; t++)
        SPlan[1][t+32] = Ti[t];
    for(t = 0; t < SLOn; t++)
        SPlan[1][t+46] = On[t];
    for(t = 0; t < SLTo; t++)
        SPlan[1][t+60] = To[t];
    for(t = 0; t < SLFr; t++)
        SPlan[1][t+74] = Fr[t];
}

void Export::udskriv(int type)
{
    if(type == 0)
    {
      int i, t;
      for(i = 0; i < 28;i++)
	    {
        for(t = 0; t < 85;t++)
          cout << Temp[i][t];
          cout << endl;
       }
    }
    if(type == 1)
    {
      int i, t;
      for(i = 0; i < 28;i++)
	    {
        for(t = 0; t < 85;t++)
          cout << SPlan[i][t];
          cout << endl;
       }
    }
}

bool Export::IndsaetPaaPlan(string hold, string fag, string laerer,
							   string lokale, int col, int row)
{                                                //indsætter på Temp
    int i, c1, c2, r;
    int SL1(0),SL2(0),SL3(0),SL4(0);             //string længderne
    SL1 = strlen(fag.c_str());
    SL2 = strlen(lokale.c_str());
    SL3 = strlen(laerer.c_str());
    SL4 = strlen(hold.c_str());

    if(0 <= row && row <= 7)                     //de rækker der findes
       r = 1+(row*3);
    else
       {
       cout << "\nFejl ved COL Export::IndsaetPaaPlan";
       return false;
       }

    if(0 <= col && col <= 4)                     //de kolonner der findes
       {
       c1 = 15+(col*14);
       c2 = 22+(col*14);
       }
    else
       {
       cout << "\nFejl ved ROW Export::IndsaetPaaPlan";
       return false;
       }

    for(i = 0; i < SL1; i++)                     //indsætter de forskelige string's
      Temp[r][c1+i] = fag[i];
    for(i = 0; i < SL2; i++)
      Temp[r+1][c1+i] = lokale[i];
    for(i = 0; i < SL3; i++)
      Temp[r][c2+i] = laerer[i];
    for(i = 0; i < SL4; i++)
      Temp[r+1][c2+i] = hold[i];
    return true;
}

void Export::NulstilTemp()                       //overskriver Temp med Splan
{
    int i, t;
    for(i = 0; i < 28;i++)
	  {
      for(t = 0; t < 85;t++)
        Temp[i][t] = SPlan[i][t];
      }
}

bool Export::SkemaTilFil(string FilNavn, string SkemaNavn, char valg)
{                                                             //char valg
	int SL(0);                                                //a = Append open for writing at end-of-file
	SL = strlen(SkemaNavn.c_str());                           //w = Create for writing

    FILE *FilUd;
	FilNavn += ".txt";
    if(valg == 'a')
     FilUd = fopen(FilNavn.c_str(), "a");
    if(valg == 'w')
     FilUd = fopen(FilNavn.c_str(), "w");

    fputc('\n' , FilUd);
    for(int i = 0; i < SL; i++)
      fputc(SkemaNavn[i] , FilUd);

    fputc('\n' , FilUd);
    for(int i = 0; i < 10; i++)
      fputc('-' , FilUd);

   fputc('\n' , FilUd);
      for(int i = 0; i < 28;i++)
	    {
        for(int t = 0; t < 85;t++)
          fputc(Temp[i][t] , FilUd);
          fputc('\n' , FilUd);
          }
    fclose(FilUd);
    return true;
}
void Export::Ny(string FilNavn)
{
    FILE* FilUd;
	FilNavn += ".txt";
	FilUd = fopen(FilNavn.c_str(), "w");
    fclose(FilUd);
}
void Export::SkemaTilPrinter(string SkemaNavn)
{
/*	Printer()->BeginDoc();                 //starter dokument til printer
    									   //Canvas: print type, TextOut: lægger på Canvas (x, y, "tekst")
    Printer()->Canvas->TextOut(20, 20, "hej askgh");
    Printer()->EndDoc();                   //sluter dokument til printer, og printer  */
 	char Linje[85];
    int Pt(180);

    TFont* a = new TFont;
    a->Name = "LinePrinter";                                       //Font: LinePrinter
   Printer()->BeginDoc();
    Printer()->Canvas->Font = a;
    Printer()->Canvas->TextOut(460, 120, SkemaNavn.c_str());       //linje til linje 40 ved tekst
    Printer()->Canvas->TextOut(460, 140, "--------------------");
    for(int i = 0; i < 28;i++)
      {
      for(int t = 0; t < 85;t++)
        Linje[t] = Temp[i][t];
        Linje[85] = ' ';                   //Builder version 1,0 har to tegn mere en version 3,0
        Linje[86] = ' ';
	  Printer()->Canvas->TextOut(460, Pt, Linje);
      Pt += 40;
      }
    Printer()->EndDoc();
}

