以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]怎样通过代码转换格式的问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=30841)

--  作者:54292550
--  发布时间:2013/4/5 0:32:00
--  [求助]怎样通过代码转换格式的问题

要求:
1.将“表A”中第一行的数据转换成文本信息。
2.每一个单元格都有长度格式要求。
例如:
表A第一行: D13B04B05020 1.057 21.48 50 23.87 4.5361 199.61 4.56 200.7172 0
转换要求:
D13B04B05020→D13B04B05020  长度格式不变
       1.057→01057         长度5位,小数3位
       21.48→21480         长度5位,小数3位
          50→05000         长度5位,小数2位
       23.87→23870         长度5位,小数3位
      4.5361→45361         长度格式不变
      199.61→19961         长度5位,小数2位
        4.56→04560         长度5位,小数3位
    200.7172→2007172       长度7位,小数4位
           0→00000         长度5位,小数2位

最后经过转换第一行的结果:(无小数点)
D13B04B0502001057214800500023870453611996104560200717200000

 

请问怎样通过代码实现这个转换?

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:问题.table

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:相关问题要求.txt


--  作者:FoxMan
--  发布时间:2013/4/5 1:30:00
--  
Dim s1,s2 ,s3 As String 
Dim t1 As Table =Tables("表A") 
Dim v As Double 
Dim r1 As Row =t1.Current 
If r1 IsNot Nothing AndAlso r1("第一列") > "" Then 
    For Each c As Col In t1.Cols 
         s1=r1(c.name) s2=s1.replace(".","") 
         If Double.TryParse(s1,v) Then \'如果转换成功 
              Dim n1 As Integer = s2.Length 
              s3 = s3 & Format(val(s2),New String("0",iif(n1 <6,5,n1))) 
         Else 
              s3 = s3 & s1 
         End If 
    Next 
    Output.Show(s3) 
End If
[此贴子已经被作者于2013-4-5 10:58:24编辑过]