易语言实现文本填充至指定长度的编程指南

本文还有配套的精品资源,点击获取 menu-r.4af5f7ec.gif

简介:易语言中,实现将字符串扩展到指定长度的操作是一个编程基础,尤其对于格式化输出和数据处理很有帮助。该操作主要通过字符串处理函数如"字符串长度"、"取字符串前部"、"取字符串后部"和"复制"等完成。此外,可能涉及到易语言的模块和控件,例如将自定义文本控件的长度自动调整至预设值。本指南将详细探讨如何通过易语言源码实现字符串的填充,并展示相关的编程技巧和应用,帮助易语言开发者提高代码的复用性和可维护性。 填充前后文本到指定长度-易语言

1. 易语言字符串处理函数应用

易语言以其简洁的语法和强大的中文支持,为广大编程爱好者提供了便捷的开发体验。在易语言中,字符串处理是一个极其重要的功能模块。掌握字符串处理函数的运用,不仅可以提高代码的执行效率,还能增强程序的可读性和可维护性。

字符串处理函数通常包括但不限于:字符拼接、字符串分割、替换、比较以及字符串中的子串查找等。本章将带您深入了解易语言提供的这些基础字符串函数,并通过实例演示这些函数在实际开发中的应用。为了便于理解,我们将使用简单的代码片段作为说明,并在具体场景中展示它们如何工作。

.版本 2
.程序集 程序集1
.子程序 _主程序, 整数型, , , 主程序
    .局部变量 字符串1, 文本型
    .局部变量 字符串2, 文本型
    .局部变量 结果字符串, 文本型
    字符串1 = “易语言”
    字符串2 = “是中文编程的利器”
    结果字符串 = 字符串拼接(字符串1, 字符串2)
    输出(结果字符串)
.子程序结束

在上面的代码示例中,我们使用了 字符串拼接 函数来组合两个文本,并通过 输出 函数在控制台打印结果。这只是易语言字符串处理功能的一个简单演示。在接下来的章节中,我们将探索更多实用的字符串处理技术,并结合具体案例深入分析其应用。

2. 文本长度填充操作

2.1 填充前的文本长度检测

2.1.1 检测文本长度的意义与方法

在软件开发中,文本长度的检测是常见的需求之一。这一操作对于确保用户输入的文本满足特定格式要求至关重要,比如在网络请求中确保字符串长度不超过限制。此外,文本长度的检测也是进行文本填充前的重要步骤,以避免不必要的计算和潜在的错误。

在易语言中,可以使用 取字符串长度 函数来检测文本的长度。该函数返回一个数值,表示字符串中字符的数量,不包含结尾的空字符。以下是一个检测文本长度的简单示例:

.版本 2
.程序集 程序集1
.子程序 _启动子程序, 整数型
    .局部变量 文本, 文本型
    .局部变量 长度, 整数型
    文本 = "易语言"
    长度 = 取字符串长度(文本)
    输出(长度)
.子程序结束

执行上述代码后,会输出字符串"易语言"的长度,即3。

2.1.2 面向不同场景的长度检测技巧

不同的应用场景对文本长度的检测要求有所不同。例如,一个论坛发帖功能可能限制用户输入的字符数不得超过500个,而一个用户昵称可能只允许16个字符以内。在易语言中,我们可以编写不同的函数来满足这些需求。

下面的代码段展示了如何实现一个简单的长度检测函数:

.函数 检测文本长度是否合法, 逻辑型, 文本型 文本, 整数型 最大长度
    .局部变量 当前长度, 整数型
    当前长度 = 取字符串长度(文本)
    如果 (当前长度 > 最大长度)
        返回 假
    否则
        返回 真
    结束如果
.函数结束

通过这个函数,我们可以检测文本是否符合指定的最大长度要求。例如,调用 检测文本长度是否合法("易语言", 5) 将返回 ,而调用 检测文本长度是否合法("易语言", 2) 将返回

2.2 根据需求进行长度填充

2.2.1 水平方向的文本填充策略

在易语言中实现文本水平填充,通常是为了实现对齐效果。这在用户界面设计中非常常见,如标签、按钮上的文字居中或右对齐显示。实现水平方向的文本填充,可以利用 绘图_绘制文本 函数,并设置适当的对齐参数。

以下是一个简单的例子,演示如何使用易语言进行文本的水平填充:

.子程序 _启动子程序, 整数型
    .局部变量 窗口句柄, 整数型
    .局部变量 文本, 文本型
    窗口句柄 = 取窗口句柄(0)
    文本 = "易语言"
    绘图_绘制文本(窗口句柄, 文本, 50, 100, 居中对齐)
.子程序结束

在这个例子中,我们使用 居中对齐 参数来确保文本在指定坐标处水平居中。

2.2.2 垂直方向的文本填充技巧

文本的垂直填充没有水平填充那么直观,但也可以通过计算和多次绘制来实现,尤其是在需要进行文本垂直居中或者底部对齐的场景。易语言中没有直接提供垂直对齐的函数,但可以通过计算字符的高度和绘制位置来模拟垂直填充效果。

示例代码如下:

.子程序 _启动子程序, 整数型
    .局部变量 窗口句柄, 整数型
    .局部变量 文本, 文本型
    .局部变量 文本高度, 整数型
    窗口句柄 = 取窗口句柄(0)
    文本 = "易语言"
    文本高度 = 取文本高度(字体, 文本)
    绘图_绘制文本(窗口句柄, 文本, 50, (窗口高度 - 文本高度) / 2, 居中对齐)
.子程序结束

在这个例子中,我们先计算了文本的高度,然后通过调整Y坐标值,实现文本在窗口中的垂直居中。

2.3 填充后的效果验证

2.3.1 可视化验证方法

当文本填充完成后,通常需要验证其效果是否满足设计要求。在易语言中,可以通过其强大的图形用户界面功能来进行可视化验证。

例如,可以创建一个窗口并使用不同的填充方法绘制文本,然后通过视觉检查确认文本显示是否正确。此外,易语言也提供了截图和比较功能,使得自动化测试成为可能。

2.3.2 性能影响及优化建议

在处理文本填充时,可能会影响到程序的性能,特别是在需要处理大量文本或者在高频率更新UI的场景。为了优化性能,可以采取以下几个建议:

  1. 减少不必要的绘制 :只在文本实际发生变化时重绘文本,而不是在每次UI更新时。
  2. 使用双缓冲技术 :在内存中创建一个临时图像,先在这个图像上绘制文本,然后再将最终结果绘制到屏幕上,减少屏幕闪烁。
  3. 优化渲染方法 :使用最高效的绘制方法,例如直接使用图形硬件加速(如果可用)。

性能优化是一个持续的过程,需要根据实际情况不断测试和调整。

本章节详细介绍了文本长度检测、填充策略和效果验证方法,以及易语言中的具体实现方式。通过本章的学习,读者应能够掌握如何在易语言中进行有效的文本长度检测和填充操作,并对提高程序性能有了更深入的理解。

3. 模块和控件在易语言中的使用

在易语言中,模块和控件是构成应用程序的基石,它们各自扮演着重要的角色。模块负责封装代码逻辑,而控件则提供用户界面的交互功能。本章节将深入探讨模块和控件的使用,以及它们如何相互配合以提升应用程序的性能和用户体验。

3.1 模块的引入和应用

3.1.1 模块的概念及其重要性

在易语言中,模块是一段封装好的程序单元,可以包含变量、常量、函数、过程等。它们允许程序员将代码分组,使得管理大型项目变得更加容易,并有助于代码的复用。模块的重要性体现在以下几个方面:

  • 代码组织 :模块化设计有助于清晰地组织代码,使其结构化和层次化。
  • 复用性 :一个模块中的代码可以在多个项目或同一项目的不同部分中重用。
  • 维护性 :模块化代码更容易维护和更新,因为对一个功能的更改不需要深入到整个程序中。
  • 封装性 :通过模块可以隐藏内部实现细节,只暴露必要的接口,增强安全性。

3.1.2 案例分析:模块在项目中的实际应用

考虑一个简单的例子:一个图书管理系统,可以分为用户登录模块、图书检索模块、借阅管理模块和用户管理模块。每个模块都负责其特定的业务逻辑。以下是登录模块的一个示例代码片段:

模块 系统登录模块
    函数 登录(用户名, 密码)
        如果 (用户名 = "admin" 和 密码 = "admin123")
            返回 真
        否则
            返回 假
        结束如果
    结束函数
结束模块

在这个模块中,登录函数负责验证用户名和密码是否匹配预设的管理员账户信息。模块的引入使得该登录功能可以在系统的其他部分被调用,而无需重写验证逻辑。

3.2 控件的使用和配置

3.2.1 控件的基本属性和事件处理

易语言中的控件可以视为预定义的用户界面组件,用于与用户进行交互。控件提供了丰富的属性和事件,以便开发者根据需要进行配置。

  • 属性 :控件属性定义了控件的外观和行为。例如,一个按钮控件有“文本”属性,可以设置按钮上显示的文字。
  • 事件 :控件事件指的是用户与控件交互时触发的响应动作。例如,当用户点击按钮时,会触发按钮的“点击事件”。

控件的事件处理是通过编写事件响应代码实现的。以下是一个按钮点击事件处理的示例:

子程序 按钮1_点击()
    信息框("你点击了按钮!")
结束子程序

在这个例子中,当按钮1被点击时,会执行 子程序 中的代码,弹出一个信息框显示消息。

3.2.2 常见控件类型及应用场景

易语言提供了多种类型的控件,每种控件适用于不同的场景。以下是一些常见控件及其应用:

  • 按钮控件 :用于接收用户的点击操作,常用于触发事件处理程序。
  • 文本框控件 :用于显示文本信息或接收用户输入。
  • 列表框控件 :用于显示列表数据,并允许用户进行选择。
  • 进度条控件 :用于显示操作进度,如文件下载或数据处理。

为了展示如何使用这些控件,下面的代码展示了一个简单的登录界面,使用了标签、文本框和按钮控件:

控件 标签1(位置:0, 20, 50, 20)
控件 文本框1(位置:60, 20, 100, 20)
控件 按钮1(位置:170, 20, 50, 20)

在这个布局中,标签控件用于显示“用户名”,文本框控件允许用户输入用户名,按钮控件则用于提交登录信息。

3.3 模块与控件的协同工作

3.3.1 模块与控件的交互方式

模块和控件的协同工作是通过事件驱动的。在易语言中,当用户操作某个控件(如按钮点击)时,会触发一个事件,该事件可以调用一个函数或过程,该函数或过程则可以位于一个模块中。这样模块中的逻辑代码就可以与界面控件交互。

3.3.2 整合模块和控件优化用户体验

为了优化用户体验,开发者需要将模块的逻辑和控件的交互整合在一起。以下是一些优化用户体验的方法:

  • 合理性布局 :确保控件布局直观易用。
  • 反馈及时 :用户操作后应立即给予反馈,如按钮点击后颜色变化。
  • 性能优化 :避免不必要的模块计算,确保界面流畅。
  • 错误处理 :合理处理用户的错误操作,并给出提示。

通过上述方法,可以实现一个既美观又实用的用户界面,从而提升整个应用程序的价值。

以上为第三章的详细介绍。易语言通过模块和控件的使用,为开发人员提供了强大的工具来构建应用程序。理解这些基础知识对于每个易语言开发者来说都是不可或缺的。在接下来的章节中,我们将探讨如何自定义控件长度调整,进一步提升用户界面的灵活性和响应性。

4. 自定义控件长度调整

在现代的软件设计中,用户界面(UI)的灵活性和响应性是吸引用户的关键因素之一。自定义控件长度调整功能允许开发者创建能够根据内容动态改变其尺寸的控件,从而提供更为丰富的用户体验。在本章中,我们将深入探讨自定义控件长度调整的各个方面。

4.1 掌握控件的尺寸属性

4.1.1 如何获取控件的当前尺寸

在易语言中,控件的尺寸属性通常可以通过其宽度和高度两个维度来获取。获取这些值可以通过调用控件的属性方法,或者使用内置的函数。以下是一个示例代码,展示了如何获取一个名为 myControl 的控件的宽度和高度:

.版本 2
.程序集 程序集1
.子程序 _启动子程序, 整数型, , , 启动
    .局部变量 控件宽度, 整数型
    .局部变量 控件高度, 整数型
    控件宽度 = 取控件宽度(取窗口句柄(0), 取控件句柄(“myControl”, 取窗口句柄(0)))
    控件高度 = 取控件高度(取窗口句柄(0), 取控件句柄(“myControl”, 取窗口句柄(0)))
    输出(“控件宽度: ” + 转文本(控件宽度) + “, 控件高度: ” + 转文本(控件高度))
.子程序结束

在这个代码块中, 取控件宽度 取控件高度 函数分别返回了指定控件的宽度和高度值,这些值被存储在相应的变量中。这些操作允许开发者在需要时调整控件大小。

4.1.2 控件尺寸的动态调整技术

动态调整控件的尺寸是实现自定义控件长度调整的核心。这通常涉及到响应不同的用户交互,如窗口大小变化、内容变更等。易语言提供了一系列函数来实现动态调整控件尺寸的功能。

.版本 2
.程序集 程序集1
.子程序 _调整控件尺寸, 整数型, , , 启动
    .局部变量 新宽度, 整数型
    .局部变量 新高度, 整数型
    新宽度 = 新值  ' 可以根据实际情况设定新的宽度值
    新高度 = 新值  ' 可以根据实际情况设定新的高度值
    设置控件大小(取窗口句柄(0), 取控件句柄(“myControl”, 取窗口句柄(0)), 新宽度, 新高度)
.子程序结束

在上述代码中, 设置控件大小 函数允许开发者指定新的宽度和高度值,从而改变控件的尺寸。在实际应用中,你可能需要根据控件内容的大小或窗口大小的变化来动态计算这些值。

4.2 调整控件以适应不同长度

4.2.1 设计响应式布局的策略

要使控件能够适应不同的长度,首先需要设计一个响应式布局的策略。这意味着控件的布局和尺寸必须能够响应不同的屏幕大小和显示设备。在易语言中,可以通过编写合适的事件处理逻辑来实现这一点。

.版本 2
.程序集 程序集1
.子程序 _响应式布局调整, 整数型, , , 启动
    .局部变量 窗口宽度, 整数型
    .局部变量 控件宽度, 整数型
    窗口宽度 = 取窗口宽度(取窗口句柄(0))
    控件宽度 = 窗口宽度 / 2  ' 控件宽度设置为窗口宽度的一半
    设置控件大小(取窗口句柄(0), 取控件句柄(“myControl”, 取窗口句柄(0)), 控件宽度, -1)
.子程序结束

上面的代码示例中,当窗口大小变化时,控件的宽度被设置为窗口宽度的一半。参数 -1 表示高度将自动调整以保持控件的原始宽高比。通过这样的逻辑,可以确保控件在不同设备上都能保持良好的布局和显示效果。

4.2.2 代码实现控件长度的自动调整

易语言提供了丰富的事件驱动机制,允许开发者编写代码来处理诸如窗口大小改变的事件。以下是一个处理窗口大小变化事件以自动调整控件长度的代码示例:

.版本 2
.程序集 程序集1
.事件 _窗口大小改变事件, 整数型, , , 启动
    .参数 窗口句柄, 整数型
    .参数 消息, 整数型
    .参数 新宽度, 整数型
    .参数 新高度, 整数型
    .局部变量 控件宽度, 整数型
    控件宽度 = 新宽度 / 3  ' 控件宽度设置为窗口宽度的三分之一
    设置控件大小(窗口句柄, 取控件句柄(“myControl”, 窗口句柄), 控件宽度, -1)
    返回 0
.事件结束

在上述代码中,每当窗口大小改变时,会触发 _窗口大小改变事件 。事件处理程序计算新的控件宽度为窗口宽度的三分之一,并调用 设置控件大小 函数更新控件尺寸。 -1 再次表示高度由系统自动计算。

4.3 长度调整后的用户交互处理

4.3.1 处理用户输入与显示输出

在控件长度动态调整后,确保用户输入和显示输出的正确性至关重要。易语言提供了一系列的事件和函数来处理用户交互,从而确保控件调整后用户界面依然流畅。

.版本 2
.程序集 程序集1
.子程序 _用户交互处理, 整数型, , , 启动
    .局部变量 用户输入, 字节集型
    .局部变量 显示内容, 文本型
    用户输入 = 取控件文本(取控件句柄(“myControl”, 取窗口句柄(0)))
    显示内容 = 文本型(用户输入)
    输出(显示内容)
    返回 0
.子程序结束

在这个代码块中, 取控件文本 函数用于获取用户在控件中的输入,然后将其转换成文本型数据进行显示或其他处理。在调整控件长度后,这一逻辑确保了用户输入和显示输出的准确性和及时性。

4.3.2 调整过程中保持用户界面流畅性

为了在控件尺寸调整过程中保持用户界面的流畅性,易语言提供了多线程处理机制。开发者可以通过创建后台线程来处理耗时操作,以避免阻塞主线程和用户界面。

.版本 2
.程序集 程序集1
.子程序 _后台任务处理, 整数型, , , 启动
    .局部变量 控件宽度, 整数型
    控件宽度 = 取随机数(100, 300)
    启动线程(子线程调整控件宽度, 控件宽度)
    返回 0
.子程序结束

.子程序 子线程调整控件宽度, 整数型, , , 启动
    .参数 新宽度, 整数型
    设置控件大小(取窗口句柄(0), 取控件句柄(“myControl”, 取窗口句柄(0)), 新宽度, -1)
    返回 0
.子程序结束

在这个例子中, 启动线程 函数用于创建一个新的线程,名为 子线程调整控件宽度 ,它接收一个新宽度值作为参数,并在后台调整控件尺寸。这样,即使在进行调整时,用户界面也能保持响应,不会出现卡顿的现象。

通过本章节的深入讨论,我们可以看到在易语言中实现自定义控件长度调整的过程涉及到多个方面,包括获取和设置控件尺寸、动态调整控件尺寸以及处理用户交互。掌握这些技能将有助于开发出更为灵活和响应式的用户界面。

5. 易语言源码解读与实践

5.1 源码结构与组成要素解析

在深入了解易语言源码之前,我们首先需要了解易语言的源码结构。易语言作为一种面向对象编程语言,其源码通常包括以下几个基本组成部分:

  • 常量定义 :通常在代码文件的开头部分,定义一些程序中频繁使用的常数值。
  • 类型定义 :定义新的数据类型或结构体,以适应程序的需求。
  • 变量声明 :在程序的全局或局部范围声明变量,这些变量将在程序运行过程中存储数据。
  • 函数定义 :函数是实现具体操作的基本单元,它们可能包括过程、函数、事件处理程序等。
  • 模块和类的定义 :模块和类是面向对象编程的基本单位,用于封装数据和操作这些数据的函数。

5.1.1 易语言源码的基本结构

易语言源码的基本结构可大致分为以下部分:

  • 预处理指令 :如包含头文件、定义宏等。
  • 全局变量声明 :在整个程序中可用的变量。
  • 程序入口 :易语言中通常是从“主程序”开始执行。
  • 函数与过程 :主要的逻辑执行单元。
  • 事件处理程序 :响应用户操作或系统消息的函数。
  • 模块和类 :封装了数据和操作的代码块。

5.1.2 各部分代码的作用与关联

在易语言中,一个程序的运行是由主程序开始,通过调用不同的函数和过程,实现特定的功能。这些代码块之间的关联方式通常是通过函数调用和参数传递实现的。例如,主程序调用一个函数,这个函数执行完毕后返回一个值给主程序,或者直接改变程序状态。

// 示例代码块
常量定义
    定义 文本型, 长整数型, 浮点型等常量

类型定义
    定义 自定义类型或结构体

变量声明
    全局变量声明
    局部变量声明

程序入口
    主程序()
        变量初始化
        调用函数
        循环和条件判断

函数定义
    函数名(参数列表)
        局部变量声明
        执行逻辑
        返回值

模块和类定义
    模块名(基类)
        私有变量
        公有函数
        事件处理程序

在实际的编程实践中,理解每一部分代码的作用和它们之间的关联对调试和优化程序至关重要。接下来我们将深入探讨易语言的源码解读和应用实践。

5.2 实际案例分析与源码应用

易语言的源码不仅可以帮助我们理解程序的工作原理,还可以通过分析案例,学习如何将理论应用于实际问题的解决。本节将通过一个实际案例来剖析易语言的源码,并展示如何应用这些源码解决具体的编程问题。

5.2.1 典型案例的源码剖析

假设我们要开发一个简单的小游戏,游戏规则是让用户输入一个数字,然后程序判断这个数字是奇数还是偶数。以下是这个案例的基本源码结构:

// 游戏主程序
主程序()
    提示输入(“请输入一个整数:”)
    输入整数变量(数字)
    判断数字是否为奇数(数字)
// 判断奇数的函数
判断奇数(整数型 参数)
    如果(参数 % 2 = 0)
        输出(“这是一个偶数!”)
    否则
        输出(“这是一个奇数!”)

在这个案例中,我们可以看到从主程序调用输入提示,到判断逻辑的实现,代码的结构清晰,逻辑简单。通过类似这样的案例分析,我们可以学会如何拆解问题,逐步实现功能模块。

5.2.2 将理论应用于实际问题解决

通过上述案例,我们可以了解易语言的源码是如何工作的,接下来需要思考如何将这些理论应用到解决实际问题中。例如,如果你要开发一个更为复杂的应用程序,你可能需要考虑如何定义合适的数据结构、如何设计程序的流程、如何处理异常情况等。

应用这些理论和实践的关键点在于:

  • 理解需求 :明确你想要实现的功能和目标。
  • 模块化设计 :将复杂的问题分解为简单的模块,每个模块完成一个小的功能。
  • 代码复用 :编写可复用的函数和类,减少重复代码。
  • 优化调试 :编写代码后,进行充分的测试和调试。

通过将这些理论应用到具体的编程实践中,我们可以编写出更加健壮、易维护的程序。

5.3 源码优化与性能提升

对于任何程序来说,性能的优化都是一个持续的过程。易语言也不例外。在这一部分,我们将探讨如何识别和优化性能瓶颈,并提供一些常见的优化方法和实践案例。

5.3.1 识别并优化性能瓶颈

识别程序中的性能瓶颈是优化的第一步。在易语言中,可以通过以下几种方式来识别性能瓶颈:

  • 逻辑分析 :使用调试工具逐步执行程序,检查在哪个环节耗时最长。
  • 性能分析器 :使用专门的性能分析工具,例如内置的性能监控器或第三方插件来检查。
  • 代码审查 :手动审查代码逻辑,寻找可以优化的地方,如循环次数过多、不必要的计算等。

5.3.2 常见优化方法和实践案例

常见的性能优化方法包括但不限于:

  • 优化数据结构 :使用更合适的数据结构可以加快查找和访问速度。
  • 减少计算量 :对于重复或不必要的计算,通过缓存结果来减少计算量。
  • 减少内存占用 :避免创建过多的临时变量,合理管理内存分配和释放。
  • 并行计算 :当可行时,可以利用多线程并行处理某些任务来提高效率。

以一个简单的性能优化案例为例:

// 原始代码:存在重复的计算
函数 计算结果(参数1, 参数2)
    计算变量 = 参数1 + 参数2
    返回 计算变量 * 计算变量

// 优化后的代码:利用中间变量减少重复计算
函数 计算结果优化(参数1, 参数2)
    计算变量 = 参数1 + 参数2
    缓存变量 = 计算变量 * 计算变量
    返回 缓存变量

通过这样的优化,程序在执行过程中减少了重复的乘法运算,从而提高了执行效率。

总结来说,识别性能瓶颈并进行针对性的优化是提高易语言程序性能的关键。通过持续的代码审查、测试和重构,我们可以逐步提升程序的性能。

本文还有配套的精品资源,点击获取 menu-r.4af5f7ec.gif

简介:易语言中,实现将字符串扩展到指定长度的操作是一个编程基础,尤其对于格式化输出和数据处理很有帮助。该操作主要通过字符串处理函数如"字符串长度"、"取字符串前部"、"取字符串后部"和"复制"等完成。此外,可能涉及到易语言的模块和控件,例如将自定义文本控件的长度自动调整至预设值。本指南将详细探讨如何通过易语言源码实现字符串的填充,并展示相关的编程技巧和应用,帮助易语言开发者提高代码的复用性和可维护性。

本文还有配套的精品资源,点击获取 menu-r.4af5f7ec.gif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值