扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
直接给你保存和读取TXT的VB.NET的函数代码,你只要在触发事件中调用就可以了,注意换行,有的是显示不下去才显示两行的,还有strFilePath代表文件路径,TempENG代表文件编码格式如:UTF-8或者GB2312,strText 代表内容字符串。
创新互联建站从2013年开始,是专业互联网技术服务公司,拥有项目网站制作、成都网站制作网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元桑珠孜做网站,已为上家服务,为桑珠孜各地企业和个人服务,联系电话:18982081108
#Region "读取TXT"
Public Function ReadTxt(ByVal strFilePath As String, ByVal TempENG As String) As String
Dim mySr As System.IO.StreamReader
Dim strS As String
Dim n%
strS = ""
mySr = New System.IO.StreamReader(strFilePath, System.Text.Encoding.GetEncoding(TempENG))
Do
Dim line$ = mySr.ReadLine()
strS = strS line vbCrLf
n = n + 1
Loop Until mySr.EndOfStream = True
mySr.Close()
Return strS
End Function
#End Region
#Region "保存TXT"
Public Function SaveTxt(ByVal strFilePath As String, ByVal strText As String, ByVal TempENG As String) As Boolean
Try
If Dir(strFilePath) "" Then File.Delete(strFilePath)
Dim mySw As System.IO.StreamWriter
Dim strLine() As String
mySw = New System.IO.StreamWriter(strFilePath, True, System.Text.Encoding.GetEncoding(TempENG))
strLine = Split(strText, vbCrLf)
For i As Integer = 0 To UBound(strLine)
mySw.WriteLine(strLine(i))
Next
mySw.Close()
Return True
Catch ex As Exception
Return False
End Try
End Function
#End Region
1.使用文件来记录,下次运行时读取 .2.使用数据库,可以考虑单机数据库或网络数据库 3.如果数据量小,使用注册表.
或者可以通过程序来保存:
set fs=createobject("scripting.filesystemobject")'创建文件操作对象
if fs.fileexists("C:\a.txt") then'如果C盘A.txt存在,那么读取其内容
set txt=fs.opentextfile("C:\a.txt",forreading,true)
set txtn=txt.readall
else'
set txtf=fs.createtextfile("c:\a.txt",true)'创建C盘下的a.txt
do'无限循环
wscript.sleep 1000'延时一秒
txtf.write a.text'写入文本框中内容
loop'循环结束
end if'判断结束
软件bug,软件缓存过多。
1、vb.netgrid软件运行服务器出现bug导致自动生成excel不保存,退出重新进入,等待官方修复。
2、vb.netgrid软件缓存过多导致自动生成excel不保存,清理软件空间,重启软件。
准备VB6.0源代码
1
打开visual basic 6.0编程工具,制作一个简单的小程序。在界面中增加一个按钮;一个文本框,在点击按钮后,会弹出对话框。
2
生成运行程序进行测试。
3
点击按钮,可以看到弹出的对话框和文本框中显示的字符串。
4
将测试程序保存到桌面的一个测试文件夹。
END
将VB6.0源代码转换为VB.NET
打开Microsoft visual studio 2008。
打开刚才保存的vb6.0项目。
会弹出升级向导,按照默认选项进行升级。
等待几十秒后,升级成功。
可以在vs编程工具中看到转换为vb.net的源代码.
在刚才的VB6.0源代码文件夹中会看到新增一个[project1.net]的文件夹。
文件夹中就是转换为vb.net的源代码文件,已经成功将VB6.0转换为VB.net。
老实说不一定要webBrowser,这是Windows下载文件界面啊,不是VB.Net画出来的。
真的是做下载文件,WebClient.DownloadFile方法就足够了,调用方法后会自动弹出Windows下载任务窗口。
在VS.NET里也提供了一个com接口,可以直接调用迅雷的dll,下载文件可以让你自由选择是用迅雷下载还是通过Windows下载任务来执行下载。
webBroser下载文件
FileInfo file = new System.IO.FileInfo(Server.MapPath(path));
if (File.Exists(Server.MapPath(path)))
{
string name = Path.GetFileName(Server.MapPath(path));
//存在文件
Response.Clear();
Response.Buffer = false;
//通知浏览器下载文件而不是打开
Response.ContentType = "application/octet-stream";
//下载的文件名
Response.AppendHeader("content-disposition", "attachment;filename=" + name);
//文件的大小
Response.AppendHeader("Content-Length", file.Length.ToString());
Response.WriteFile(path);
}
介绍一个更简单的方法给你,从webbrowser获取点击的超连接,然后自由选择下载,先在引用里引用com组件
然后在点击事件中加代码
string url = webBrowser1.Document.Links[1].GetAttribute("href");
ThunderAgentLib.AgentClass agent = new ThunderAgentLib.AgentClass();//创建对象
agent.AddTask(url, "默认保存文件名", "C:\\默认路径", "", "", 1, 0, 5);
agent.CommitTasks2(1);//提交
我用的是C#代码,VB.NET大同小异
经过我的潜心修炼问题终于是解决了.请看代码
Imports System.IO
Private strFileName As String = "myRTFdoc.txt"
Private flgFirst As Boolean = True
Private Sub Timer2_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer2.Tick
'如何将程序控制住,让它第一次发现没保存后,只击活一次提示保存,然后使用修改后的保存路径
Call zc()
End Sub
Private Sub zc()
'Timer2.Stop()
With SaveFileDialog1
.DefaultExt = "txt"
.FileName = strFileName
.Filter = "Text files(*.txt)|*.txt|All files(*.*)|*.*"
.FilterIndex = 1
.InitialDirectory = "c:\"
.OverwritePrompt = True
.Title = "Save Reminding"
End With
'Timer2.Enabled = False
If flgFirst = True Then
If SaveFileDialog1.ShowDialog = DialogResult.OK Then
strFileName = SaveFileDialog1.FileName
Dim objWriter As StreamWriter = New StreamWriter(strFileName, False)
objWriter.Write(rtbox.Text)
objWriter.Close()
objWriter = Nothing
End If
flgFirst = False
'Timer2.Enabled = True
' Timer2.Start()
Else
'flg= second
Dim objWriter As StreamWriter = New StreamWriter(strFileName, False)
objWriter.Write(rtbox.Text)
objWriter.Close()
objWriter = Nothing
End If
'Timer2.Enabled = True
'Timer2.Start()
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Timer2.Enabled = True
' zc()
End Sub
知道问题在哪里嘛?我调试了确实是"死循环"、其实不是真正的死循环、是time tick事件你设定的时间太短了.估计只设置了1-5s左右.那么程序运行还需要时间.所以他就不停地调用timetick时间.你的savedialog对话框根本来不急弹出来.
所以建议你把timer的interval的值设置高点最好12-15秒 触发一次.
当然我想还有其他的方法、还没有彻底取研究下.
比如stop 什么 、那还需要时间.
至少目前我的方法是可以了.
我设置的12s P4. 3.0 1G 内存 跑下我的程序如果 F10(F8)慢点的话就来不及了.
另为把你的程序小改了下、应该可以满足你的要求了.
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流