46 bool LoadCsvFile(LPCTSTR lpszFileName,
bool hasHeadLine =
true)
48 _super::AllDeleteRecord();
50 if ( fr.
Open(lpszFileName) )
54 m_Load(fr, hasHeadLine);
59 _super::AllDeleteRecord();
78 bool SaveCsvFile(LPCTSTR lpszFileName,
bool hasHeadLine =
true)
const
81 if ( fw.
New(lpszFileName) )
85 m_Save(fw, hasHeadLine);
108 void m_Load(
const IReader& r,
bool hasHeadLine)
123 INDEX rec = _super::AddRecord();
124 ASSERT( rec != INVALID_INDEX );
125 loop ( i, min(va.
GetSize(), _super::GetFieldCount()) )
132 if ( ! _super::SetStringRecord(rec, i,
CStr(a)) )
149 void m_Save(
IWriter& _w,
bool hasHeadLine)
const
156 loop ( i, _super::GetFieldCount() )
163 if ( _super::GetFieldInfo(fi, i) ==
EK_Invalid )
170 _w.
Write(
sizeof(BYTE), &CR);
176 loop ( i, _super::GetFieldCount() )
182 s += _super::GetStringRecord(rec, i,
true);
185 _w.
Write(
sizeof(BYTE), &CR);
188 friend class CGridFileTest;
#define loop(VAR, CNT)
loop構文.
bool Open(LPCTSTR lpszName, bool boIsShare=true, bool boDummy=false)
[操作] オープン
bool New(LPCTSTR lpszName, bool boIsShare=true)
[操作] 新規オープン.
bool LoadCsvFile(LPCTSTR lpszFileName, bool hasHeadLine=true)
[読込] CSVファイル読込み.
bool SaveCsvFile(LPCTSTR lpszFileName, bool hasHeadLine=true) const
[書出] CSVファイル書き出し
size_t GetRecordCount(void) const
[取得] レコード数取得
static CVectorT< CStrT< TYP > > SeparatePeriod(const TYP *lpsz, const TYP *lpszMark, bool isCheckDc=true)
[取得] トークン区切取得
static CVectorT< CStrT< TYP > > SeparateLine(const TYP *lpsz)
[取得] 改行毎分離
size_t GetLength(void) const
[取得] 文字列長
CStrT & SetFromLeft(const TYP *lpText, size_t iLen)
[代入] 文字数制限代入.
void OnCatch(void) const
[表示] 内容表示
virtual size_t GetSize(void) const
[取得] サイズ取得
virtual bool Remove(INDEX index)
[削除] 要素一つ削除.
virtual const TYP * ReferBuffer(void) const
[取得] データアドレス取得
virtual INDEX Add(const TYP &t)
[追加] 要素一つ追加.
TNB::CStrT< char > CAscii
ASCII文字列クラス
TNB::CStrT< TCHAR > CStr
文字列クラス
bool IsEmpty(void) const
[確認] 要素の有無確認.
void ReadExactly(size_t size, LPVOID _P) const
[取得] 読み込み.
virtual void Write(size_t size, LPCVOID P)=0
[保存] 書き込み