⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 line_node.cpp

📁 墨香完整原代码 C++ 值得研究 可以编译
💻 CPP
字号:
// line_node.cpp: implementation of the line_node class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "line_node.h"

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

void line_node::release_line_node(line_node ** top)
{
	line_node * curLineNode = *top;
	line_node * tmpNode = NULL;
	while(curLineNode)
	{
		tmpNode = curLineNode;
		curLineNode = curLineNode->nextLine;
		if(tmpNode)
		{
			delete tmpNode;
			tmpNode = NULL;
		}
	}
	*top = NULL;
}

void line_node::set_line_node(char * text, line_node ** top)
{
	line_node::release_line_node(top);

	if(*text == 0 || top == NULL) return;
	
	char * sp = text;
	line_node * curLineNode = (*top) = new line_node;
	curLineNode->nextLine = NULL;
	curLineNode->prevLine = NULL;
	char * cur_line = curLineNode->line;
	while(*sp != 0)
	{
		if(*sp & 0x80)
		{
			*cur_line++ = *sp++;
			*cur_line++ = *sp++;
		}
		else
		{
			switch(*sp)
			{
			case TEXT_DELIMITER:
				{
					++sp;
					char tmp = *sp;
					switch(tmp)
					{
					case TEXT_NEWLINECHAR:	// new line
						{
							*cur_line = 0;
							curLineNode->len = strlen(curLineNode->line);
							curLineNode->nextLine = new line_node;
							curLineNode->prevLine = curLineNode;
							curLineNode = curLineNode->nextLine;
							curLineNode->nextLine = NULL;
							curLineNode->prevLine = NULL;
							cur_line = curLineNode->line;
						}
						break;
					case TEXT_TABCHAR:
						{
						}
						break;
					case TEXT_SPACECHAR:
						{	
							*cur_line = ' ';
							++cur_line;
						}
						break;
					}// - switch()
				}
				break;
			default:
				{
					*cur_line = *sp;
					++cur_line;
				}
			}//- switch()
			++sp;
		}
	}
	curLineNode->len = strlen(curLineNode->line);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -