以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]base-64字符串无效字符?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=44177)

--  作者:jnletao
--  发布时间:2013/12/24 19:31:00
--  [求助]base-64字符串无效字符?
base-64字符串无效字符!

此主题相关图片如下:360软件小助手截图20131224192714.jpg
按此在新窗口浏览图片
 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:启动项目.zip

BeforeOpenProject

Dim ipFile As String = FileSys.GetParentPath(e.File) & "\\dbpath.ini"
If FileSys.FileExists(ipFile) = False Then
Dim FileName As String = FileSys.GetParentPath(e.File) & "\\dbpath.ini"
Dim Info As String
If InputValue(Info, "设置","请在此处粘贴安装信息:") Then
\'这时要对info解密分析信息是否正确
Dim Val As String = DecryptText(Info,"zhang","博讯科技#") \'解密,两个密钥必须和加密的时候相同
If Val IsNot Nothing AndAlso Val.split("※").Length = 2 Then
FileSys.WriteAllText(FileName, Info, False,Encoding.UTF8)
Else
e.Cancel = True
e.HideSplashForm = True
MessageBox.show("密钥不对,设置初始信息失败,无法打开此项目.")
End If
Else
e.Cancel = True
e.HideSplashForm = True
MessageBox.show("您取消了安装信息设置,请在下次启动时设置.")
End If
Else
If Filesys.FileExists(ipFile) Then
Dim ip As String = FileSys.ReadAllText(ipFile,Encoding.UTF8)
\'这时要对info解密分析信息是否正确
Dim Val As String = DecryptText(ip,"zhang","博讯科技#") \'解密,两个密钥必须和加密的时候相同
Dim Values() As String = Val.split("※")
If Val IsNot Nothing AndAlso Values.Length = 2 Then
\'网络不通,就不打开项目:
If Network.Ping(Values(0)) = False Then
e.Cancel = True
e.HideSplashForm = True
MessageBox.Show("无法连接服务器,软件启动失败!请稍候重试!")
End If
Else
e.Cancel = True
e.HideSplashForm = True
MessageBox.show("密钥发生了变化,设置初始信息失败,无法打开此项目.")
End If
\'e.ConnectionString = e.ConnectionString.Replace("119.119.120.120",ip)将来在这里先pingIP是否通
End If
End If



--  作者:有点甜
--  发布时间:2013/12/24 19:59:00
--  
 呃图片点击可在新窗口打开查看看不懂你想写的东西。这个提示是解密出错了。foxtable的解密函数,值必须值加密后的数据ip,如果ip的值非加密的数据,就可能出现各种错。

Dim Val As String = DecryptText(ip,"zhang","博讯科技#") \'解密,两个密钥必须和加密的时候相同

[此贴子已经被作者于2013-12-24 19:59:17编辑过]

--  作者:jnletao
--  发布时间:2013/12/24 20:08:00
--  
Dim Val As String = DecryptText(ip,"zhang","博讯科技#") \'解密,两个密钥必须和加密的时候相同
这个我知道,我的意思是如果 dbpath.ini 被别人改动过, DecryptText 应该是解析出来是nothing,可是现在是报错
刚才我百度了一下,应该是dbpath.ini里的文本被改动的不符合base-64的识别要求了。

请问有点甜老师,有没有办法提前检查一下文本是不是符合base-64的识别要求!?
或者说怎样让foxtable弹出另一种报错方法 如用message,而不是以上图片中的报错样式?
[此贴子已经被作者于2013-12-24 20:09:32编辑过]

--  作者:有点甜
--  发布时间:2013/12/24 20:15:00
--  
 对于出错,你直接用 try catch就行了


--  作者:jnletao
--  发布时间:2013/12/24 20:18:00
--  
OK,谢谢 有点甜 老师
--  作者:程兴刚
--  发布时间:2013/12/24 21:25:00
--  

split("※").(?).Length

 

split分割字符串后直接调用需要参数的,否则程序哪里知道调用第几段?而不是单单用try catch来跳过错误提示,某些错误需要从根儿上解决的!