28号支架相关

发布时间 2023-07-25 22:48:09作者: 言行一

主题:

两种把数据分割的方式:“字符串输入”以及“json输入”

“pycharm中相同代码段的同时高亮”的实现效果

高亮

首先介绍如何实现下图效果,动作是“双击某字段,整页中与其相同的各处都会高亮”:

image-20230725213539444
image-20230725213856686
  • image-20230725214559320

输入方式

总括

处理逻辑类似,都会先检查输入字符串的形式,然后根据关键字选择相应的处理方法。对于JSON输入,它还会检查关键字是否匹配,以GZM为例展示一个二者的例子:

    def Ini_Gzm(self, str):					# 函数的定义以及接受参数str,str是要处理的
        if str == '':						# 对str进行赋值
            str1_1 = '{"Keyword":"GZM",' \
                     '"S_No":"16",' \
                     '"S_Name":"12011",' \
                     '"S_mc_name":"二煤",' \
                     '"S_Cg_h":4.5,' \			# 此间省略若干数据...
                     '}'
            # str1 = '{"S_No":"16",' \
            #        '"S_Name":"12011",' \
            #        '"S_mc_name":"二煤",' \		# ...
            #        '}'
            str1_2 = '{"Keyword":"GZM_D",' \
                     '"S_No":"5",' \
                     '"S_Name":"2902",' \		# ...
                     '}'

            str2_1 = "GZM:16,12011,二煤,4.5,综采,0,3.4,600,214,1640,100,1,25,20000,0.3,2,3"
            str2_2 = "GZM_D: 5, 2902, 4, 2.6, 3, 2.4, 12, 5, 470, 550, 510, 300, 650, 3, 1, 2, 1, 1, 1, 1, 1, 2, 2, 0, 0, 0, 0, 100"

            str = str2_1
# 开始分类讨论,如果输入的字符串是以花括号开头结尾,表明是JSON输入方法;如果以 'GZM' 开头则反之
        if str.startswith("{") and str.endswith("}"):
            # 第一种,json输入方法
            if not self.Ex_Gzm.Base_Input(str): sys.exit()

            if self.Ex_Gzm.Keyword == 'GZM':
                self.Ex_Gzm.S_Input(str) #  "Keyword" 是 'GZM',则跳到Ex_Gzm.S_Input(str),并返回 True
                return True
            elif self.Ex_Gzm.Keyword == 'GZM_D':
                self.Ex_Gzm.ES_Input(str)  #  'GZM_D',则调用Ex_Gzm.ES_Input(str),
                return True
            else:
                self.warning.append('GZM拼写错误或缺失;')  # 不是 'GZM' 或 'GZM_D',则在 warning添加'GZM拼写错误或缺失'返回 False。
                return False
        else:
            # 第二种,字符串输入方法
            if str.startswith('GZM'):
                self.Ex_Gzm.Keyword = 'GZM'
                self.Ex_Gzm.S2_Input(str)
                return True
            else:
                self.warning.append('GZM拼写错误;')
                return False

接下来以 支架Zj 为例详细看两种方式:

image-20230725222709946

关于支架的GuideUnit内代码:

    def Ini_Zj(self, str):
        if str == '':
            str1_1 = '{"Keyword":"ZJ",' \
                     '"Zj_Name":"综采",' \
                     '"Zj_XingHao":"ZY13000/25/50",' \
                     # ...省略多组数据
                     '}'
            str2_1 = "ZJ:综采,ZY13000/25/50,1.75,5,2.6,2,2.5,13000,1.46,2,0.5"
            #  如果 str 参数为空则会初始化一个JSON格式的字符串 str1_1,以及一个字符串变量 str2_1  ,  下面先试验1_1  ;
            str = str1_1
        if str.startswith("{") and str.endswith("}"):  # 首先,它检查输入字符串是否以“{”开头和“}”结尾,以确定是否是一个JSON格式的字符串。
            # 第一种,json输入方法
            if not self.Ex_Zj.Base_Input(str): sys.exit()  # 调用Input处理JSON输入。成功则返回True,否则退出程序。

            if self.Ex_Zj.Keyword == 'ZJ':
                self.Ex_Zj.Zj_Input(str)
                return True  # 检查Keyword是否为“ZJ”。是则调用Input处理输入字符串,并返回True
            else:
                self.warning.append('ZJ拼写错误或缺失;')
                return False  # 如果Keyword不是“ZJ”,说明ZJ拼错或缺失,加到warning中,返回False。
        else:
            # 第二种,字符串输入方法
            if str.startswith('ZJ'):
                self.Ex_Zj.Keyword = 'ZJ'
                self.Ex_Zj.Zj2_Input(str)
                return True
            else:
                self.warning.append('ZJ拼写错误;')
                return False

最后是输出环节:

image-20230725224422970