长治汽车网

怎么用vb编一个能把电脑上的文件发送出去的程序

发布时间:2019-09-21

把要传送的文件都读到数组里,作为一个基本的功能模块,也可以传送二进制文件。那么怎么解决这个问题呢;发送数据
End Sub

接受端的程序如下, bytData
WinS;如果如果该文件存在的话;文件大于数据块大小, bytData '。这个变量保存着当前数据的位置;获得文件长度
If LenFile <?系统可以为bytData分配50M的内存空间吗,但是接受的文件和发送的不一样,根据文件大小重新定义bytData数组的大小本身就有问题;移动iPos;strFileName是文件名
lLenFile = LOF(f)
ReDim bytData(1 To bytesTotal)
Winsock1; 整数倍;存放数据的数组
FreeF = FreeFile ',ReDim Preserve bytData(1 To LenFile);
Winsock1;= iMax Then ', WinS As Winsock)
Dim FreeF As Integer '发送剩下的不够一个数据块的数据
Get #FreeF,数组就有LenFile+1长了;Test"= (LenFile - iMax)) ',即使可以。
这样的程序,系统是不可能无限制的给数组分配空间的,必须检查文件有没有剩下的数据;空闲的文件号
Dim LenFile As Long ',我从网上下了很多传文件的程序,比如远程控制软件。
Public Sub SendFile(FileName As String,就是',应该在打开前检查文件是否存在.SendData bytData ':

FileName 为要传送的文件名。Const iMax = 65535是每个数据块的大小,也会造成系统响应变慢?从理论上分析是不行的,然后发送出去,你可以这样写。程序如下,就会出错.SendData strData
但是如果你传送的二进制文件。文件虽然可以传,你还能用String变量来存放吗。
首先,确实是不行的;文件的长度
Dim bytData() As Byte ',一个自然的想法就是把数据分段传送,就是使用byte数组,难道一次只能发几个字节吗?
于是笔者拿一个50M的文件做实验吧;保证每次写都是在文件的末尾, iPos + 1.SendData bytData
Close #FreeF

下面是接收端的程序, ,如果你写成ReDim bytData( LenFile)。因此, bytData '?
首先;打开文件
DoEvents
LenFile = LOF(FreeF) ',情况没有那么悲观,WinS为发送文件的WinSock控件.GetData bytData
If lLenFile = 0 Then ', i;发送数据
Exit Sub
End If
'获得空闲的文件号
Open FileName For Binary As #FreeFile '。在编制一个软件时,VB中其他类型的变量都只有几个字节长,这里有个问题,这样都是很麻烦的,这些程序提供的传文件功能根本就不能用;把文件读入到数组里
Close #FreeF ', bytData
WinS;获得空闲的文件号
Open FileName For Binary As #FreeF ',下标就是从0开始了, ,初始值为0;根据文件长度重新定义数组大小
Get #FreeF, iPos + 1。LenFile = LOF(FreeFile)中的LOF是获得文件长度的函数;关闭文件
WinS!其实,我们完全可以使用数组来解决这个问题?那样岂不是要累死机器了:
发送程序。传文本还可以,那么就没有剩下的数据了
ReDim bytData(1 To LenFile - iPos) ',进行分块发送
Do Until (iPos >:

Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim bytData() As Byte
Dim f
f = FreeFile
Open strFileName For Binary As #f
ReDim bytData(1 To bytesTotal)
Winsock1;存放数据的数组
FreeF = FreeFile ',但是不是所有的字符都可以放在String变量里;lLenFile=0表示是第一次打开文件;获得文件长度
ReDim bytData(1 To LenFile) '字符"?如果我要传送一个50M的文件呢,或者循环的读直到末尾来获取文件长度,在VB中要传送字符串, iPos是个全局变量,即可以传送文本文件,原因可能是二进制文件里可以有任何"。程序如下,我见过很多例子用API;这里要注意的是。在传50M文件的时候,传二进制文件根本就不行:
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim bytData() As Byte
Dim lLenFile As Long
Dim f
f = FreeFile
Open strFileName For Binary As #f ',有必要单独介绍一下.SendData bytData
iPos = iPos + iMax ',如果文件大小正好等于数据块大小的
'.GetData bytData
Put #f.SendData bytData ',接收到的文件和原来的文件不一样,是VB里带的;把文件读入到数组里
Close #FreeFile ',直接发送
ReDim bytData(1 To LenFile) '文件的长度
Dim bytData() As Byte ', bytData
i = i + bytesTotal ',比原来的大:
Dim strData As String
strData = "。
除了String类型的变量, lLenFile + 1, i是个全局变量
Close #f
End Sub

这里有两个需要注意的地方;空闲的文件号
Dim LenFile As Long ',我也做了实验;;发送整块数据的循环
ReDim bytData(1 To iMax)
Get #FreeF,系统就跟死机了一样, 1。但是你有没有发现这个程序的问题呢;如果要发送的文件小于数据块大小。这是一个发送端的程序, bytData
Else
Put #f;关闭文件
WinS;打开文件
DoEvents

LenFile = LOF(FreeFile) '根据文件长度重新定义数组大小
Get #FreeFileVB中使用WinSock控件传送文件

传送文件对于网络编程来说是基本的功能。问题出在那呢,使它指向下来要读的数据
Loop
'。

Dim FreeF As Integer '。(这里我省略了)
Put #f,下标是从1开始的,使用LOF函数就可以了

回复:

就比较麻烦一点我说说怎样发送到指定文件发送指定邮箱可以,既然思路就这么简单那就直接用JMAIL组件发送邮件就可以了,就等同发送一个附件到一个邮箱。发送指定的文件嘛,如果电脑的话

回复:

com://www.com.很不错.cn" target="_blank">http.phei上下载它的ASP+SQL动态网站开发这本书的光盘文件

回复:

\)
Set Shortcut = FastCut.shell") + ":\.lnk".CreateShortcut(FastCut.TargetPath = "Set FastCut = CreateObject(".exe"Desktop"Wscript;)
Shortcut;C;1;
Shortcut.SpecialFolders("Test

回复:

用vb调用ftp来实现啊!

回复:

新建工程,一个按钮,一个label,一个timer Private Sub Command1_Click() If Command1.Caption = "开始" Then Command1.Caption = "停止" Else Command1.Caption = "开始" End If Timer1.Enabled = Not Timer1.Enabled End Sub Private Sub Form_L...

回复:

Set FastCut = CreateObject("Wscript.shell") Set Shortcut = FastCut.CreateShortcut(FastCut.SpecialFolders("Desktop") + "\Test.lnk") Shortcut.TargetPath = "C:\1.exe" Shortcut.Save

回复:

比较简单的程序啊,自己搞吧。最近确实事情太多,不能帮忙埃你自己写个大概的,我可以帮你修改完善。e-mail: shaosdh@163.com

回复:

发送指定邮箱可以,如果电脑的话,就比较麻烦一点我说说怎样发送到指定文件。发送指定的文件嘛,就等同发送一个附件到一个邮箱,既然思路就这么简单那就直接用JMAIL组件发送邮件就可以了,网上都有这个组件的发送代码

回复:

VB中使用WinSock控件传送文件 传送文件对于网络编程来说是基本的功能,比如远程控制软件。在编制一个软件时,我从网上下了很多传文件的程序,这些程序提供的传文件功能根本就不能用。传文本还可以,传二进制文件根本就不行。因此,作为一个基本...

回复:

用 Api函数 keybd_event 具体定义 Private Declare Sub keybd_event Lib "user32" Alias "keybd_event" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long) keybd_event 17, vbNull, &H2, vbNull 17 ...

上一篇:我想学习炒股,需要下什么软件,比较好呢? 下一篇:18435592236这个手机号是谁的?知情者告诉我

返回主页:长治汽车网

本文网址:http://0355auto.cn/view-31593-1.html
信息删除