#ifndef _STRINGLIST_HPP_
#define _STRINGLIST_HPP_

#include "../global.hpp"
#include <typeinfo>
#include "../hpasutils.hpp"
#include <sys/socket.h>
#include <netinet/in.h>
#include <sys/ioctl.h>
#include <algorithm>
enum TSeekOffset {soFromBeginning = 0, soFromCurrent = 1, soFromEnd = 2};

class TPersistent
{
private:
    void AssignError(TPersistent* Source);
protected:
    virtual void AssignTo(TPersistent* Dest);
    virtual TPersistent* GetOwner();
public:
    virtual ~TPersistent();
    virtual void Assign(TPersistent* Source);
    virtual string GetNamePath();
};

class TMemoryStream:public TPersistent
{
public:
    pByte Memory;
    int Position;
    int Size;
    void Clear();
    int Seek(const int step, TSeekOffset mode);
    void WriteBuffer(void* src, int len);
    void ReadBuffer(void* dst, int len);
    TMemoryStream();
    virtual ~TMemoryStream();
};

//{ TStrings class }
class TStringList:public TPersistent
{
protected:
    list<string> buf;
public:
    string seperator;
    int Add(const string s);
    void AddStrings(TStringList& AStrings);
    int Insert(const string s);
    int IndexOf(const string s);
    bool Delete(const string s);
    void Delete(const int index);
    void Clear();
    int Count();
    string Values(const string name);
    string Values(const string name,const string seperator);
    void SetValue(const string name, const string value);
    string ValueFromIndex(int index);
    string ValueFromIndex(int index, const string seperator);
    string Names(int index,const string seperator= "=");
    string Lines(int index);
    void SetLines(int index, const string s);
    bool SetLines(const string des,const string str);
    string ReadString(const string name, const string value);
    bool SaveToFile(const string filename);
    bool LoadFromFile(const string filename);
    string TimeFormate(void);
    string Text();
    void SaveToStream(TMemoryStream& m);
    void SetText(const string src, const string sep = "");
    void AssignTo(TStringList* Dest);
    TStringList();
    virtual ~TStringList();
};

extern void GetNets(TStringList& Nets);
extern void GetMACs(TStringList& MACs);
extern void GetIPs(TStringList& IPs);
extern string GetIP(const string if_name);
extern string GetMAC(const string if_name);
extern void Split(const string big, const string sep, TStringList& sl);

#endif /* HCLASSES_HPP_ */

stringlist的更多相关文章

  1. Delphi中stringlist分割字符串的用法

    Delphi中stringlist分割字符串的用法 TStrings是一个抽象类,在实际开发中,是除了基本类型外,应用得最多的. 常规的用法大家都知道,现在来讨论它的一些高级的用法. 1.CommaT ...

  2. 利用StringList对象来管理这些动态生成的对象

    如果程序需要动态创建大量的对象,那么我们可以利用StringList对象来管理这些动态生成的对象.1.创建StringList对象:OBJ := TStringList.Create; 2.保存动态生 ...

  3. StringList 自定义快速排序

    unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms ...

  4. Delphi TstringList Stringlist的特殊用法

    procedure TForm1.btn1Click(Sender : TObject); var   m      : Integer;   s       : string;   strlst   ...

  5. Delphi Stringlist Delimiter如何区分TAB和空格

    var st: TStrings; begin st := TStringList.Create; st.StrictDelimiter := True;//这个多少人用过? st.Delimiter ...

  6. delphi将字符串转换成stringlist

    function StrToList(const sString, Token: string): TStringList;var sTmp: string; iPos: Integer; Tokle ...

  7. C#学习总结之集合

    一.集合接口和类型 命名空间:  集合类型  命名空间  一般集合 System.Collections   泛型集合 System.Collections.Generic   特定类型集合 Syst ...

  8. Linux 平台静默安装 Oracle客户端

    需求:Linux平台,安装完整版Oracle客户端 Tips:如果只是用到sqlldr,sqlplus功能,可以参考<Linux上oracle精简版客户端快速部署>快速部署精简版:如果需要 ...

  9. 基于trie树的具有联想功能的文本编辑器

    之前的软件设计与开发实践课程中,自己构思的大作业题目.做的具有核心功能,但是还欠缺边边角角的小功能和持久化数据结构,先放出来,有机会一点点改.github:https://github.com/chu ...

随机推荐

  1. hdu 4711 动态规划

    思路:其实这题是个挺水的动态规划,一开始就能AC,可是不知道错哪了,瞎改瞎交,WA了数十次.AC之后怎么改都是AC,也不知道改了什么地方,郁闷死了~~~难道开始时的测试数据有问题??? dp[i][j ...

  2. duplicate symbol _OBJC_METACLASS_$ 报错记录

    duplicate symbol _OBJC_METACLASS_$_TabbarButton in: /Users/hw201406/Library/Developer/Xcode/DerivedD ...

  3. Oracle数据库作业-5 查询

    14.查询所有学生的Sname.Cno和Degree列. select t.sname,c.cno,c.degree from student t inner join score c on t.sn ...

  4. macOS10.12允许所有来源设置

    如何调出允许所有来源呢? 很简单一行命令搞定 调出允许所有来源 1.打开终端执行命令 sudo spctl --master-disable 2.你在打开偏好设置--> 安全与隐私   好了赶快 ...

  5. ORACLE的分组统计之ROLLUP(一)

    Oracle 9i以后,扩展了group by 的功能,能够满足大部分多维数据的分析统计功能,主要表现: 1. rollup,cube,grouping sets 扩展group by字句提供了丰富的 ...

  6. CSS之上边栏

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

  7. ruby(html)

    有的时候,我们要给汉字标记拼音,让拼音显示要汉字的上面 <ruby>中国人<rp>(</rp><rt>zhong guo ren</rt>& ...

  8. MVC EF ObjectStateManager 中已存在具有同一键的对象。ObjectStateManager 无法跟踪具有相同键的多个对象。

    遇到这个错误  在查询时 加上asNoTracking() 即可

  9. Sql中判断"库、表、列,视图,存储过程"是否存在

    --判断数据库是否存在 IF EXISTS (SELECT * FROM MASTER.sys.sysdatabases WHERE NAME = '库名') PRINT 'exists ' else ...

  10. 《Cocos2d-x实战 Lua卷》上线了

    感谢大家一直以来的支持!各大商店均开始销售:京东:http://item.jd.com/11659697.html当当:http://product.dangdang.com/23659810.htm ...