可能是this指针使用不当报错,没找到原因,先mark一下,方便日后找错
QT版本:5.11.0
void fun_exchg_ran()//获取各个函数名
{
QString cmp = "\\b(Public|Private)\\s*(Function|Sub).*\\w";//正则表达式
QRegExp rx1(cmp);
QVector <QString> random_str;
QVector <QString> data_str;
int i = 0;
int j = 0;
QFile writeFile("random_info.xml");
if(writeFile.exists())//删除上一次生成的数据文件
writeFile.remove();
while(data[i] != NULL)
{
int start_function = 1;
QString strAll;
QStringList strList;
QFile readFile(data[i]);
if(readFile.open(QIODevice::ReadOnly|QIODevice::Text))//read文件之后,文件内容存入 stream 中,直接关闭文件,内容会被清空
{
QTextStream stream(&readFile);
strAll=stream.readAll();
}readFile.close();
strList=strAll.split("\n");
while(start_function != 0)
{
start_function = strList.indexOf(rx1,start_function);
if(start_function != -1)
{
strList.indexOf(rx1,start_function);
QString function_start = rx1.cap(0);
QString str_cut = function_start; //字符串切割处理
QStringList list1_cut = str_cut.split('(',QString::SkipEmptyParts);
QString str2_cut = list1_cut.at(0);
QStringList list2_cut = str2_cut.split(' ',QString::SkipEmptyParts);
QString function_start_cut = list2_cut.at(2);
if(writeFile.open(QIODevice::WriteOnly|QIODevice::Append))//Append设备以附加模式打开,所有的数据都写入文件的末尾
{
QTextStream stream(&writeFile);//NotOpen|ReadOnly|WriteOnly|ReadWrite|Truncate|Text|Unbuffered
stream<<function_start_cut<<'\n';
}writeFile.close();
start_function += 1;
j++;
}
else
start_function += 1;
}
i++;
}
//srand((int)time(NULL));//随机数发生器的初始化函数
for(int count = 0;count < 2;count++)
{
QString ar[10] = NULL;
for( int ran = 0; ran < 11; ran++ )//生成随机字符串
ar[ran] = rand()%(0x7a - 0x61) + 0x61;
int num1 = rand()%99;
QString num = QString::number(num1,10);
QString ran_str = ar[0] + ar[1] + ar[2] + ar[3] + ar[4] + ar[5] + "_" + num + "_" + ar[6] + ar[7] + ar[8] + ar[9] + ar[10];
random_str.append(ran_str);
}
}