caodongjian 发表于 2007-12-5 11:17:47

关于网页表格中的字段进行排序

在网页中.点击Company Name字段对各行字段下的行进行排序(第一个字符)
两种排序1)升序 按先数字--后字母 顺序 (不分大小字)
            2)减序 与升序相反
怎么来判断排序是否正确呢? 要读取每一行的第一个字符对行对比吗?请各位大虾提示提示啊, 呵呵.最好提供一些用法

xiaoyaoke 发表于 2007-12-5 11:46:02

想了想

因为需要是要比较排序结果是否正确,所以感觉写一个函数循环比较i和i+1就可以了,只要有一个反例就可以说明排序不成功
至于具体代码,楼主自己写吧

zhou840401 发表于 2007-12-5 15:01:30

从成本上看,这可是费事不讨好的哦.有一种情况就是顺序颠倒了(预期是各式序,结果为降序),感觉只需要检查第一和第二个就可以了,只要前面的排对了,后面出错基本就不太可能.

caodongjian 发表于 2007-12-5 15:02:02

Dim tableObj2,temp2, count3
ableObj2= Browser("HP Solution Demo Portal").Page("HP Solution Demo Portal_7").WebTable("Company Name").RowCount
For i=2 to tableObj2-1
string_x = Browser("HP Solution Demo Portal").Page("HP Solution Demo Portal_7").WebTable("Company Name").GetCellData( i,1)                   ' /* 如果有子项可以用getsubitem */
x = left(string_x, 1)                                                          '/* 拿首字母 */
string_y = Browser("HP Solution Demo Portal").Page("HP Solution Demo Portal_7").WebTable("Company Name").GetCellData( i+1,1)
y = left(string_y, 1)
nx = asc(ucase(x))
ny = asc(ucase(y))
Next
If nx <= ny then                                                               '/* x 的ASII 要在 y 的前面,字母序 */
Msgbox" 排序成功"
else
Msgbox "排序错误"
end if
:Q :Q :Q :Q 跑成功了.但偶都不知道对不对

caodongjian 发表于 2007-12-5 15:03:12

有没有大虾对我上面的说说..是不是正确.可以来判断:handshake :handshake3Q

hsjzfling 发表于 2007-12-5 21:05:18

回复 4# 的帖子

你的代码只是判断了每一行的第一个字符是否是升序排列的。。。但并不能就此判断整个字符串也是升序排列。
举个例子,你的这段代码并不能正确判断
00_a
02_b
01_c
是否正确排序。

当第一位的字符相同的时候,需要比较第二位,依次类推。(再加个循环就好了)
记得还要考虑代码能区分以下这种情况
00_a
00_abc
00_ab

[ 本帖最后由 hsjzfling 于 2007-12-5 21:06 编辑 ]

walker1020 发表于 2007-12-5 23:24:34

楼主可以请教一下开发人员, 他很快就能帮你把代码写好的,如果他会 VBSript并且愿意帮你的话。另外, 一般说“降序”,而不是说“减序”

walker1020 发表于 2007-12-5 23:25:57

任何一本 数据结构的书里面 都会讲到 排序。楼主可以去看一下

zh_51testing 发表于 2009-4-23 16:31:08

Can I help you?

browser("").Page("").WebList("").Select("")
totalRow = Browser("").Page("").WebTable("").RowCount
For i = 1 to totalRow-1
        itext1 = Browser("").Page("").WebTable("").GetCellData(i,2)
        itext2 = Browser("").Page("").WebTable("").GetCellData(i+1,2)
        For j = 1 to 18
                firChar1 = Mid(itext1,j,1)
                firChar2 = Mid(itext2,j,1)
                IffirChar1 = firChar2 Then
                        'msgbox "should compare the next character."
                Else
                        itext1Asc = Asc(firChar1)
                        itext2Asc = Asc(firChar2)
                        Ifitext1Asc < itext2Asc Then
                                'msgbox "should jump out this loop, compare next two lines"
                                Exit For
                        Else
                                msgbox "sort ascending failed, taken places on " & i & " and " & i+1 & " lines"
                                ExitAction(-1)
                        End If                       
                End If
        Next
Next
msgbox "sort ascending successfully!"

风雪夜归人 发表于 2009-4-23 23:04:02

我觉得判断 Company Name 后面的那个Image就可以了,如果是个image的话,我觉得应该是个image,我以前判断sub tree的时候遇到这个问题,就是判断图片的。。你可以录制两个不同的image,然后判断image是否存在。
页: [1]
查看完整版本: 关于网页表格中的字段进行排序