Restructure repository to include all source folders
Move git root from Client/ to src/ to track all source code: - Client: Game client source (moved to Client/Client/) - Server: Game server source - GameTools: Development tools - CryptoSource: Encryption utilities - database: Database scripts - Script: Game scripts - rylCoder_16.02.2008_src: Legacy coder tools - GMFont, Game: Additional resources 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
141
CryptoSource/NFZipper/NFFilePtr.h
Normal file
141
CryptoSource/NFZipper/NFFilePtr.h
Normal file
@@ -0,0 +1,141 @@
|
||||
/**
|
||||
* @file NFFilePtr.h
|
||||
* @brief FILE auto close class
|
||||
* @remarks
|
||||
* @author <09><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(edith2580@gmail.com)
|
||||
* @date 2009-04-02
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <stdio.h> // standard I/O
|
||||
|
||||
namespace Nave {
|
||||
|
||||
/**
|
||||
* @class NFFilePtr
|
||||
* @brief FILE auto close class
|
||||
* @remarks NFFilePtr file(L"c:\\1.txt", L"rt"); \r\n
|
||||
* fgets(str, 128, file); \r\n
|
||||
* return;
|
||||
* @par
|
||||
* @author Edith
|
||||
* @date 2009-04-05
|
||||
*/
|
||||
class NFFilePtr
|
||||
{
|
||||
public:
|
||||
/// NFFilePtr <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
NFFilePtr() : m_pFile(NULL)
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief <20><><EFBFBD><EFBFBD> <20>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
* @param file <20><><EFBFBD>ϸ<EFBFBD>
|
||||
* @param mode <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
*/
|
||||
NFFilePtr(LPCSTR file, LPCSTR mode)
|
||||
{
|
||||
m_pFile = fopen(file, mode);
|
||||
}
|
||||
|
||||
/// NFFilePtr <20>Ҹ<EFBFBD><D2B8><EFBFBD>
|
||||
~NFFilePtr()
|
||||
{
|
||||
if(m_pFile)
|
||||
fclose(m_pFile);
|
||||
|
||||
m_pFile = NULL;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief NFFilePtr1 = FilePtrW2 <20><><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD><EFBFBD>
|
||||
* @warning NFFilePtr2<72><32> <20><><EFBFBD>̻<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ҽ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ϴ<EFBFBD>.
|
||||
*/
|
||||
NFFilePtr& operator=(NFFilePtr& _Right) throw()
|
||||
{
|
||||
Reset(_Right.Release());
|
||||
return (*this);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief NFFilePtr = FILE* <20><><EFBFBD>ͷ<EFBFBD><CDB7><EFBFBD><EFBFBD><EFBFBD>
|
||||
* @warning NFFilePtr<74><72><EFBFBD><EFBFBD> <20>ڵ<EFBFBD> fclose<73><65> <20>˴ϴ<CBB4>. \r\n
|
||||
* FILE*<2A><>ü<EFBFBD><C3BC> fclose<73>ϸ<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><DFBB><EFBFBD> <20><><EFBFBD>ֽ<EFBFBD><D6BD>ϴ<EFBFBD>.
|
||||
*/
|
||||
NFFilePtr& operator=(FILE* _Right) throw()
|
||||
{
|
||||
Reset(_Right);
|
||||
return (*this);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief FILE* <20><><EFBFBD><EFBFBD>ȯ <20><><EFBFBD>۷<EFBFBD><DBB7><EFBFBD><EFBFBD><EFBFBD> <20>Դϴ<D4B4>.
|
||||
* @return <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
*/
|
||||
operator FILE*() const throw()
|
||||
{
|
||||
return m_pFile;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ʱ<EFBFBD>ȭ <20>մϴ<D5B4>. FILE<4C><45> close <20><><EFBFBD><EFBFBD> <20>ʽ<EFBFBD><CABD>ϴ<EFBFBD>.
|
||||
* @return <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
*/
|
||||
FILE* Release()
|
||||
{
|
||||
FILE* fp = m_pFile;
|
||||
m_pFile = NULL;
|
||||
return fp;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief <20><><EFBFBD>ο<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>缳<EFBFBD><E7BCB3><EFBFBD>մϴ<D5B4>. <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> FILE<4C><45> close <20>˴ϴ<CBB4>.
|
||||
* @param fp <20><><EFBFBD>ο<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
*/
|
||||
void Reset(LPCSTR file, LPCSTR mode)
|
||||
{
|
||||
if(m_pFile)
|
||||
fclose(m_pFile);
|
||||
|
||||
m_pFile = fopen(file, mode);
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief <20><><EFBFBD>ο<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>缳<EFBFBD><E7BCB3><EFBFBD>մϴ<D5B4>.
|
||||
* <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> FILE<4C><45> close <20>˴ϴ<CBB4>.
|
||||
* @param fp <20><><EFBFBD>ο<EFBFBD> <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
*/
|
||||
void Reset(FILE* fp)
|
||||
{
|
||||
if(m_pFile)
|
||||
fclose(m_pFile);
|
||||
|
||||
m_pFile = fp;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD≯<EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>մϴ<D5B4>.
|
||||
* @return <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
*/
|
||||
long Length()
|
||||
{
|
||||
fpos_t cuspos;
|
||||
if(fgetpos( m_pFile, &cuspos ) != 0)
|
||||
return -1; // error
|
||||
|
||||
fseek( m_pFile, 0L, SEEK_END );
|
||||
long length = ftell( m_pFile );
|
||||
|
||||
fsetpos(m_pFile, &cuspos);
|
||||
return length;
|
||||
}
|
||||
|
||||
|
||||
private:
|
||||
/// <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
FILE* m_pFile;
|
||||
};
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user