Qt与C#之间的代码移植细节--慢慢的

来源:互联网 发布:大数据 文化产业 编辑:程序博客网 时间:2024/06/08 15:55

1. 首先建立动态二维数组上存在着差异
- ->C# string[,] strProgText = new string[TC45ProgOrder.N_PROG_MAX, 10]
这是建立一个动态的二维数组,C#中允许这样做
- ->QT 使用的是C++的语法。不能够与C#那么简单的建立动态数组
-方法1:通过使用容器的方法

QVector<QVector<QString> > zhiling(table->rowCount(),QVector<QString>(table->columnCount()));
        ***网上说还有另外一种方法没有成功        -C++中用new动态创建二维数组的格式一般是这样:            TYPE (*p)[N] = new TYPE [][N];                  其中,TYPE是某种类型,N是二维数组的列数。采用这种格式,列数必须指出,而行数无需指定。            在这里,p的类型是TYPE*[N],即是指向一个有N列元素数组的指针。

2. 正则表达式

描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。
  • ->C#
    if(Regex.IsMatch(message.Trim(),”^(-?\d+)(\.\d+)?$

  • ->QT
    QRegExp regex(“^(-?\d+)(\.\d+)?$”);
    if(regex.exactMatch(message.trimmed()))//浮点数规则

3. 字符转换的比较
- ->c# Convert、Parse、TryParse、(int) 三个函数都是将值转换成整数
-Convert.ToInt32:该方式不仅可以将字符串转为int类型,还可以将其它类型的值转成int类型。
-int.Parse(string类型变量名) :该方式是将数字内容的字符串转为int类型,如果字符串内容为空或者null时,则抛出ArgumentNullException异常;
-int.TryParse(string s, out int result) :该方式也是将数字内容的字符串转为int类型,但是该方式比int.Parse优越的地方,就是它不会出现异常。

  • ->QT 在QT中凡是QString 类型的 变量,都有toint,tofloat。
    可以通过QString::number()可以把整形转换成Qstring,不是整形,强制转换成整形。另外还通过参数可以,转换成16进制的字符型
    QString s = QString::number(a, 10); // s == “63”
  • 补充: R_WeiZhi = strProgData[iRow][i].indexOf(“R”); //索引出R的位置,返回给R_WeiZhi。

    C#   String delim = "R";                        strRRR = strProgData[iRow, i].Trim(delim.ToCharArray());//----移除前面的“R”QT   QString delim = "R";                     strRRR = strProgData[iRow][i].trimmed();                     strRRR = strProgData[iRow][i].remove(delim);
0 0
原创粉丝点击