资源简介
文本编辑器 源代码 MFC VC 课程设计 数据结构与算法

代码片段和文件信息
// Data.cpp: implementation of the CData class.
//
//////////////////////////////////////////////////////////////////////
#include “stdafx.h“
#include “TextEditor.h“
#include “Data.h“
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
//对数据进行初始化,建立头结点,初始化链表
CData::CData()
{
m_Head = new Node;
m_Head->prior = m_Head->next = NULL;
m_Head->number = 0;
m_Head->pos = 0;
m_CurrentLine = m_Head;
InsertLine();
m_srSearchRecord.line = m_srSearchRecord.pos = 0;
}
//删除链表,释放内存
CData::~CData()
{
pNode p r;
p = m_Head;
while (p != NULL)
{
r = p;
p = p->next;
delete r;
}
}
//从指定起始位置开始查找指定字符串,返回查找到的行的指针,将查找到的地址保存到函数参数position中
pNode CData::Search(int startline int startchar char *value int &position)
{
pNode p;
//从指定行开始查找
p = GetLine(startline);
//对指定行的结点数据进行查找,若找到返回,否则进行下一步
if (p != NULL)
{
if ((position = BF(p->data+startchar value)) != -1)
{
if (m_srSearchRecord.line > m_Head->number && position > m_srSearchRecord.pos)
return NULL;
position += startchar;
return p;
}
else
{
p = p->next;
m_srSearchRecord.line++;
}
}
//遍历链表查找,若找到返回,否则进行下一步
while (p != NULL && m_srSearchRecord.line <= m_Head->number)
{
if ((position = BF(p->data value)) != -1)
return p;
else
{
p = p->next;
m_srSearchRecord.line++;
}
}
//通过查找记录的行数来判断是否已遍历完一遍链表,若未遍历完则将指针p指向头结点
if (m_srSearchRecord.line <= m_Head->number)
{
p = m_Head->next;
m_srSearchRecord.line++;
}
//继续遍历链表进行查找,若查找到数据则返回指针,否则直到查找记录的行数达到总行数为止,然后进行下一步
while (m_srSearchRecord.line <= m_Head->number)
{
if ((position = BF(p->data value)) != -1)
return p;
else
{
p = p->next;
m_srSearchRecord.line++;
}
}
//对最后一行的结束位置之前进行查找,若查找到返回指针,否则返回NULL
if (m_srSearchRecord.line > m_Head->number)
{
if ((position = BF(p->data value)) != -1 && position <= m_srSearchRecord.pos)
return p;
}
return NULL;
}
//插入新行,返回新行指针
pNode CData::InsertLine()
{
pNode p;
if (m_CurrentLine == NULL)
return NULL;
//建立新节点,插入到链表中
pNode line = new Node;
line->next = m_CurrentLine->next;
line->prior = m_CurrentLine;
m_CurrentLine->next = line;
if (line->next != NULL)
line->next->prior = line;
//对结点数据初始化
line->data[0] = ‘\n‘;
line->data[1] = ‘\0‘;
line->number = 0;
line->pos = m_CurrentLine->pos + 1;
//更新由于插入新行而导致的其他数据变化
m_Head->number++;
p = line->next;
while (p != NULL)
{
p->pos++;
p = p->next;
}
m_CurrentLine = line;
return m_CurrentLine;
}
//删除当前行,返回前一行的指针
pNode CData::DeleteLine()
{
if (m_CurrentLine == NULL)
return NULL;
if (m_CurrentLine->pos == 1)
return m_CurrentLine;
pNode r;
//保存前一行指针
pNode p = m_CurrentLine->prior;
//
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2011-12-06 15:00 文本编辑器 MFC VC 数据结构 课程设计\
目录 0 2011-12-06 15:01 文本编辑器 MFC VC 数据结构 课程设计\TextEditor\
文件 8774 2011-03-20 20:08 文本编辑器 MFC VC 数据结构 课程设计\TextEditor\Data.cpp
文件 1873 2011-03-20 20:08 文本编辑器 MFC VC 数据结构 课程设计\TextEditor\Data.h
目录 0 2011-12-06 15:01 文本编辑器 MFC VC 数据结构 课程设计\TextEditor\Debug\
文件 16833 2011-12-06 15:01 文本编辑器 MFC VC 数据结构 课程设计\TextEditor\Debug\Data.obj
文件 6046 2011-12-06 15:01 文本编辑器 MFC VC 数据结构 课程设计\TextEditor\Debug\Data.sbr
文件 19446 2011-12-06 15:01 文本编辑器 MFC VC 数据结构 课程设计\TextEditor\Debug\MainFrm.obj
文件 3610 2011-12-06 15:01 文本编辑器 MFC VC 数据结构 课程设计\TextEditor\Debug\MainFrm.sbr
文件 106181 2011-12-06 15:01 文本编辑器 MFC VC 数据结构 课程设计\TextEditor\Debug\StdAfx.obj
文件 1375136 2011-12-06 15:01 文本编辑器 MFC VC 数据结构 课程设计\TextEditor\Debug\StdAfx.sbr
文件 147582 2011-12-06 15:01 文本编辑器 MFC VC 数据结构 课程设计\TextEditor\Debug\TextEditor.exe
文件 369416 2011-12-06 15:01 文本编辑器 MFC VC 数据结构 课程设计\TextEditor\Debug\TextEditor.ilk
文件 23737 2011-12-06 15:01 文本编辑器 MFC VC 数据结构 课程设计\TextEditor\Debug\TextEditor.obj
文件 6879584 2011-12-06 15:01 文本编辑器 MFC VC 数据结构 课程设计\TextEditor\Debug\TextEditor.pch
文件 377856 2011-12-06 15:01 文本编辑器 MFC VC 数据结构 课程设计\TextEditor\Debug\TextEditor.pdb
文件 6708 2011-12-06 15:01 文本编辑器 MFC VC 数据结构 课程设计\TextEditor\Debug\TextEditor.res
文件 8509 2011-12-06 15:01 文本编辑器 MFC VC 数据结构 课程设计\TextEditor\Debug\TextEditor.sbr
文件 15518 2011-12-06 15:01 文本编辑器 MFC VC 数据结构 课程设计\TextEditor\Debug\TextEditorDoc.obj
文件 3380 2011-12-06 15:01 文本编辑器 MFC VC 数据结构 课程设计\TextEditor\Debug\TextEditorDoc.sbr
文件 79680 2011-12-06 15:01 文本编辑器 MFC VC 数据结构 课程设计\TextEditor\Debug\TextEditorView.obj
文件 21504 2011-12-06 15:01 文本编辑器 MFC VC 数据结构 课程设计\TextEditor\Debug\TextEditorView.sbr
文件 214016 2011-12-06 15:01 文本编辑器 MFC VC 数据结构 课程设计\TextEditor\Debug\vc60.idb
文件 364544 2011-12-06 15:01 文本编辑器 MFC VC 数据结构 课程设计\TextEditor\Debug\vc60.pdb
文件 2131 2011-03-14 07:08 文本编辑器 MFC VC 数据结构 课程设计\TextEditor\MainFrm.cpp
文件 1553 2011-03-13 23:40 文本编辑器 MFC VC 数据结构 课程设计\TextEditor\MainFrm.h
文件 4088 2011-03-03 15:30 文本编辑器 MFC VC 数据结构 课程设计\TextEditor\ReadMe.txt
文件 212 2011-03-03 15:30 文本编辑器 MFC VC 数据结构 课程设计\TextEditor\StdAfx.cpp
文件 1054 2011-03-03 15:30 文本编辑器 MFC VC 数据结构 课程设计\TextEditor\StdAfx.h
文件 43752 2011-12-06 15:01 文本编辑器 MFC VC 数据结构 课程设计\TextEditor\TextEditor.aps
文件 2000 2011-12-06 15:01 文本编辑器 MFC VC 数据结构 课程设计\TextEditor\TextEditor.clw
............此处省略19个文件信息
相关资源
- 基于MFC的TCP调试助手源码95706
- 国际象棋的qt源代码
- C语言开发实战宝典
- 基于mfc的多线程文件传输
- MFC数字钟(基于VC6.0)
- 小甲鱼C语言课件 源代码
- VC++MFC小游戏实例教程(实例)+MFC类库
- c语言看发的网络协议 ,源代码
- C语言实现的DES对称加密算法
- 数据结构,迷宫问题C语言版源代码
- C语言 学生信息管理系统 源代码
- C语言版3D魔方游戏源代码
- QT5开发及源代码
- ChartCtrl控件库(可在VS2019中使用)
- 商品库存管理系统 C++ MFC
- qt texteditor(富文本编辑器)
- qt登录富文本编辑器和文档打印设计
- USB CAN Tool 源代码(LabVIEW 2011环境)
- 超声波水表源代码
- 一个模糊PID温度控制算法源代码
- 数据结构 图的遍历源代码
- 数据结构实验源代码集
- mfc 调用redis
- TCP/IP客户端和服务器端源代码,好用
- MFC视频播放器源码(支持avi/wma/mp3等格
- 交互式计算机图形学 第六版 OpenGL源代
- mfc绘图大全(画直线、矩形、椭圆)
- MFC控件重绘
- hook,捕获所有案件,查找所有窗口,
- (学习)VS2010之MFC入门到精通教程
评论
共有 条评论