Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //---------------------------------------------------------------------------
- #pragma hdrstop
- #include "DataProgram.h"
- //---------------------------------------------------------------------------
- #pragma package(smart_init)
- TDataProgram::TDataProgram()
- {
- Memos = new TStringList;
- Bitmaps = new TStringList;
- }
- TDataProgram::~TDataProgram()
- {
- } //zdefiniowany konstruktor i destruktor klasy TDataprogram
- //----------------------------------------------------------------------------
- String TDataProgram::SetColSize(int Cols, TStringGrid *Grid)
- {
- String temp = "";
- for (int i= 0; i < Cols; i++)
- {
- temp = temp+IntToStr(Grid->ColWidths[i])+ "+";
- }
- temp.Delete(temp.Length(), 1);
- return temp;
- }
- //----------------------------------------------------------------------------
- void TDataProgram::GetColSize(String Text, int Cols, TStringGrid *Grid)
- {
- int Cx;
- for (int i = 0; i < Cols; i++)
- {
- int x = Text.LastDelimiter("+");
- try{Cx = (Text.SubString(x+1,4)).ToInt();}catch(...){Cx=60;}
- Grid->ColWidths[Cols - i - 1] = Cx;
- Text.Delete(x,4);
- }
- }
- //----------------------------------------------------------------------------
- void TDataProgram::SaveToFile(String FileName, TStringGrid *Grid)
- {
- TStringList *List = new TStringList;
- String temp1 = "", temp2;
- for (int i=0; i< Grid->RowCount; i++)
- {
- for (int j = 0; j< Grid->ColCount; j++)
- {
- if (Grid->Cells[j][i]. IsEmpty())temp2 = "[Null]";
- else temp2 = Grid->Cells[j][i];
- temp1 = temp1+temp2+"+";
- }
- temp1.Delete(temp1.Length(), 1);
- List->Add(temp1);
- temp1 = "";
- }
- List->Add("[Memory Section]");
- for (int i = 0; i < Memos->Count; i++)
- {
- List->Add(Memos->Strings[i]);
- }
- for (int i = 0; i < Bitmaps->Count; i++)
- {
- List->Add(Bitmaps->Strings[i]);
- }
- List->Add(SetColSize(Grid->ColCount, Grid));
- List->SaveToFile(FileName);
- List->Free();
- }
- void TDataProgram::LoadFromFile(String FileName, TStringGrid *Grid)
- {
- TStringList *List = new TStringList;
- List->LoadFromFile(FileName);
- int x = CalcColumns(List->Strings[0]);
- Grid->ColCount = x;
- Grid->RowCount = CalcLines(List);
- GetColSize(List->Strings[List->Count-1],x,Grid);
- String temp;
- for (int i=0; i < List->Count-1; i++)
- {
- if(!GetMemoSection(List->Strings[i]))
- {
- for (int j = 0; j<x; j++)
- {
- int y = List->Strings[i].LastDelimiter("+");
- temp = List->Strings[i].SubString(y+1, 1000);
- if(temp == "[Null]")temp=="";
- Grid->Cells[x-j-1][i] = temp;
- List->Strings[i] = List->Strings[i].Delete(y,1000);
- }
- }
- else
- {
- if(List->Strings[i].SubString(1,6) == "[Memory]")
- Memos->Add(List->Strings[i]);
- if(List->Strings[i].SubString(1,9) == "[Bitmaps]")
- Bitmaps->Add(List->Strings[i]);
- }
- }
- Bitmaps->SaveToFile("Output/Bitmapinformation.fib");
- List->Free();
- }
- //---------------------------------------------------------------------------
- int TDataProgram::CalcColumns(String Text)
- {
- int x = 0;
- for (int i = 0; i < Text.Length(); i++)
- {
- x = (Text.SubString(i,1) == "+")? x+1:x;
- }
- return x+1;
- }
- int TDataProgram::CalcLines(TStringList *List)
- {
- for (int i = 0; i < List->Count; i++)
- {
- if (List->Strings[i] == "[Memory Section]")
- return i;
- }
- return List->Count-1;
- }
- //---------------------------------------------------------------------------
- bool TDataProgram::GetMemoSection(String Text)
- {
- bool test = (Text.SubString(1,6) == "Memory"||
- Text.SubString(1,9) == "[Bitmaps]"||
- Text.SubString(1,14) == "[Memory Section]") ?true:false;
- return test;
- }
- //---------------------------------------------------------------------------
- void TDataProgram::SetMemo (String Text, int number)
- {
- String temp = "[Null]"+IntToStr(number)+"+";
- int length = temp.Length();
- bool test = false;
- for (int i = 0 ; i < Memos->Count; i++)
- {
- if (Memos->Strings[i].SubString(1,length)==temp)
- {
- Memos->Strings[i] = temp+Text;
- test = true;
- break;
- }
- }
- if (!test)Memos->Add(temp+Text);
- }
- //-----------------------------------------------------------------------------
- int TDataProgram::LinesMemo (String Text)
- {
- int x = 0;
- for (int i = 0; i < Text.Length(); i++)
- {
- x = (Text.SubString(i,1) == "|") ?x=1:x;
- }
- return x;
- }
- memo TDataProgram::GetMemo (int number)
- {
- String temp;
- memo go;
- int z;
- for (int i = 0; i < Memos->Count; i++)
- {
- temp = Memos->Strings[i].SubString(7,1000);
- int x = temp.LastDelimiter("+");
- try{z = (temp.SubString(0,x-1)).ToInt();}catch(...){z=0;}
- if (z == number)
- {
- temp = temp.Delete(1,x);
- break;
- }
- }
- if (z==number)
- {
- note = true;
- MemoCount = LinesMemo(temp);
- for (int i = 0; i < MemoCount; i++)
- {
- int x = temp.LastDelimiter("|");
- go.A[i] = (temp.SubString(x+1, 1000));
- temp = temp.Delete(x,1000);
- }
- }
- else note = false;
- return go;
- }
- //----------------------------------------------------------------------------
- void TDataProgram::SetBitmap(String FileName, int number)
- {
- String temp = "[Bitmaps]"+ IntToStr(number)+ "+";
- int length = temp.Length();
- bool test = false;
- for (int i = 0; i < Bitmaps->Count; i++)
- {
- if (Bitmaps->Strings[i].SubString(1,length) == temp)
- {
- Bitmaps->Strings[i] = temp+ FileName;
- test = true;
- break;
- }
- }
- if(!test)Bitmaps->Add(temp+FileName);
- }
- String TDataProgram::GetBitmap (int number)
- {
- String temp = "";
- int z;
- for (int i = 0; i<Bitmaps->Count; i++)
- {
- temp = Bitmaps->Strings[i].SubString(10,300);
- int x = temp.LastDelimiter("+");
- try{z= (temp.SubString(1,x-1)).ToInt();}catch(...){z=0;}
- if (z==number)
- {
- temp = temp.Delete(1,x);
- return temp;
- }
- }
- return temp;
- }
- //----------------------------------------------------------------------------
- void TDataProgram::RefreshDataProgram(void)
- {
- Bitmaps->Clear();
- Memos->Clear();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement