import time, random, string, ctypes, re
def 延迟(毫秒):
    """
    # 示例用法
    延迟(500)
    """
    time.sleep(毫秒 / 1000)

def 文本_到大写(要转换的文本):
    """
    # 示例用法
    文本 = "Hello world"
    结果 = 文本_到大写(文本)
    print(结果)  # 输出：HELLO WORLD
    """
    return 要转换的文本.upper()

def 文本_到小写(要转换的文本):
    """
    # 示例用法
    文本 = "Hello World"
    结果 = 文本_到小写(文本)
    print(结果)  # 输出：hello world
    """
    return 要转换的文本.lower()

def 文本_颠倒(欲转换文本, 带有中文=False):
    """
    # 示例用法
    文本 = "123456"
    结果 = 文本_颠倒(文本)
    print(结果)  # 输出：654321
    """
    if 带有中文:
        return 欲转换文本[::-1]
    else:
        # 如果文本中含有中文字符，直接使用[::-1]可能会出现乱序，所以先转换为列表再逆序
        文本列表 = list(欲转换文本)
        文本列表.reverse()
        return ''.join(文本列表)

def 文本_分割文本(待分割文本, 分隔符):
    """
    # 示例用法
    文本 = "apple,orange,banana"
    分隔符 = ","
    分割结果 = 文本_分割文本(文本, 分隔符)
    print("分割结果:", 分割结果)
    """
    return 待分割文本.split(分隔符)

def 文本_加密(参数_待加密文本, 参数_加密的密码):
    """
    # 示例用法
    待加密文本 = "hello"
    加密的密码 = "12345"
    加密后文本 = 文本_加密(待加密文本, 加密的密码)
    print("加密后文本:", 加密后文本)
    """
    if len(参数_加密的密码) < 5:  # 密码建议使用5位以上的数字
        return ""  # 密码长度不足，加密失败，返回空文本

    加密结果 = ""
    for i, 字符 in enumerate(参数_待加密文本):
        加密后字符 = chr(ord(字符) + int(参数_加密的密码[i % len(参数_加密的密码)]))
        加密结果 += 加密后字符
    return 加密结果

def 文本_解密(参数_待解密文本, 参数_解密的密码):
    """
    # 示例用法
    待解密文本 = "igopt"
    解密的密码 = "12345"
    解密后文本 = 文本_解密(待解密文本, 解密的密码)
    print("解密后文本:", 解密后文本)
    """
    if len(参数_解密的密码) < 5:  # 密码建议使用5位以上的数字
        return ""  # 密码长度不足，解密失败，返回空文本

    解密结果 = ""
    for i, 字符 in enumerate(参数_待解密文本):
        解密后字符 = chr(ord(字符) - int(参数_解密的密码[i % len(参数_解密的密码)]))
        解密结果 += 解密后字符
    return 解密结果

def 文本_取出文本中汉字(字符串):
    """
    # 示例用法
    文本 = "这是一段中文文本，English words are also included."
    汉字文本 = 文本_取出文本中汉字(文本)
    print("取出的汉字文本:", 汉字文本)
    """
    汉字列表 = [char for char in 字符串 if '\u4e00' <= char <= '\u9fff']
    return ''.join(汉字列表)

def 文本_取出现次数(被搜索文本, 欲搜索文本, 是否区分大小写=False):
    """
    # 示例用法，默认不区分大小写
    文本 = "This is a sample text. This text is for demonstration purposes."
    搜索文本 = "Text"
    出现次数 = 文本_取出现次数(文本, 搜索文本)
    print("搜索文本出现的次数:", 出现次数)
    """
    if not 是否区分大小写:
        被搜索文本 = 被搜索文本.lower()
        欲搜索文本 = 欲搜索文本.lower()

    return 被搜索文本.count(欲搜索文本)

def 文本_取出中间文本(欲取全文本, 前面文本, 后面文本, 起始搜寻位置=None, 是否不区分大小写=False):
    """
    # 示例用法
    全文本 = "这是一个示例文本，中间包含了要取出的部分。"
    前文本 = "示例文本，中间包含了"
    后文本 = "部分。"
    中间文本 = 文本_取出中间文本(全文本, 前文本, 后文本)
    print("取出的中间文本:", 中间文本)
    """
    if 是否不区分大小写:
        欲取全文本 = 欲取全文本.lower()
        前面文本 = 前面文本.lower()
        后面文本 = 后面文本.lower()

    if 起始搜寻位置 is not None:
        起始索引 = 欲取全文本.find(前面文本, 起始搜寻位置)
    else:
        起始索引 = 欲取全文本.find(前面文本)

    if 起始索引 == -1:
        return ""

    起始索引 += len(前面文本)
    结束索引 = 欲取全文本.find(后面文本, 起始索引)
    if 结束索引 == -1:
        return ""

    return 欲取全文本[起始索引:结束索引]

def 文本_取随机字符(要取的字符数, 获取模式=1):
    """
    # 示例用法,获取模式, 1=数字, 2=小写字母, 4=大写字母, 8=特殊字符
    随机数字 = 文本_取随机字符(10, 1)
    print("随机数字:", 随机数字)

    随机字母 = 文本_取随机字符(10, 2 | 4)
    print("随机字母:", 随机字母)

    随机字符 = 文本_取随机字符(10, 1 | 2 | 4 | 8)
    print("随机字符:", 随机字符)
    """
    可见字符集合 = ""
    if 获取模式 & 1:
        可见字符集合 += string.digits
    if 获取模式 & 2:
        可见字符集合 += string.ascii_lowercase
    if 获取模式 & 4:
        可见字符集合 += string.ascii_uppercase
    if 获取模式 & 8:
        可见字符集合 += string.punctuation

    随机字符列表 = random.choices(可见字符集合, k=要取的字符数)
    return ''.join(随机字符列表)

def 文本_取文本所在行(源文本, 欲查找的文本, 是否区分大小写=False):
    """
    # 示例用法
    文本 = "This is the fourth line"
    欲查找的文本 = "fourth"
    行号 = 文本_取文本所在行(文本, 欲查找的文本)
    print("欲查找文本所在行号:", 行号)
    """
    if not 是否区分大小写:
        源文本 = 源文本.lower()
        欲查找的文本 = 欲查找的文本.lower()

    行列表 = 源文本.splitlines()
    for 行号, 行文本 in enumerate(行列表, start=1):
        if 欲查找的文本 in 行文本:
            return 行号

    return 0

def 文本_取行数(文本):
    """
    # 示例用法
    文本 = "这是第一行"
    行数 = 文本_取行数(文本)
    print("文本共有", 行数, "行")
    """
    行数 = len(文本.splitlines())
    return 行数

def 文本_取右边(被查找的文本, 欲寻找的文本, 起始寻找位置=0, 是否不区分大小写=False):
    """
    # 示例用法
    被查找的文本 = "这是一个示例文本，Python是一种很强大的编程语言"
    欲寻找的文本 = "Python"
    结果 = 文本_取右边(被查找的文本, 欲寻找的文本, 1, True)
    print(结果)  # 输出：是一种很强大的编程语言
    """
    if 是否不区分大小写:
        被查找的文本 = 被查找的文本.lower()
        欲寻找的文本 = 欲寻找的文本.lower()

    寻找位置 = 被查找的文本.find(欲寻找的文本, 起始寻找位置)
    if 寻找位置 != -1:
        return 被查找的文本[寻找位置 + len(欲寻找的文本):]
    else:
        return ""

def 文本_取长度(源文本):
    """
    # 示例用法
    文本 = "这是一段示例文本a"
    长度 = 文本_取长度(文本)
    print("文本的长度:", 长度)
    """
    return len(源文本)

def 文本_取指定变量文本行(文本, 行号):
    """
    # 示例用法
    源文本 = "这是第一行"
    行号 = 1
    文本行 = 文本_取指定变量文本行(源文本, 行号)
    print("第", 行号, "行的文本:", 文本行)
    """
    行列表 = 文本.splitlines()
    行数 = len(行列表)
    if 1 <= 行号 <= 行数:
        return 行列表[行号 - 1]
    else:
        return ""

def 文本_取左边(被查找的文本, 欲寻找的文本, 起始寻找位置=1, 是否不区分大小写=False):
    """
    # 示例用法
    文本 = "这是一个示例文本，包含要寻找的文本"
    欲寻找的文本 = "示例"
    左边文本 = 文本_取左边(文本, 欲寻找的文本)
    print("欲寻找文本左边的内容:", 左边文本)
    """
    if 是否不区分大小写:
        被查找的文本 = 被查找的文本.lower()
        欲寻找的文本 = 欲寻找的文本.lower()

    if 起始寻找位置 < 0:
        被查找的文本 = 被查找的文本[::-1]
        欲寻找的文本 = 欲寻找的文本[::-1]

    index = 被查找的文本.find(欲寻找的文本, abs(起始寻找位置) - 1)
    if index != -1:
        return 被查找的文本[:index]
    else:
        return ""

def 文本_替换行内容(文本, 行数, 替换内容):
    """
    # 示例用法
    源文本 = "这是第一行\n这是第二行\n这是第三行"
    行号 = 2
    替换文本 = "曾凤翔"
    替换后文本 = 文本_替换行内容(源文本, 行号, 替换文本)
    print("替换后的文本:")
    print(替换后文本)
    """
    行列表 = 文本.splitlines()
    行数 -= 1  # 行数从1开始计数，列表索引从0开始，需要减1
    if 0 <= 行数 < len(行列表):
        行列表[行数] = 替换内容
        return '\n'.join(行列表)
    else:
        return 文本

def 文本区分_只取符号(源文本):
    """
    # 示例用法
    源文本 = "这是一个示例文本，包含一些符号：!?@#$%^&*()_+"
    符号文本 = 文本区分_只取符号(源文本)
    print("提取的符号文本:", 符号文本)
    """
    # 使用正则表达式匹配非字母、非数字、非空格的字符
    符号列表 = re.findall(r'[^\w\s]', 源文本)
    # 将符号列表连接成一个字符串并返回
    return ''.join(符号列表)

def 文本区分_只取汉字(源文本):
    """
    # 示例用法
    源文本 = "这是一个示例文本，包含一些汉字：你好，世界！"
    汉字文本 = 文本区分_只取汉字(源文本)
    print("提取的汉字文本:", 汉字文本)
    """
    汉字列表 = [字符 for 字符 in 源文本 if '\u4e00' <= 字符 <= '\u9fa5']
    # 将汉字列表连接成一个字符串并返回
    return ''.join(汉字列表)

def 文本区分_只取数字(源文本):
    """
    # 示例用法
    源文本 = "这是一个示例文本，包含一些数字：1234567890"
    数字文本 = 文本区分_只取数字(源文本)
    print("提取的数字文本:", 数字文本)
    """
    # 使用正则表达式匹配数字
    数字列表 = ''.join(filter(str.isdigit, 源文本))
    return 数字列表








