亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ttsdlg.cpp

?? TTS語音開發示例
?? CPP
?? 第 1 頁 / 共 2 頁
字號:

	//this is the index data file
	ifstream file("D:/TTS-Data/index.dat");
	string line;
	
	//初始化文件索引、閱讀標記以及存儲標記
	::getline(file, line);
	//get the readTeg
	istringstream temp(line);
	temp >> m_lastReadBook >> m_lastSaveBook;

	int bookNum = 0;
	while(::getline(file, line))
	{
		istringstream input(line);
		int readTag;
		int saveTag;
		string content;

		input >> readTag >> saveTag >> content;
		m_bookIndex[bookNum] = content;
		m_readTag[bookNum] = readTag;
		m_saveTag[bookNum] = saveTag;
		bookNum++;
	}

	//初始化中間變量, Book從0開始計數
	m_currentBook = m_lastReadBook;
	m_currentPage = m_readTag[m_lastReadBook];
	m_curSaveBook = m_lastSaveBook;
	m_curSavePage = m_saveTag[m_lastSaveBook];
}

void CTTSDlg::NextBook()
{
	ostringstream readStr;
	if(m_isSave)		//當前為錄制狀態
	{
		if(m_curSaveBook != 999)
		{		
			m_curSaveBook++;
			m_curSavePage = m_saveTag[m_curSaveBook];

			readStr << "錄制當前閱讀的內容到第" << m_curSaveBook+1 << "本書。"
				<< m_bookIndex[m_curSaveBook] << "第" << m_saveTag[m_curSaveBook]+1
				<< "頁。按錄制鍵確認錄制或選擇其他書頁";			
		}
		else
			readStr << "已經到達最后一本書.";
	}
	else if(m_isDelete)		//當前為刪除狀態
	{
		if(m_currentBook != 999)
		{
			m_currentBook++;
			m_currentPage = 0;
			m_isDelBook = true;

			readStr << "清除當前整書, 第"  << m_currentBook+1 << "本書"
				<< m_bookIndex[m_currentBook] << "是否確認" 
				<< "或通過前后頁選擇要清除的頁碼";
		}
		else
			readStr << "已經到達最后一本書.";
	}
	else	//當前為閱讀狀態
	{
		m_isLoad = true;
		if(m_currentBook != 999)	//如果不是最后一本書
		{
			m_currentBook++;
			m_currentPage = m_readTag[m_currentBook];
			
			if(m_bookIndex[m_currentBook].length() == 0)
				readStr << "第" << m_currentBook+1 << "本書,該書為空白。";
			else
			{
				readStr << "第" << m_currentBook+1 << "本書。" << m_bookIndex[m_currentBook]
						<< "當前讀到第" << m_readTag[m_currentBook]+1 << "頁";
			}						
		}
		else
			readStr << "已經到達最后一本書.";
	}

	STTSPlayString(m_hTTSInstance, (char*)readStr.str().c_str(), 1);
}

void CTTSDlg::PreBook()
{
	ostringstream readStr;

	if(m_isSave)				//當前狀態為錄制
	{
		if(m_curSaveBook != 0)
		{	
			m_curSaveBook--;
			m_curSavePage = m_saveTag[m_curSaveBook];

			readStr << "錄制當前閱讀的內容到第" << m_curSaveBook+1 << "本書。"
				<< m_bookIndex[m_curSaveBook] << "第" << m_saveTag[m_curSaveBook]+1
				<< "頁。按錄制鍵確認錄制或選擇其他書頁";
		}
		else
			readStr << "已經到達第一本書";
	}
	else if(m_isDelete)
	{
		if(m_currentBook != 0)
		{	
			m_currentBook--;		
			m_currentPage = 0;
			m_isDelBook = true;

			readStr << "清除當前整書, 第"  << m_currentBook+1 << "本書"
				<< m_bookIndex[m_currentBook] << "是否確認" 
				<< "或通過前后頁選擇要清除的頁碼";
		}
		else
			readStr << "已經到達第一本書";
	}
	else		//當前狀態為閱讀
	{
		m_isLoad = true;
		if(m_currentBook != 0)	//如果不是第一本書
		{
			m_currentBook--;
			m_currentPage = m_readTag[m_currentBook];

			if(m_bookIndex[m_currentBook].length() == 0)
				readStr << "第" << m_currentBook+1 << "本書,該書為空白。";
			else
			{
				readStr << "第" << m_currentBook+1 << "本書。"
					<< m_bookIndex[m_currentBook] << "當前讀到第" 
					<< m_readTag[m_currentBook]+1 << "頁";
			}
		}
		else
			readStr << "已經到達第一本書";
	}

	STTSPlayString(m_hTTSInstance, (char*)readStr.str().c_str(), 1);
}

void CTTSDlg::NextPage()
{
	ostringstream readStr;
	if(m_isSave)		//當前狀態為錄制狀態
	{	
		//該書為空白
		//if(m_bookIndex[m_curSaveBook].length() == 0)
		//{
		//	readStr << "該書為空白,錄制當前閱讀的內容到第" << m_curSavePage+1 << "頁"
		//		<< "請按錄制鍵開始錄制";
		//	STTSPlayString(m_hTTSInstance, (char*)readStr.str().c_str(), 1);
		//	return;
		//}
		//if(m_curSavePage != 0)
		//	m_curSavePage++;
		m_curSavePage++;
		readStr << "錄制當前閱讀的內容到第" << m_curSavePage+1 << "頁"
			<< "按錄制鍵確認錄制或選擇其他書頁";
	}
	else if(m_isDelete)		//當前狀態為刪除狀態
	{	
		m_isDelBook = false;
		m_currentPage++;	
		ostringstream pageName;
		pageName << "D:/TTS-Data/" << m_currentBook << "/" << m_currentPage;

		string line;
		ifstream file(pageName.str().c_str());
		if(!file.is_open())		//該頁為空白頁
		{
			readStr << "該頁為空白頁";
		}
		else
		{
			::getline(file, line);
			::getline(file, line);
			file.close();
			readStr << "清除當前的內容, 第" << m_currentPage+1 << "頁" << line
				<< "請按清除鍵確認清除";
		}
	}
	else	//當前狀態為閱讀狀態
	{
		//判斷該書是否有內容
		m_isLoad = true;
		if(m_bookIndex[m_currentBook].length() == 0)
		{
			STTSPlayString(m_hTTSInstance, (char*)"該書為空白", 1);
			return;
		}	
		m_currentPage++;	
		
		//當前頁的名字
		ostringstream pageName;
		pageName << "D:/TTS-Data/" << m_currentBook << "/" << m_currentPage;
		ifstream file(pageName.str().c_str());

		if(!file.is_open())	//如果該頁為空
			readStr << "第" << m_currentPage+1 << "頁。本頁為空白頁。";
		else				//如果該頁不為空
		{
			string line;
			//得到該頁的第一行
			::getline(file, line);
			::getline(file, line);
			readStr << "第" << m_currentPage+1 << "頁。" << line << "請按朗讀暫停鍵開始閱讀";
			file.close();
		}
	}


	STTSPlayString(m_hTTSInstance, (char*)readStr.str().c_str(), 1);
}

void CTTSDlg::PrePage()
{
	ostringstream readStr;
	if(m_isSave)			//當前狀態為錄制狀態
	{
		if(m_curSavePage == 0)
			readStr << "已到達首頁";
		else
		{			
			m_curSavePage--;
			readStr << "錄制當前閱讀的內容到第" << m_curSavePage+1 << "頁"
				<< "按錄制鍵確認錄制或選擇其他書頁";
		}
	}
	else if(m_isDelete)		//當前狀態為刪除 
	{
		m_isDelBook = false;
		if(m_currentPage == 0)
			readStr << "已到達首頁";
		else
		{
			m_currentPage--;
			ostringstream pageName;
			pageName << "D:/TTS-Data/" << m_currentBook << "/" << m_currentPage;

			string line;
			ifstream file(pageName.str().c_str());
			if(!file.is_open())		//該頁為空白頁
				readStr << "該頁為空白頁";
			else
			{
				::getline(file, line);
				::getline(file, line);
				file.close();
				readStr << "清除當前的內容, 第" << m_currentPage+1 << "頁" << line
					<< "請按清除鍵確認清除";
			}
		}
	}
	else	//當前狀態為閱讀狀態
	{
		//判斷該書是否有內容
		m_isLoad = true;
		if(m_bookIndex[m_currentBook].length() == 0)
		{
			STTSPlayString(m_hTTSInstance, (char*)"該書為空白", 1);
			return;
		}
		
		if(m_currentPage == 0)
			readStr << "已到達首頁";
		else
		{	
			m_currentPage--;
			ostringstream pageName;
			pageName << "D:/TTS-Data/" << m_currentBook << "/" << m_currentPage;
			ifstream file(pageName.str().c_str());

			if(!file.is_open())		//this page is empty
				readStr << "第" << m_currentPage+1 << "頁。本頁為空白頁。";
			else					//this page is not empty
			{
				string line;
				//得到該頁的第一行
				::getline(file, line);
				::getline(file, line);
				readStr << "第" << m_currentPage+1 << "頁。" << line << "請按朗讀暫停鍵開始閱讀";
				file.close();
			}
		}
	}

	STTSPlayString(m_hTTSInstance, (char*)readStr.str().c_str(), 1);
}

void CTTSDlg::LoadSavedPage()
{
	ostringstream pageName;
	pageName << "D:/TTS-Data/" << m_currentBook << "/"
		<< m_currentPage;

	ifstream file(pageName.str().c_str());

	if(!file.is_open())
	{
		STTSPlayString(m_hTTSInstance, "該頁為空白頁", 1);
		return;
	}

	if(!m_page.empty())
		m_page.clear();

	//裝載存儲的文件
	string line;
	while(::getline(file, line))
		m_page.push_back(line);

	file.close();
	m_senPos = m_page.begin();

	//更新閱讀標記
	m_lastReadBook = m_currentBook;
	m_readTag[m_currentBook] = m_currentPage;
}

void CTTSDlg::CheckSavePage()
{
	//當第二次進行確認時,保存該頁內容
	if(m_isSave)
	{
		SavePage();
		return;
	}

	m_isSave = true;
	ostringstream readStr;
	readStr << "錄制當前閱讀的內容到第"<< m_lastSaveBook+1 << "本書。"
		<< m_bookIndex[m_lastSaveBook].c_str() << "第" 
		<< m_saveTag[m_lastSaveBook]+1 << "頁。" << "按錄制鍵確認錄制或選擇其他書頁";
	m_curSavePage = m_saveTag[m_curSaveBook];

	STTSPlayString(m_hTTSInstance, (char*)readStr.str().c_str(), 1);
}

void CTTSDlg::SavePage()
{
	ostringstream dirName;
	dirName << "D:/TTS-Data/" << m_curSaveBook;

	_finddata_t fileInfo;
	intptr_t handle;
	//如果該書還不存在,創建該書
	handle = _findfirst(dirName.str().c_str(), &fileInfo);
	if(handle == -1)
		_mkdir(dirName.str().c_str());
	_findclose(handle);

	ostringstream pageName;
	pageName << "D:/TTS-Data/" << m_curSaveBook << "/"
			<< m_curSavePage;

	if(m_isCover)		//用戶要求覆蓋該頁內容
	{
		ofstream file(pageName.str().c_str());
		for(list<string>::iterator pos = m_page.begin();
			pos != m_page.end(); pos++)
			file << *pos << endl;
		file.close();

		//更新錄制標記
		m_lastSaveBook = m_curSaveBook;
		m_saveTag[m_curSaveBook] = m_curSavePage + 1;

		//表示錄制成功
		m_isCover = false;
		m_isSave = false;

		STTSPlayString(m_hTTSInstance, "該頁內容已經錄制", 1);
		
	}
	else
	{
		//檢查該頁內是否已經有內容
		ifstream checkFile(pageName.str().c_str());
		if(!checkFile.is_open())	//該頁為空白頁
		{
			//寫入文件
			ofstream file(pageName.str().c_str());
			for(list<string>::iterator pos = m_page.begin();
				pos != m_page.end(); pos++)
				file << *pos << endl;
			file.close();

			//更新錄制標記
			m_lastSaveBook = m_curSaveBook;
			m_saveTag[m_curSaveBook] = m_curSavePage + 1;
			m_isSave = false;	//錄制成功

			STTSPlayString(m_hTTSInstance, "該頁內容已經錄制", 1);
		}
		else		//該頁已有內容
		{
			STTSPlayString(m_hTTSInstance, "本頁已有內容,按錄制鍵覆蓋或選擇其他頁", 1);
			m_isCover = true;
		}
	}

	//更新書目索引
	dirName << "/*.*";
	handle = _findfirst(dirName.str().c_str(), &fileInfo);
	if(handle != -1)
	{
		do
		{
			if(string(fileInfo.name) == "."
				|| string(fileInfo.name) == "..")
				continue;
			else
				break;
		}while(_findnext(handle, &fileInfo) == 0);
	}
	ostringstream firstPage;
	firstPage << "D:/TTS-Data/" << m_curSaveBook << "/"
		<< fileInfo.name;
	ifstream first(firstPage.str().c_str());
	string line;
	::getline(first, line);
	::getline(first, line);
	if(m_bookIndex[m_curSaveBook] != line)
		m_bookIndex[m_curSaveBook] = line;
	
	//if(m_curSavePage == 0)
	//{
	//	//這本書原本為空
	//	list<string>::iterator pos = m_page.begin();
	//	pos++;
	//	if(m_bookIndex[m_curSaveBook].length() == 0)
	//	{
	//		m_bookIndex[m_curSaveBook] = *pos;
	//		m_readTag[m_curSaveBook] = 0;
	//	}
	//	else
	//		m_bookIndex[m_curSaveBook] = *pos;
	//}
}

void CTTSDlg::CheckDelete()
{
	if(m_isDelete)
	{
		Delete();
		return;
	}

	m_isDelete = true;
	m_currentPage = 0;
	ostringstream readStr;
	readStr << "清除當前整書, 第"  << m_currentBook+1 << "本書"
		<< m_bookIndex[m_currentBook] << "是否確認" 
		<< "或通過前后頁選擇要清除的頁碼";

	STTSPlayString(m_hTTSInstance, (char*)readStr.str().c_str(), 1);
}

void CTTSDlg::Delete()
{
	ostringstream name;
	ostringstream readStr;
	
	if(m_isDelBook)	//清除整書
	{
		name << "D:/TTS-Data/" << m_currentBook << "/*.*";
		list<string> deleteFiles;

		_finddata_t fileInfo;
		intptr_t handle;

		handle = _findfirst(name.str().c_str(), &fileInfo);

		//刪除該目錄下所有文件
		if(handle != -1)
		{
			do
			{
				if(string(fileInfo.name) == "."
					|| string(fileInfo.name) == "..")
					continue;
				ostringstream filename;
				filename << "D:/TTS-Data/" << m_currentBook
					<< "/" << fileInfo.name;
				//int res = remove(fileInfo.name);
				deleteFiles.push_back(filename.str());
			}while(_findnext(handle, &fileInfo) == 0);
		}
		_findclose(handle);

		for(list<string>::iterator pos = deleteFiles.begin();
			pos != deleteFiles.end(); pos++)
			int res = remove(pos->c_str());
		ostringstream dirName;
		dirName << "D:/TTS-Data/" << m_currentBook;
		int res = _rmdir(dirName.str().c_str());
		//更新書目索引
		m_bookIndex[m_currentBook] = "";
		m_readTag[m_currentBook] = 0;
		m_saveTag[m_currentBook] = 0;
		m_isDelete = false;

		readStr << "第" << m_currentBook+1 << "本書已經清除";
	}
	else		//清除一頁
	{
		name << "D:/TTS-Data/" << m_currentBook << "/"
			<< m_currentPage;

		ifstream checkFile(name.str().c_str());
		if(!checkFile.is_open())	//該頁為空白頁
			return;
		else
			checkFile.close();
		
		int res = remove(name.str().c_str());
		m_isDelete = false;
		readStr << "第" << m_currentBook + 1 << "本書第" << m_currentPage+1 << "頁已經清除";

		//更新書目
		_finddata_t fileInfo;
		intptr_t handle;
		ostringstream dirName;
		dirName << "D:/TTS-Data/" << m_currentBook << "/*.*";
		handle = _findfirst(dirName.str().c_str(), &fileInfo);
		if(handle != -1)
		{
			do
			{
				if(string(fileInfo.name) == "."
					|| string(fileInfo.name) == "..")
					continue;
				else
					break;
			}while(_findnext(handle, &fileInfo) == 0);
		}
		_findclose(handle);

		ostringstream firstPage;
		firstPage << "D:/TTS-Data/" << m_curSaveBook << "/"
			<< fileInfo.name;
		ifstream first(firstPage.str().c_str());
		string line;
		::getline(first, line);
		::getline(first, line);
		if(m_bookIndex[m_curSaveBook] != line)
			m_bookIndex[m_curSaveBook] = line;
		first.close();

		if(line == "")
		{
			m_readTag[m_currentBook] = 0;
			m_saveTag[m_currentBook] = 0;
			ostringstream delDir;
			delDir << "D:/TTS-Data/" << m_currentBook;
			remove(delDir.str().c_str());
		}


	}

	STTSPlayString(m_hTTSInstance, (char*)readStr.str().c_str(), 1);
}

void CTTSDlg::SaveIndex()
{
	ofstream file("D:/TTS-Data/index.dat");

	file << m_lastReadBook << " " << m_lastSaveBook << endl;
	for(unsigned i = 0; i < m_bookIndex.size(); i++)
	{
		file << m_readTag[i] << " "
			<< m_saveTag[i] << " "
			<< m_bookIndex[i] << endl;
	}
	file.close();
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
麻豆久久久久久久| 精品一区二区三区视频在线观看| 一区二区三区在线播放| 极品少妇xxxx精品少妇| 欧美日本精品一区二区三区| 1区2区3区欧美| 欧美撒尿777hd撒尿| 国产精品美女久久久久久久| 欧美猛男男办公室激情| 成人视屏免费看| 日本欧美肥老太交大片| 亚洲免费观看高清完整| 国产日韩欧美不卡| 91精品国产欧美一区二区成人| 99久久免费国产| 国产乱国产乱300精品| 日韩国产精品大片| 亚洲国产精品综合小说图片区| 国产精品女主播在线观看| 精品剧情v国产在线观看在线| 欧美少妇性性性| 色综合网色综合| 成人av电影在线播放| 国产综合久久久久影院| 日韩国产在线观看一区| 亚洲午夜久久久| 亚洲视频免费观看| 国产精品天美传媒| 国产女主播一区| 久久久久青草大香线综合精品| 日韩一级欧美一级| 欧美巨大另类极品videosbest| 一本色道久久加勒比精品| 波多野洁衣一区| 丁香婷婷综合色啪| 成人av午夜电影| 成人黄动漫网站免费app| 国产东北露脸精品视频| 国产成人免费视频一区| 国产美女视频一区| 粉嫩13p一区二区三区| 国产999精品久久| 国产盗摄女厕一区二区三区| 国产一区二区三区在线观看免费| 久久99精品久久只有精品| 韩国三级在线一区| 国产自产2019最新不卡| 亚洲成av人片www| 自拍偷拍国产精品| 日韩免费在线观看| 日本精品一级二级| 国产不卡一区视频| 国产一区二区在线视频| 亚洲国产aⅴ天堂久久| 中文字幕在线观看一区| 国产日产欧美一区| 国产中文字幕精品| 国内国产精品久久| 国产福利91精品| 91亚洲国产成人精品一区二三 | 欧美一区二区三区四区五区| 在线一区二区三区| 在线成人午夜影院| 精品电影一区二区| 国产精品国产a级| 亚洲免费观看高清完整版在线 | 亚洲综合图片区| 日韩国产在线观看一区| 韩国v欧美v亚洲v日本v| 丁香啪啪综合成人亚洲小说| 日本国产一区二区| 日韩女优av电影| 中文字幕一区二区在线播放| 亚洲一区中文日韩| 国产在线不卡一区| 97精品电影院| 欧美一级在线视频| 中文字幕欧美日本乱码一线二线| 亚洲乱码精品一二三四区日韩在线| 香蕉久久夜色精品国产使用方法| 国内成人精品2018免费看| www.在线成人| 欧美一区二区三区系列电影| 中文字幕av一区二区三区高| 一区二区三区 在线观看视频| 另类小说图片综合网| 色综合网站在线| 久久综合色8888| 亚洲在线视频一区| 国产成人午夜精品影院观看视频 | 一区二区三区四区乱视频| 日本亚洲免费观看| 99精品视频在线免费观看| 91精品国产一区二区三区蜜臀| 欧美国产亚洲另类动漫| 91麻豆精品久久久久蜜臀| 国产精品美女久久久久高潮| av网站一区二区三区| 欧美色偷偷大香| 欧美国产日韩a欧美在线观看| 五月激情综合色| 成人黄色在线网站| 精品国产一二三区| 亚洲成人福利片| 成人av免费在线播放| 亚洲精品一区二区三区四区高清| 中文字幕亚洲成人| 1000部国产精品成人观看| 激情综合色播五月| 欧美日韩国产123区| 亚洲天堂2016| 国产电影一区在线| 久久一区二区三区国产精品| 午夜欧美电影在线观看| 91美女片黄在线观看91美女| 欧美精品一区二区三区高清aⅴ | 精品在线播放午夜| 色伊人久久综合中文字幕| 久久久精品欧美丰满| 免费人成黄页网站在线一区二区| 色综合激情久久| 中文字幕av在线一区二区三区| 久久av老司机精品网站导航| 欧美日韩视频在线第一区| 亚洲精品一卡二卡| 91亚洲大成网污www| 亚洲国产精品二十页| 国产一区视频导航| 欧美成人女星排行榜| 日韩国产在线一| 欧美福利视频导航| 性欧美疯狂xxxxbbbb| 欧美日韩精品一区二区三区| 中文字幕一区在线| 顶级嫩模精品视频在线看| 久久精子c满五个校花| 国产一区二区三区精品视频| 欧美一级日韩一级| 免费人成黄页网站在线一区二区 | 亚洲欧美综合另类在线卡通| 国产精品羞羞答答xxdd| 国产三级精品三级| 国产精品亚洲成人| 亚洲欧洲三级电影| 99久久国产综合精品色伊| 国产精品不卡在线| 日本久久电影网| 午夜精品免费在线| 91精品免费在线观看| 日本最新不卡在线| 日韩美女一区二区三区四区| 麻豆成人久久精品二区三区小说| 欧美成人女星排行榜| 国产精品亚洲视频| 亚洲日本一区二区三区| 色悠久久久久综合欧美99| 夜夜亚洲天天久久| 欧美久久久一区| 久久99久久久久久久久久久| 久久蜜桃av一区二区天堂| aa级大片欧美| 夜夜嗨av一区二区三区四季av| 欧美理论在线播放| 久久国产精品无码网站| 欧美韩国日本综合| 91麻豆福利精品推荐| 石原莉奈在线亚洲二区| 精品蜜桃在线看| k8久久久一区二区三区| 亚洲一区二三区| 精品少妇一区二区三区在线视频| 成人免费看黄yyy456| 亚洲综合久久久| 精品入口麻豆88视频| 99re66热这里只有精品3直播| 亚洲国产日韩精品| 亚洲精品一区二区三区99| 国产98色在线|日韩| 亚洲国产乱码最新视频 | 亚洲一区二区在线视频| 日韩一区和二区| 国产成人av一区二区| 一区二区三区在线不卡| 精品三级在线看| 日本精品一区二区三区四区的功能| 免费看日韩a级影片| 国产精品视频看| 欧美久久久一区| 91网站最新网址| 免费在线观看成人| 亚洲视频在线一区| 欧美本精品男人aⅴ天堂| 欧美在线不卡一区| 国产精品小仙女| 美洲天堂一区二卡三卡四卡视频 | 欧美亚洲免费在线一区| 国内精品在线播放| 亚洲国产精品一区二区久久恐怖片| 国产欧美精品国产国产专区| 91精品在线麻豆|