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

📄 cnstringlist.cpp

📁 这是一个远程控制程序
💻 CPP
字号:
//---------------------------------------------------------------------------

#pragma hdrstop

#include "CNStringList.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)


__fastcall TCNStringList::TCNStringList(void)
{
        //TODO: Add your source code here
        ItemListHeader = NULL;
        Count = 0;
}

__fastcall TCNStringList::~TCNStringList(void)
{
        //TODO: Add your source code here
        Clear();
}

void __fastcall TCNStringList::Add(TCNString S)
{
        //TODO: Add your source code here
        ItemList *Item;

        Item = new ItemList;

        Item->Item = S;
        
        if( Count == 0)
        {
                ItemListHeader = Item;
                ItemListHeader->Pre = ItemListHeader;
                ItemListHeader->Next= NULL;
        }
        else
        {
                if(ItemListHeader->Pre != NULL)
                {
                        ItemListHeader->Pre->Next = Item;
                        Item->Pre = ItemListHeader->Pre;
                }
                Item->Next= NULL;
                ItemListHeader->Pre = Item;
        }
        Count ++;
}

void __fastcall TCNStringList::Clear(void)
{
        //TODO: Add your source code here
        if( ItemListHeader == NULL) return;
        
        ItemList *p = ItemListHeader->Next;
        ItemList *q = ItemListHeader;
        ItemListHeader->Pre->Next = NULL;

        while( p )
        {
                delete q;
                q = p;
                p = p->Next;
        }
        if( q ) delete q;

        Count = 0;
}

void __fastcall TCNStringList::Delete(int Index)
{
        //TODO: Add your source code here
        ItemList *p = GetItemOfIndex(Index);

        if( p == NULL) return;

        p->Pre->Next = p->Next;
        if( p->Next )
        {
                p->Next->Pre = p->Pre;
        }
        else
        {
                ItemListHeader->Pre = p->Pre;
        }
        delete p;
        Count --;
}

int __fastcall TCNStringList::IndexOf(TCNString S)
{
        //TODO: Add your source code here
        ItemList *p = ItemListHeader;
        for(register i = 0; i < Count && p; i++)
        {
                if( S == p->Item) return i;

                p = p->Next;
        }
        return -1;
}
TCNString __fastcall TCNStringList::Strings(int idx)
{
        ItemList *p = GetItemOfIndex(idx);

        if( p )
        {
                return p->Item;
        }
        else
        {
                return "";
        }
}
ItemList * __fastcall TCNStringList::GetItemOfIndex(int Index)
{
        //TODO: Add your source code here
        ItemList *p = ItemListHeader;

        if( Index > Count) return NULL;

        for(register i = 0; i < Count && p; i++)
        {
                if( i == Index)
                {
                        return p;
                }
                p = p->Next;
        }
        return NULL;
}

⌨️ 快捷键说明

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