

#ifndef VStrBuf_h
#define VStrBuf_h

//---------------------
#include <Classes.hpp>
//---------------------


//[설명][2021.02.06.토]{**************************************************************
//
//<VStrBuf> 는 원래 [맷돌-IDE 배포판 제작기] 를 만들면서 <GString.c> 로 만든 것으로
//<AnsiString> 과 같이 길이에 제한 없이 [문자열] 을 다루기 위한 것.
//<GString.c> 을 그대로 BCB 로 이식한다.
//
//[문자열:저장소] 의 의미로 <AnsiString> 과 같이 [문자열:더하기] 등과 같은 연산보다는
//[저장소:크기] 를 사용자가 관리할 필요 없이 문자열을 다룰수 있도록 하려는 것.
//
//간단한 개념이나, 실제 [설계묶음] 제작시 매우 필요 빈도가 높고 중요한 기능이라 아예
//[맷돌:API] 로 만든 것.
//
//}***********************************************************************************


class VSTRBUF
{
  public:

  //[VAR]
  //{
      char  *buf_;

      int    bufSize;

      //현재까지 저장된 내용의 크기(문자열 끝 '\0' 위치).
      int    strLength;

      //확장 단위(기본 1K).
      int    extUnit;

  //}

  //[2021.02.06.토][완료]
  __fastcall VSTRBUF(void);

  //[2021.02.06.토][완료]
  __fastcall ~VSTRBUF(void);

  //[2021.02.06.토][완료]
  void __fastcall Create(void);

  //[2021.02.06.토][완료]
  void __fastcall Delete(void);

  //[2021.02.07.일][완료]
  void __fastcall Assign(char  *pStr);

  //[2021.02.06.토][완료]
  void __fastcall Add(char  *pStr);

  //[2021.02.06.토][완료]
  int __fastcall Get_BufSize(void);

  //[2021.02.06.토][완료]
  int __fastcall Get_StrLength(void);

  //[2021.02.06.토][완료]
  char * __fastcall Get_Str(void);

};

//[2021.02.06.토][완료]
void __fastcall VStrBuf_Create(void  *pCreator);

//[2021.02.06.토][완료]
void __fastcall VStrBuf_Delete(void  *pCreator);


#endif





