VB程序员博客
09 1st, 2010
先在模块里定义了一个类type liuliangshuchu liuliangshuchu.x=? liuliangshuchu.y=?…End type,正文里dim LLSC as liuliangshuchu
Open Filename(0) & "" & Replace(Filename(t + 1), Right(Filename(t + 1), 4), ".csv") For Random As #11 Len = Len(LLSC)
For i=1 to 1000
if option1.value=true
put #11,i+1,LLSC
else:put #11,i+1,LLSC.X & m1 & m2 ..
end if
next
close #11
代码大概是这样的,就是定义的type类型,里面有10个子变量,输出10个数据,本来没有问题,程序后来要追加一个功能,输出的是另外5个变量(与那10个意义不同),输出时要求输出新的5个变量+type里的1个变量,写入到文本后在每一行数据的前面(即llsc.x)便有一些奇异的符号(方块黑坨坨),我想应该是输出长度和那10个不一样的问题,应该怎么去掉那些怪符号呢,我数了下怪符号有2个字符,我就LLSC.x=right(LLSC.x,11),想着这样去掉,结果2个东东反而变成4个了。。。。求解
type里表述有点错误,实际是这样的:
Option Explicit
Type Liuliangshuchu
X As String * 12
Y As String * 13
H As String * 7
PYL As String * 7
QDJ As String * 8
Ve As String * 7
Vn As String * 7
Vv As String * 7
V As String * 7
Deg As String * 10
luojing As String * 10
id As String * 5
ENDSIG As String * 2
End Type
恩,怎么办呢,type里可以不定义变量为定长吗
可以直接定义为:
Type Liuliangshuchu
X As String
Y As String
……
End Type
08 15th, 2010
我的上传代码在本地测试可以上传1G的文件,但传服务器里面,只能传到10m左右就提示系统资源未找到,请问是什么原因?
设置ASP超时。
这个方法不行!我试过了!
服务器有最大上传文件限制,可以将文件分成若干块,多次append到之前上传完成的部分上
唉,你们的回答都没能解决我的问题 ,不过我自己后来觖决了,分照给。现在我可以上传1G的文件同时上传多个.
我想将一个自定义的文件写入MDB数据库中并读取出来??
最好给能给出详细代码,谢谢了!
appendchunk
getchunk
field的属性,用这两种读或取...
其他的google就成了
建议楼主在vb的 "数据库 "小版搜索 "图片 "关键字,里面有关于数据库保存图片的贴就有更好的答案,
使用流对象从数据库存取文件
打开vb6,新建工程。
添加两个按钮,一个image控件
注意:Access中的photo字段类型为OLE对象.
SqlServer中的photo字段类型为Image
'** 引用 Microsoft ActiveX Data Objects 2.5 Library 及以上版本
‘2.5版本以下不支持Stream对象
Dim iConcstr As String
Dim iConc As ADODB.Connection
'保存文件到数据库中
Sub s_SaveFile()
Dim iStm As ADODB.Stream
Dim iRe As ADODB.Recordset
Dim iConcstr As String
'读取文件到内容
Set iStm = New ADODB.Stream
With iStm
.Type = adTypeBinary '二进制模式
.Open
.LoadFromFile App.Path + " est.jpg "
End With
'打开保存文件的表
Set iRe = New ADODB.Recordset
With iRe
.Open "select * from img ", iConc, 1, 3
.AddNew '新增一条记录
.Fields( "photo ") = iStm.Read
.Update
End With
'完成后关闭对象
iRe.Close
iStm.Close
End Sub
Sub s_ReadFile()
Dim iStm As ADODB.Stream
Dim iRe As ADODB.Recordset
'打开表
Set iRe = New ADODB.Recordset
‘得到最新添加的纪录
iRe.Open "select top 1 * from img order by id desc ", iConc, adOpenKeyset, adLockReadOnly
'保存到文件
Set iStm = New ADODB.Stream
With iStm
.Mode = adModeReadWrite
.Type = adTypeBinary
.Open
.Write iRe( "photo ")
‘这里注意了,如果当前目录下存在test1.jpg,会报一个文件写入失败的错误.
.SaveToFile App.Path & " est1.jpg "
End With
Image1.Picture = LoadPicture(App.Path & " est1.jpg ")
'关闭对象
iRe.Close
iStm.Close
End Sub
Private Sub Command1_Click()
Call s_ReadFile
End Sub
Private Sub Command2_Click()
Call s_SaveFile
End Sub
Private Sub Form_Load()
'数据库连接字符串
iConcstr = "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False " & _
";Data Source=F:csdn_vbdatabase保存图片\access图片img.mdb "
‘下面的语句是连接sqlserver数据库的.
‘iConcstr = "Provider=SQLOLEDB.1;Persist Security Info=True; " & _
‘ "User ID=sa;Password=;Initial Catalog=test;Data Source=yang "
Set iConc = New ADODB.Connection
iConc.Open iConcstr
End Sub
Private Sub Form_Unload(Cancel As Integer)
iConc.Close
Set iConc = Nothing
End Sub
谢谢各位!
我到想到用保存图片的方式,可没测试
有没C++的啊?
我想纪录用户从主服务器上传下载了什么资料,基于VB6.0+SQL Server 2000。在网上查找方法时,看到一篇帖子感觉很有用,但可惜是VB.Net。里面一些控件,如:WebBrowser控件,就没办法直接拿来应用。郁闷极了。想问一下,怎么用VB6.0实现文件数据对SQL Server上传下载,并保存下这些记录?有谁了解或做过这方面的,烦请介绍一下,谢谢。
ftp
谢谢各位的回答
ftp 这方面我不太明白
我试试看ADO吧 感觉这种比较熟悉
刚在网上搜了下 真发现不少有帮助的信息 谢谢大家
07 30th, 2010
文件内容如下:
20080808 30735 30620 30505 30455 30395 30505 30550 30605 30645 30630 30630 30560 30495 30315 30215 30070 29965 29905 29780 30040 30210 30395 30485 30520
注:1、文件内容为一行,红色字体为日期,后面为数据(共24个)
2、怎样去除前面的日期,并将后面的数据以一列的形式输出成一个新的文件?
格式如下:
30735
30620
30505
……
(数据前面不要留空格)
是什么形式的文件,DOC?
去除八位日期后
用 split 函数,做个循环写入新文件
路过,帮顶!
直接用split函数分隔,然后从第二个开始存入新文件就OK了。
07 30th, 2010
文件内容如下:
20080808 30735 30620 30505 30455 30395 30505 30550 30605 30645 30630 30630 30560 30495 30315 30215 30070 29965 29905 29780 30040 30210 30395 30485 30520
注:1、文件内容为一行,红色字体为日期,后面为数据(共24个)
2、怎样去除前面的日期,并将后面的数据以一列的形式输出成一个新的文件?
格式如下:
30735
30620
30505
……
(数据前面不要留空格)
是什么形式的文件,DOC?
去除八位日期后
用 split 函数,做个循环写入新文件
路过,帮顶!
直接用split函数分隔,然后从第二个开始存入新文件就OK了。
07 30th, 2010
文件内容如下:
20080808 30735 30620 30505 30455 30395 30505 30550 30605 30645 30630 30630 30560 30495 30315 30215 30070 29965 29905 29780 30040 30210 30395 30485 30520
注:1、文件内容为一行,红色字体为日期,后面为数据(共24个)
2、怎样去除前面的日期,并将后面的数据以一列的形式输出成一个新的文件?
格式如下:
30735
30620
30505
……
(数据前面不要留空格)
是什么形式的文件,DOC?
去除八位日期后
用 split 函数,做个循环写入新文件
路过,帮顶!
直接用split函数分隔,然后从第二个开始存入新文件就OK了。
VB生成的DLL中调用的函数TestCallDll:
Public Function TestCallDll()
Dim strXML As String
Dim strXMLFileName As String
MsgBox "0001"
strXMLFileName = App.Path & " est.xml"
MsgBox "0002"
MsgBox strXMLFileName
Open strXMLFileName For Input As #1
MsgBox "0003"
strXML = Input(FileLen(strXMLFileName), #1)
MsgBox "0004"
Close #1
MsgBox "0005"
End Function
可以肯定的是,上面的TestCallDll()函数在VB环境下是能运行通过的。随便写的VB的exe程序测试即可。
生成DLL之后,在VC中调用,单步运行,通过观察弹出信息框,可以证明在运行DLL中的“ Open strXMLFileName For Input As #1 ”时出错。出错弹出信息:
—————————
Microsoft Visual C++
—————————
Unhandled exception in VCClient.exe (KERNEL32.DLL): 0xE06D7363: Microsoft C++ Exception.
—————————
确定
—————————
请问,我该如何更改程序,才能正确运行?
(提示:当你正确回答了这个问题,可以到这里VC板块这个问题里随便答一下,30分送上。。。)
试下不用App.Path 而用固定路径,或者将这个方法加个路径参数
注册一下你的DLL就行
VB生成的DLL中调用的函数TestCallDll:
Public Function TestCallDll()
Dim strXML As String
Dim strXMLFileName As String
MsgBox "0001"
strXMLFileName = App.Path & " est.xml"
MsgBox "0002"
MsgBox strXMLFileName
Open strXMLFileName For Input As #1
MsgBox "0003"
strXML = Input(FileLen(strXMLFileName), #1)
MsgBox "0004"
Close #1
MsgBox "0005"
End Function
可以肯定的是,上面的TestCallDll()函数在VB环境下是能运行通过的。随便写的VB的exe程序测试即可。
生成DLL之后,在VC中调用,单步运行,通过观察弹出信息框,可以证明在运行DLL中的“ Open strXMLFileName For Input As #1 ”时出错。出错弹出信息:
—————————
Microsoft Visual C++
—————————
Unhandled exception in VCClient.exe (KERNEL32.DLL): 0xE06D7363: Microsoft C++ Exception.
—————————
确定
—————————
请问,我该如何更改程序,才能正确运行?
(提示:当你正确回答了这个问题,可以到这里VC板块这个问题里随便答一下,30分送上。。。)
试下不用App.Path 而用固定路径,或者将这个方法加个路径参数
注册一下你的DLL就行
VB生成的DLL中调用的函数TestCallDll:
Public Function TestCallDll()
Dim strXML As String
Dim strXMLFileName As String
MsgBox "0001"
strXMLFileName = App.Path & " est.xml"
MsgBox "0002"
MsgBox strXMLFileName
Open strXMLFileName For Input As #1
MsgBox "0003"
strXML = Input(FileLen(strXMLFileName), #1)
MsgBox "0004"
Close #1
MsgBox "0005"
End Function
可以肯定的是,上面的TestCallDll()函数在VB环境下是能运行通过的。随便写的VB的exe程序测试即可。
生成DLL之后,在VC中调用,单步运行,通过观察弹出信息框,可以证明在运行DLL中的“ Open strXMLFileName For Input As #1 ”时出错。出错弹出信息:
—————————
Microsoft Visual C++
—————————
Unhandled exception in VCClient.exe (KERNEL32.DLL): 0xE06D7363: Microsoft C++ Exception.
—————————
确定
—————————
请问,我该如何更改程序,才能正确运行?
(提示:当你正确回答了这个问题,可以到这里VC板块这个问题里随便答一下,30分送上。。。)
试下不用App.Path 而用固定路径,或者将这个方法加个路径参数
注册一下你的DLL就行