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);