一种继电保护自动测试系统中字符串比较的方法和系统的制作方法_3

文档序号:9810635阅读:来源:国知局
的字符串第一个字符索引(子串第一个字符索引为i=O,后面的依次类推);SubArry表示子串的长度。
[0100]进一步地,根据当前副子串更新i的位置包括:
[0101]根据长度小于2的副子串更新i的位置以及根据在主串中查找成功的副子串更新i的位置。其中通过以下来根据长度小于2的副子串更新i的位置:
[0102]将子串中索引为i的字符转化为int类型,判断其是否小于0,当确定小于O时:i= i+2;
[0103]当确定不小于O时:i= i + l;通过以下公式根据在主串中查找成功的副子串更新i的位置:
[0104]i = i+j
[0105]其中,j表示在主串中查找成功的副子串的长度。
[0106]副子串更新模块207,用于在查找判断模块203确定在主串中未找到副子串和在继续查找判断模块206中确定需要继续查找时,更新副子串。
[0107]进一步地,在根据本发明的方法中,当在主串里面不能找到副子串时,通过以下方式更新副子串:
[0108]将副子串的最后一个字符转化为int类型,判断其是否小于O,当确定小于O时:j=j~2;
[0109]当确定不小于O时:j = j-1;
[0110]其中,j为副子串的长度。
[0111]进一步地,当确定需继续查找时,通过以下方式更新副子串:
[0112]根据继续查找判断模块206所述的更新后的i的位置,副子串的第一个字符取子串中索引为i (第一个字符索引为i = O,后面的依次类推)的字符,长度j = SubArry-1。其中,SubArry表示子串长度。
[0113]虽然本说明书在附图中以一定的次序描述了操作,但不应当理解为一定要以特定的次序执行操作,可以理解为附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。此外,不应当将在上述实施例中的各种系统组件的分离理解为在所有实施例中均需要这样的分离,而应当理解的是,通常可以将所描述的程序组件和系统集成到一起成为单个软件产品或封装为多个软件产品。
[0114]计算机程序(也称作程序、软件、软件应用、脚本或代码)可以C++编程语言编写,所述编程语言包括编译或解释语言、或者说明性或过程语言,并且其可以以任何形式部署,包括作为独立程序或作为模块、组件、子程序或适于在计算环境中使用的其它单元。
[0115]上述【具体实施方式】,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围 UL
o r:
【主权项】
1.一种继电保护自动测试系统中字符串的比较方法,其特征在于包括: 步骤一:比较两个字符串长度,长的设为主串,短的设为子串; 步骤二:在子串中取副子串,其中初始副子串为子串本身; 步骤三:判断副子串长度是否2 2,若是,转步骤四;若否,转步骤七; 步骤四:当确定副子串长度2 2时,判断在主串里面是否能查找到副子串,若是,转步骤五;若否,转步骤八; 步骤五:当确定在主串里面能找到副子串时,将主串和子串中副子串部分设为两个字符串相同部分; 步骤六:更新在主串中查找副子串的头位置; 步骤七:判断是否继续查找,若是,转步骤八;若否,结束查找; 步骤八:更新副子串,重复步骤二?步骤八,直到结束查找。2.根据权利要求1所述的方法,其特征在于使用MFC类库CString类里Mid成员函数从子串中取副子串StrTemp 1:StrTempl = SubString->Mid(i , j) 其中,SubString表示指向子串的指针;SubString->Mid( i,j)表示取子串中从索引为i的字符开始长度为j的字符串,子串中第一个字符索引为i = 0,后面的依次类推。3.根据权利要求1所述的方法,其特征在于判断在主串里面是否能找到副子串的方法是: 使用MFC类库CString类里find成员函数在主串中找副子串: SourceBegin = Source_>Find(StrTempI,Findnext) 其中,SourceBegin表示在主串中找到副子串时的头位置,并且如果没找到则为-1;Source表示指向主串的指针;Source->Find(StrTempI ,Findnext)表示在主串中从索引为Findnext的字符开始找副子串StrTempl,主串中第一个字符索引为Findnext = O,后面的依次类推; 当返回SourceBegin值为-1时,确定没有在主串中找到副子串;以及 当返回SourceBegin值不为-1时,确定在主串中找到副子串。4.根据权利要求1所述的方法,其特征在于通过以下方法来更新在主串中查找副子串的头位置:用Findnext表示更新后的头位置,则 Findnext=SourceBegin+j 其中,SourceBegin表不当如在主串中找到副子串时的头位置;j表不副子串的长度。5.根据权利要求1所述的方法,其特征在于判断是否继续查找的方法是: 根据当前副子串更新i的位置,比较i是否小于SubArry ; 当i〈 SubArr y时,确定继续查找; 当i> = SubArry时,结束查找; 其中,i表示副子串取子串中的字符串第一个字符索引,子串第一个字符索引为i = 0,后面的依次类推;SubArry表示子串的长度。6.根据权利要求5所述的方法,其特征在于通过以下方法来根据长度小于2的副子串更新i的位置: 将子串中索引为i的字符转化为int类型,判断其是否小于0,当确定小于O时:i = i+2;当确定不小于O时:i = i+l。7.根据权利要求5所述的方法,其特征在于通过以下公式根据在主串中查找成功的副子串更新i的位置:i = i+j 其中,j表不在主串中查找成功的副子串的长度。8.根据权利要求1所述的方法,其特征在于当在主串里面不能找到副子串时,通过以下方式更新副子串: 将当前副子串的最后一个字符转化为int类型,判断其是否小于O,当确定小于O时:j =j~2; 当确定不小于O时:j = j_l;其中,j为副子串的长度。9.根据权利要求1所述的方法,其特征在于当确定继续查找时,通过以下方式更新副子串: 根据更新后的i的位置,i表示副子串取子串中的字符串第一个字符索引,副子串的第一个字符取子串中索引为i的字符,副子串长度j = SubArry-1,其中,SubArry表示子串长度。10.一种继电保护测试系统中字符串比较的系统,包括: 初始化模块,用于比较两个字符串长度,长的设为主串,短的设为子串,以及在子串中取副子串,其中初始副子串为子串本身; 副子串长度判断模块,用于判断副子串长度是否2 2; 查找判断模块,用于在副子串长度判断模块确定副子串长度2 2时,判断在主串里面是否能查找到副子串; 相同字符串设置模块,用于在查找判断模块确定在主串里面能找到副子串时,将主串和子串中副子串部分设为两个字符串相同部分; 主串中的查找头位置更新模块,用于更新在主串中查找副子串的头位置; 继续查找判断模块,用于判断是否继续查找;以及 副子串更新模块,用于在查找判断模块确定在主串中未找到副子串和在继续查找判断模块中确定继续查找时,更新副子串。
【专利摘要】本发明提供了一种继电保护自动测试系统中字符串的比较方法和系统。所述方法包括:比较两个字符串长度,长的设为主串,短的设为子串;在子串中取副子串;判断副子串长度是否≥2;当确定副子串长度≥2时,判断在主串里面是否能查找到副子串;当确定在主串里面能找到副子串时,将主串和子串中副子串部分设为两个字符串相同部分;更新在主串中查找副子串的头位置;判断是否继续查找;当确定继续查找时,更新副子串。在进行继电保护自动测试过程中,需将继电保护装置内部设备数据模型与系统解析的变电站SCD文件进行一致性测试,本发明通过字符串比较找出两者对应数据集中的相同部分以及不同部分,减少了人工识别的工作量。
【IPC分类】G06F17/30
【公开号】CN105574108
【申请号】CN201510925527
【发明人】陈中, 王培秀
【申请人】东南大学
【公开日】2016年5月11日
【申请日】2015年12月14日
当前第3页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1