VB程序员博客

VB程序开发

先在模块里定义了一个类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


我的上传代码在本地测试可以上传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吧 感觉这种比较熟悉  
刚在网上搜了下 真发现不少有帮助的信息 谢谢大家


文件内容如下:
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了。


文件内容如下:
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了。


文件内容如下:
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就行


专题:

栏目: