还是这个,呵呵,对字符串操作。

dragonhell 2003-10-21 11:49:38
前面的已结贴,我是搞气象的,台长让写个函数。在某个软件里用,昨天谢谢各位指点,反正分多,再发一次,希望有新的指点!
我能不能在VB里直接编译?如何编译?
(ZJ)
52368
53698
52145
53X69
58631
。。。
。。。
。。。
。。。
53674
这样的报文,
最后要写个函数,跳过(ZJ)这一行,显示文本如下:
52368 53698 52145 53/69 53684 。。。 。。。 。。。 。。。
53674=
一行不超过10个数,
在最后一个数后加个=
遇到X显示为/
该如何编写???
...全文
30 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
kmzs 2003-10-21
  • 打赏
  • 举报
回复
是嘛
aha99 2003-10-21
  • 打赏
  • 举报
回复
可以,你可以用vb做成active dll。然后用别的调用就可以了。
AresChen 2003-10-21
  • 打赏
  • 举报
回复
1.你指的编译是不是类似C中inline的意思,VB中不可以,你只有通过其他语言(好像VC可以吧,不太清楚)写这部分,然后编译成DLL,再在VB中调用。注意,如果不是用COM的方式写Dll,那么可以用类似应用API函数的方式,在VB中以declare的形式去调用。
2.你前面所列出的原始数据的分隔符是什么,回车吗?看你的帖子好像是的。如果是回车的话,用VB的文件相关函数、命令打开之后,好像是read语句吧(太久没用,记不住了),每次读入的时候就是一行数,这样,跳过(ZJ)这类的问题,就变得很简单了,在加上一个不定长的数组,比如:
dim strDatas() as string
dim strData as string
dim intDataCount as integer

...
...

循环读数据到strData
if strData<>"(ZJ)" then
redim preserve strDatas(intDataCount)
replace strData,"X","/" repace函数的调用方法我忘,自己查一下吧。
strDatas(intDataCount)=strData
intDataCount=intDataCount+1
end if

用类似这种办法,获得到到数组strDatas,其中包含了所有的有用数据,然后:
dim j as integer
dim i as integer
dim str as string

for i=0 to intDataCount-1 step 10
str=""
for j=i to i+10
if j>=intDataCount then exit for
str=str + strDatas(j) + " "
next j
str=str + "="
debug.print str
next i

当然,你也可以把debug这一行改成保存到其他地方。
基本思路就是这样吧。
hemeijun81 2003-10-21
  • 打赏
  • 举报
回复
up
kmzs 2003-10-21
  • 打赏
  • 举报
回复
不错了
rainstormmaster 2003-10-21
  • 打赏
  • 举报
回复
'(ZJ)这一行必须在文件的第一行
Private function formatfile(byval filename as string)as string
Dim i As Long
Dim filename As String
Dim buff() As Byte
i = FileLen(filename)
ReDim buff(i - 1)
Open filename For Binary As #1
Get #1, , buff
Close #1
Dim s As String, outs As String
s = StrConv(buff, vbUnicode)
Dim arr As Variant
arr = Split(s, vbCrLf)
For i = 0 To UBound(arr)
arr(i) = Trim(arr(i))
Next
Dim temp As String, outstr As String
For i = 1 To UBound(arr) - 1
If i Mod 10 = 0 Then
temp = vbCrLf
Else
temp = " "
End If
outstr = outstr + arr(i) + temp
Next
outstr = Trim(outstr)
outstr = outstr + vbCrLf + arr(UBound(arr)) + "="
outstr = Replace(outstr, "x", "/")
formatfile=outstr

End function
since1990 2003-10-21
  • 打赏
  • 举报
回复
up
captainivy 2003-10-21
  • 打赏
  • 举报
回复
不理解
j4sxw 2003-10-21
  • 打赏
  • 举报
回复
UP
Dublue 2003-10-21
  • 打赏
  • 举报
回复
关注一下
since1990 2003-10-21
  • 打赏
  • 举报
回复
up

7,762

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧