Remove unused ProjectConfiguration
[xy_vsfilter.git] / src / subtitles / TextFile.h
blobed00bb8f9818caea6796ba87518c91045deda2b9
1 /*
2 * Copyright (C) 2003-2006 Gabest
3 * http://www.gabest.org
5 * This Program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2, or (at your option)
8 * any later version.
9 *
10 * This Program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
15 * You should have received a copy of the GNU General Public License
16 * along with GNU Make; see the file COPYING. If not, write to
17 * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
18 * http://www.gnu.org/copyleft/gpl.html
22 #pragma once
24 #include <afx.h>
26 class CTextFile : protected CStdioFile
28 public:
29 typedef enum {ASCII, UTF8, LE16, BE16, ANSI} enc;
31 private:
32 enc m_encoding, m_defaultencoding;
33 int m_offset;
35 public:
36 CTextFile(enc e = ASCII);
38 virtual bool Open(LPCTSTR lpszFileName);
39 virtual bool Save(LPCTSTR lpszFileName, enc e /*= ASCII*/);
41 void SetEncoding(enc e);
42 enc GetEncoding();
43 bool IsUnicode();
45 // CFile
46 virtual UINT Read(void* lpBuf, UINT nCount);
47 CString GetFilePath() const;
49 // CStdioFile
51 ULONGLONG GetPosition() const;
52 ULONGLONG GetLength() const;
53 ULONGLONG Seek(LONGLONG lOff, UINT nFrom);
55 void WriteString(LPCSTR lpsz/*CStringA str*/);
56 void WriteString(LPCWSTR lpsz/*CStringW str*/);
57 BOOL ReadString(CStringA& str);
58 BOOL ReadString(CStringW& str);
61 class CWebTextFile : public CTextFile
63 LONGLONG m_llMaxSize;
64 CString m_tempfn;
66 public:
67 CWebTextFile(LONGLONG llMaxSize = 1024*1024);
69 bool Open(LPCTSTR lpszFileName);
70 bool Save(LPCTSTR lpszFileName, enc e /*= ASCII*/);
71 void Close();
74 CStringW AToW(const CStringA& str);
75 CStringA WToA(const CStringW& str);
76 CString AToT(const CStringA& str);
77 CString WToT(const CStringW& str);
78 CStringA TToA(const CString& str);
79 CStringW TToW(const CString& str);