//--------------------------------------------------------------------------- #include #pragma hdrstop #include "TPTextIO.h" #pragma package(smart_init) //--------------------------------------------------------------------------- __fastcall TPTextOut::TPTextOut() { // »ý¼º ÀÛ¾÷ nCurrentLineNum = 0; SaveList = new TStringList; RangeList = new TList; } //--------------------------------------------------------------------------- __fastcall TPTextOut::~TPTextOut() { Clear(); if (SaveList) delete SaveList; if (RangeList) delete RangeList; } //--------------------------------------------------------------------------- bool __fastcall TPTextOut::InitFile() { // Áö±ÝÀº Ưº°È÷ ÇÏ´Â ÀÛ¾÷ ¾øÀ½.. return true; } //--------------------------------------------------------------------------- bool __fastcall TPTextOut::Add(AnsiString NewLine, RECT *Range) { // AnsiString Ãß°¡ RECT *TempRect=NULL; int cx, cy; bool IsAdd = false; cx = (Range->left+Range->right)/2; cy = (Range->top+Range->bottom)/2; int i=0; for (i = 0; i < RangeList->Count; i++) { TempRect = (RECT *)RangeList->Items[i]; if(TempRect->top>cy||(TempRect->top<=cy && TempRect->bottom>=cy &&TempRect->left>=cx)){ // SaveList->Insert(i, NewLine, Range); Insert(i, NewLine, Range); IsAdd=true; break; // RangeList->Add(Range); } } if(!IsAdd){ Insert(i, NewLine, Range); } nCurrentLineNum = SaveList->Count; // Warning ¼öÁ¤ (2007. 05. 17 Annualring) return true; } //--------------------------------------------------------------------------- bool __fastcall TPTextOut::Add(TStringList *NewLineList, TList *RanList) { // StringList Ãß°¡ if (NewLineList) { for (int i = 0; i < NewLineList->Count; i++) { Add(NewLineList->Strings[i],(RECT *)RanList->Items[i]); // SaveList->Add(NewLineList->Strings[i]); // RangeList->Add(Range); } nCurrentLineNum = SaveList->Count; return true; } else return false; } //--------------------------------------------------------------------------- bool __fastcall TPTextOut::Insert(int LineNum, AnsiString NewLine, RECT *Range) { // AnsiString »ðÀÔ SaveList->Insert(LineNum, NewLine); RangeList->Insert(LineNum, Range); nCurrentLineNum = LineNum; // Warning ¼öÁ¤ (2007. 05. 17 Annualring) return true; } //--------------------------------------------------------------------------- bool __fastcall TPTextOut::Insert(int LineNum, TStringList *NewLineList, TList *RanList) { // StringList »ðÀÔ if (NewLineList && LineNum < SaveList->Count) { for (int i = 0; i < NewLineList->Count; i++) { Insert(LineNum+i,NewLineList->Strings[i], (RECT *)RanList->Items[i]); // SaveList->Insert(LineNum+i, NewLineList->Strings[i]); // RangeList->Insert(LineNum+i,RanList->Items[i]); } // nCurrentLineNum = LineNum + NewLineList->Count; return true; } else return false; } //--------------------------------------------------------------------------- bool __fastcall TPTextOut::LoadFromFile(AnsiString Filename) { // ÆÄÀÏÀ» ¸®½ºÆ®·Î.. (ÆÄÀÏ À̸§À» ¹Ù²ÙÁö ¾Ê´Â °æ¿ì¸¸ »ç¿ë) if (FileExists(Filename)) { SaveList->LoadFromFile(Filename); nCurrentLineNum = SaveList->Count; return true; } else return false; } //--------------------------------------------------------------------------- bool __fastcall TPTextOut::SaveToFile(AnsiString Filename, bool bOverWright) { // ¸®½ºÆ®¸¦ ÆÄÀÏ·Î.. bool bSave = false; if(!bOverWright){ if (FileExists(Filename)) { if (Application->MessageBox("Text file already exists. Do you want to overwrite It?", "File Exist", MB_YESNO | MB_ICONWARNING) == IDYES) { // ¸Þ½ÃÁö : ÆÄÀÏÀ» µ¤¾î¾µÁö ¹°¾îº½ bSave = true; // µ¤¾î¾²´Â °æ¿ì.. } } else bSave = true; }else{ bSave = true; } if (bSave) { SaveList->SaveToFile(Filename); return true; } else return false; } //--------------------------------------------------------------------------- bool __fastcall TPTextOut::RemoveLine(int LineNum) { // StringList¿¡¼­ ÇØ´ç ¶óÀÎ Áö¿ì±â if (LineNum < SaveList->Count) { SaveList->Delete(LineNum); RangeList->Delete(LineNum); nCurrentLineNum = SaveList->Count; return true; } else return false; } //--------------------------------------------------------------------------- bool __fastcall TPTextOut::Clear() { // StringList Áö¿ì±â RECT * Temp; SaveList->Clear(); for(int i=0;iCount;i++){ Temp = (RECT *)RangeList->Items[i]; delete Temp; Temp = NULL; } RangeList->Clear(); return true; } //--------------------------------------------------------------------------- AnsiString __fastcall TPTextOut::GetTextData() { AnsiString Result=""; for (int i = 0; i < SaveList->Count; i++) { Result=Result+SaveList->Strings[i]+"\t"; } if(SaveList->Count>0){ return "N\t"+Result; }else{ return Result; } } //--------------------------------------------------------------------------- __fastcall TPTextIn::TPTextIn() { // »ý¼º ÀÛ¾÷ LoadList = new TStringList; } //--------------------------------------------------------------------------- __fastcall TPTextIn::~TPTextIn() { Clear(); if (LoadList) delete LoadList; } //--------------------------------------------------------------------------- bool __fastcall TPTextIn::LoadFromFile(AnsiString Filename) { // ÆÄÀÏÀ» ¸®½ºÆ®·Î.. (ÆÄÀÏ À̸§À» ¹Ù²ÙÁö ¾Ê´Â °æ¿ì¸¸ »ç¿ë) if (FileExists(Filename)) { LoadList->LoadFromFile(Filename); // nCurrentLineNum = LoadList->Count; return true; } else return false; } int __fastcall TPTextIn::GetCount() { return LoadList->Count; } bool __fastcall TPTextIn::IsOK(int LineNum) { int nResult; TStringList *StringList; AnsiString TempString; if(LoadList->Count>0&& LineNum < LoadList->Count){ StringList = new TStringList; TempString = LoadList->Strings[LineNum]; StringList->Delimiter = ':'; StringList->DelimitedText = TempString; if(StringList->Count==3){ try{ nResult = StrToInt(StringList->Strings[0].Trim()); }catch(EConvertError &exception){ delete StringList; StringList = NULL; return false; } }else{ delete StringList; StringList = NULL; return false; } delete StringList; StringList = NULL; return true; } return false; } int __fastcall TPTextIn::GetSheetNum(int LineNum) { int nResult; TStringList *StringList = new TStringList; AnsiString TempString = LoadList->Strings[LineNum]; StringList->Delimiter = ':'; StringList->DelimitedText = TempString; nResult = StrToInt(StringList->Strings[0].Trim()); delete StringList; StringList = NULL; return nResult; } AnsiString __fastcall TPTextIn::GetFieldName(int LineNum) { AnsiString ResultString; TStringList *StringList = new TStringList; AnsiString TempString = LoadList->Strings[LineNum]; StringList->Delimiter = ':'; StringList->DelimitedText = TempString; ResultString = StringList->Strings[1].Trim(); delete StringList; StringList = NULL; return ResultString; } AnsiString __fastcall TPTextIn::GetFieldValue(int LineNum) { AnsiString ResultString; TStringList *StringList = new TStringList; AnsiString TempString = LoadList->Strings[LineNum]; StringList->Delimiter = ':'; StringList->DelimitedText = TempString; ResultString = StringList->Strings[2].Trim(); delete StringList; StringList = NULL; return ResultString; } //--------------------------------------------------------------------------- bool __fastcall TPTextIn::Clear() { // StringList Áö¿ì±â LoadList->Clear(); return true; } //---------------------------------------------------------------------------