91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 2KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發布日期: 2021-05-20
  • 語言: C/C++
  • 標簽: C++??Torrent??

資源簡介

使用C++對.torrent文件進行解析。后期也可以根據需要編寫自己需要的函數。

資源截圖

代碼片段和文件信息

#include?“StdAfx.h“
#include?“TorrentFile.h“

CTorrentFile::CTorrentFile(?const?wstring?&?fileName?)?:?m_strFileName?(fileName)
?m_nInt(0)
{
m_ifstream.open?(?m_strFileName.c_str()??ios::binary?|?ios::out?);
m_vecString.clear();
m_strString.clear();
}

CTorrentFile::~CTorrentFile(void)
{
if(m_ifstream.is_open())
m_ifstream.close();
}


int?CTorrentFile?::?readINT?(?ifstream?&?in)
{
char?len[128]?=?{0};
int?i?=?0;
while?(1)
{
char?p;
in.read(?&p??1);
if?(?p?==?‘:‘?||?p?==?‘e‘)
break;
else
len[i++]?=?p;
}
return?(atoi?(len));
}


string?CTorrentFile?::?readString?(?ifstream?&?in??const?int?&?len)
{
char?*?p?=?new?char[len?+1];
memset(?p??0??len+1);
in.read(p??len);
string?str?(p);
delete?[]?p?;
return?str;
}


void?CTorrentFile?::?getDataType?(?ifstream?&in?)
{
DataType?result;
char?p?;
in.read(&p?1);
if?(in.eof())
return?;
else
{
if?(?p?==?‘l‘)
{
result?=?DataType_LISTS;
getDataLIST(in);
}
else?if?(p?==?‘d‘?)
{
result?=?DataType_DICT?;
getDataDICT(in);
}
else?if?(p?==?‘i‘)
{
result?=?DataType_INT;
getDataINT?(in);
}
else?if?(p?==?‘e‘)
{
result?=?DataType_END;
getDataType?(in);
}
else
{
result?=?DataType_STRINGS;
getDataSTRING?(in);
}
}
}


DataType??CTorrentFile?::?readDataType?(ifstream?&?in)
{
DataType?result?;
char?p?;
in.read(&p?1);
if?(‘d‘?==?p)
result?=?DataType_DICT?;
else?if?(‘l‘?==?p)
result?=?DataType_LISTS;
else?if?(‘i‘?==?p)
result?=?DataType_INT?;
else?
result?=?DataType_STRINGS;
return?result;
}


void??CTorrentFile?::?getDataINT?(?ifstream?&in?)
{
m_nInt?=??readINT(?in?);
cout< getDataType(in);
}


void?CTorrentFile::?getDataSTRING?(?ifstream?&?in)
{
in.seekg(-1?ios::cur);
int?len?=?readINT(in);
m_strString?=?readString(in?len);
cout< getDataType(in);
}


void?CTorrentFile::getDataDICT?(ifstream?&?in)
{
int?len?=?readINT(?in?);
m_strString?=?readString(?in??len);
m_vecString.push_back(?m_strString);
for?(?int?i?=?0?;?i cout< cout?< m_vecString.clear();
getDataType(in);
}



void??CTorrentFile?::?getDataLIST?(?ifstream?&?in?)
{
DataType??dtTemp?=??readDataType(in);
if?(?dtTemp?==??DataType_INT)
getDataINT(?in);
else?if?(?dtTemp?==?DataType_STRINGS?)
getDataSTRING(?in);
else?if?(?dtTemp?==?DataType_END)
return?;
else?if?(?dtTemp?==?DataType_DICT?)
getDataDICT?(in);
else?
getDataLIST(in);
}



void?CTorrentFile?::?ToString?(?)
{
getDataType(?m_ifstream?);
m_ifstream.close();
}

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件???????2738??2015-01-15?15:56??C++解析Torrent文件類\TorrentFile.cpp

?????文件???????1052??2015-01-15?16:16??C++解析Torrent文件類\TorrentFile.h

?????目錄??????????0??2015-01-15?16:17??C++解析Torrent文件類

-----------?---------??----------?-----??----

?????????????????3790????????????????????3


評論

共有 條評論