zoukankan      html  css  js  c++  java
  • C/C++ 代码转换规范化的脚本

    起因

    一般从PDF复制下来人家的代码到TXT都是无脑缩进, 贴近最左侧; 本文主要解决这类问题。对无脑缩进到顶头的代码进行规范整理; 应该有很多IDE有这个功能

    很多情况下, 都会从网上黏贴下的代码非常不规范, 没有进行合理的缩进; 于是就有了下面这个工具的产生

    功能简述

    • 初始化文档; 就是去掉首位的空格, del_sw_space(string )
    • 合理缩进, 根据大括号出现的次数
    • 解决 for/if 单行执行的缩进

    代码

    def setCountTab(i):
        return ''.join(['	' for x in range(i)])
    
    def del_sw_space(string):
        start = 0
        end = len(string)-1
    
        while(start < end+1):
            if string[start] is not ' ':
                break
            else:
                start += 1
    
        while end >0:
            if string[end] is not ' ':
                break
            else:
                end -= 1
    
        return string[start:end+1]
    
    #print ('AAA' + del_sw_space(' fsd  sdfa s fs dsa  sadafew   ') + 'QQQ ')
    
    
    def k2(file1, file2):
    
        modify_file = open(file2, 'w+')
    
        g_iTabCount = 0
        flag = 0 ###记录反括号缩进标志 falg = 0 表示目前有表示了
    
        for line in open(file1, 'r+', encoding = 'utf-8').readlines():
    
            if flag == 1:
                modify_file.write('	')
                flag = 0
    
            modify_file.write(setCountTab(g_iTabCount))
            modify_file.writelines(del_sw_space(line))
            if '{' in line:
                g_iTabCount += 1
    
            if '}' in line:
                g_iTabCount -= 1
    
            if '//' in line:  ##专门解决 () // 下面换行的有注释的情况
                pre_line = del_sw_space(line.split('//')[0])
                print(pre_line)
                if pre_line.endswith(')'):
                    flag = 1
    
            if line.endswith(')
    ')  :
                flag = 1
    
        modify_file.close()
    
    
    file1 = 'L:\py_2cpp\demo.txt'
    file2 = 'L:\py_2cpp\temp.txt'
    
    k2(file1, file2)
    
  • 相关阅读:
    大话数据结构笔记
    zsh安装教程
    Matlab安装教程
    7-16 插入排序还是归并排序 (25 分)
    7-14 插入排序还是堆排序 (25 分)
    7-14 二叉搜索树的最近公共祖先 (30 分)
    7-11 笛卡尔树 (25 分)
    中缀转换为后缀和前缀
    7-15 水果忍者 (30 分)
    兔子的区间密码(思维)
  • 原文地址:https://www.cnblogs.com/actanble/p/6713417.html
Copyright © 2011-2022 走看看