VB函数详解:左部字符提取与Mid函数比较

需积分: 9 0 下载量 141 浏览量 更新于2024-09-18 收藏 136KB DOC 举报
本文档主要介绍了Visual Basic (VB)中的两个重要字符串处理函数:`Left`和`Mid`,以及辅助函数`Len`和`LenB`。这些函数在编程中经常用于操作字符串内容,尤其是在处理文本数据时。 **Left函数** `Left`函数是VB中用于从字符串左侧返回指定数量字符的方法。其语法为`Left(string, length)`,其中: - `string` 是一个必需的字符串表达式,表示要从中提取字符的源字符串。如果`string`为`Null`,则返回`Null`。 - `length` 是另一个必需的参数,作为`Variant(Long)`类型,指定要提取的字符数。如果`length`为0,将返回空字符串(`""`);如果大于或等于`string`的长度,将返回整个字符串。 例如,`Left("VB脚本isfun!", 4)` 将返回 "VB脚",因为是从第1个字符开始提取4个字符。 **Mid函数** `Mid`函数则允许从字符串中提取特定范围的字符,它的语法为`Mid(string, start[, length])`: - `string` 同样是源字符串。 - `start` 参数指定了提取字符的起始位置,若超过字符串长度,则返回空字符串。 - `length` 是可选的,表示要提取的字符数,如果省略或`length`超过实际可用字符数,会返回从`start`到字符串结束的所有字符。 如`Mid("VB脚本isfun!", 4, 6)` 将返回 "Script",即从第4个字符开始提取6个字符。 **Len函数** `Len`函数用于计算字符串中的字符数,包括空格和特殊字符。它有两个形式: - `Len(string)`,接受字符串表达式作为参数,返回非字节计数,适用于文本字符串。 - `Len(varname)`,对于变量名`varname`,返回该变量所存储字符串的字符数,同样适用于文本字符串。 例如,`Len("VBSCRIPT")` 将返回 8,因为这个字符串包含8个字符。 **LenB函数** `LenB`函数与`Len`类似,但它是针对包含在字符串中的字节数据,返回的是字节数,而非字符数。这对于处理多字节字符集(如Unicode)非常重要,因为它考虑到了每个字符可能占用的字节数。 总结来说,`Left`、`Mid`和`Len`函数是VB中处理字符串操作的基础工具,理解它们的用法可以帮助开发者更高效地处理和操作文本数据。同时,`LenB`的存在确保了在处理不同字符编码时的精确性。在实际编程中,根据具体需求灵活运用这些函数,能够有效提升代码的效率和准确性。

#include "mylogin.h" mylogin::mylogin(QWidget *parent) : QDialog(parent) { this->init_ui(); connect(this->bnt_login, &QPushButton::clicked, this, &mylogin::do_login); connect(this->bnt_register, &QPushButton::clicked , this ,&mylogin::do_enroll); } mylogin::~mylogin() { } void mylogin::init_ui() { this->setFixedSize(QSize(600,350)); this->setWindowTitle(tr("岑超升")); this->setWindowIcon(QIcon(":/src/1.png")); this->lb1 = new QLabel(); this->lb2 = new QLabel(); this->lb3 = new QLabel(); this->lb1->setFixedSize(QSize(560,200)); QPixmap pic; pic.load(":/src/2.png"); //this->lb1->setPixmap(pic.scaled(this->lb1->size(), Qt::KeepAspectRatio, Qt::SmoothTransformation)); this->lb1->setPixmap(QPixmap(":/src/2.png")); this->lb2->setText(tr("用户名:")); this->lb3->setText(tr("密 码:")); this->usr_name_le = new QLineEdit(); //这两个参数后面传入信号中去,然后emit发射出去 this->usr_pass_le = new QLineEdit(); this->usr_pass_le->setEchoMode(QLineEdit::Password); this->bnt_login = new QPushButton(tr("登 陆")); this->bnt_register = new QPushButton(tr("注 册")); this->hb1 = new QHBoxLayout(); this->hb2 = new QHBoxLayout(); this->hb3 = new QHBoxLayout(); this->hb1->addWidget(this->lb2); this->hb1->addWidget(this->usr_name_le); this->hb2->addWidget(this->lb3); this->hb2->addWidget(this->usr_pass_le); this->hb3->addWidget(this->bnt_login); this->hb3->addWidget(this->bnt_register); this->vb1 = new QVBoxLayout(); this->vb1->addWidget(this->lb1); this->vb1->addLayout(this->hb1); this->vb1->addLayout(this->hb2); this->vb1->addLayout(this->hb3); this->setLayout(this->vb1); } void mylogin::do_login() { emit sig_login(usr_name_le->text(), usr_pass_le->text()); //需要把这里输入的账号密码信息发送到myapp那去,用到的函数是emit //需要自定义一个信号,sig_login //这个槽函数能够发出信号 } void mylogin::do_enroll() { emit sig_enroll(); }解释每一行代码

2023-06-09 上传