问个关于vb.net的问题(我的Arbeit,大家帮帮忙)
我在vb编程gui.exe时在当前文件夹里创建文件input.csv和output.csv,同时用streamwriter向input.csv写入,output.csv通过另一个calc.exe文件计算后写入。在gui.exe运行结束后同时删除input.csv和output.csv也就是说我的文件夹里有gui.exe,calc.exe2个文件
如果在自己电脑上运行的时候,硬盘上直接写进input.csv和output.csv没有问题,但是如果在CD上或者其他不可写入的媒介上运行,就会出现报错,然后程序将无法正常关闭
betreuer要求我在写入input.csv之前检查input.csv文件是否exsist,但是这个根本解决不了问题。
虽然我在程序要求里写了运行环境不可以在CD等不可写的媒介上,但是betreuer认为这样就是不完美的,特别是这个程序无法正常关闭是不可以出现的,必须是点击之后出现Fehlermeldung对用户进行提醒,我该怎么操作呢?
谢谢大家 为什么要通过文件写入再计算再读出,你的gui不可以集成calc.exe的功能,然后把计算的工作全部在gui里完成吗? 为什么要通过文件写入再计算再读出,你的gui不可以集成calc.exe的功能,然后把计算的工作全部在gui里完成吗 ...
GoldMoon 发表于 2010-7-12 16:47 http://www.dolc.de/forum/images/common/back.gif
不可以,这是教授要求,必须把计算部分用calc.exe完成,要和benutzoberflaeche分开 不可以,这是教授要求,必须把计算部分用calc.exe完成,要和benutzoberflaeche分开
even-shi 发表于 2010-7-13 22:54 http://www.dolc.de/forum/images/common/back.gif
汗,刚看到呢,那么你的calc.exe是你自己手动启动,还是你的gui调用的,如果是gui调用的,不可以由calc.exe返回一组计算后的值给你的gui吗?两个程序之间的通信有很多种方式的,嫩一定要把输入和输出值存到文件吗?{:5_389:}还是说这是老师要求的? 还有那个程序无法退出的问题,你需要对建立新文件那部分语句使用try catch,这样在有exception出现的时候,你让程序跳出一个msgbox提醒出错就ok了。
http://msdn.microsoft.com/de-de/library/fk6t46tz%28VS.80%29.aspx 汗,刚看到呢,那么你的calc.exe是你自己手动启动,还是你的gui调用的,如果是gui调用的,不可以由ca ...
GoldMoon 发表于 2010-7-15 10:36 http://www.dolc.de/forum/images/common/back.gif
对的,calc.exe计算后得到的output.csv是当作文件形式可以保存的,哎。。说白了就是教授要求啦
calc是gui调用的,计算后值最后也返回到gui操作界面的 还有那个程序无法退出的问题,你需要对建立新文件那部分语句使用try catch,这样在有exception出现的时候, ...
GoldMoon 发表于 2010-7-15 10:41 http://www.dolc.de/forum/images/common/back.gif
我知道可以用try语句,但是问题是我不知道应该用什么条件啊。。。
可以try 文件不能写 这个条件么? 我知道可以用try语句,但是问题是我不知道应该用什么条件啊。。。
可以try 文件不能写 这个条件么?
even-shi 发表于 2010-7-15 13:58 http://www.dolc.de/forum/images/common/back.gif
try和catch是成对出现的。
你可以在打开文件,关闭文件,读写操作这些地方加上try catch,不知道catch什么的话就直接写 Exception就可以了,看看我给你发的那个链接 try和catch是成对出现的。
你可以在打开文件,关闭文件,读写操作这些地方加上try catch,不知道cat ...
GoldMoon 发表于 2010-7-15 14:12 http://www.dolc.de/forum/images/common/back.gif
这个语句我程序里已经用过,用法我了解的
但是我的问题是因为在CD这种上面input.csv无法创建,这样程序就出现自动报错,要避免这个自动报错的情况出现,就是举例我这样写的话:
Try
[ tryStatements ] // 这里我写什么条件啊?
Catch ex As Eception
MsgBox("Die Datei input.csv kann nicht einschrieben werden!")
e.Cancel = True
End Try 这个语句我程序里已经用过,用法我了解的
但是我的问题是因为在CD这种上面input.csv无法创建,这样程序 ...
even-shi 发表于 2010-7-15 16:36 http://www.dolc.de/forum/images/common/back.gif
写在创建input.csv那里呀
Try
创建文件
Catch ex As Eception
MsgBox("Die Datei input.csv kann nicht einschrieben werden!")
e.Cancel = True
End Try 哦,当然,你msgbox里就不能写einschrieben werden了,写上不能创建文件就好了 写在创建input.csv那里呀
Try
创建文件
Catch ex As Eception
MsgBox("Die Datei input.csv k ...
GoldMoon 发表于 2010-7-15 16:40 http://www.dolc.de/forum/images/common/back.gif
我创建文件的那段程序是用streamwriter直接写的,也可以用嘛? 我把我的部分程序贴出来给你看看,谢谢你拉 我创建文件的那段程序是用streamwriter直接写的,也可以用嘛?
even-shi 发表于 2010-7-15 16:42 http://www.dolc.de/forum/images/common/back.gif
Dim file As System.IO.StreamWriter
file = My.Computer.FileSystem.OpenTextFileWriter("input.csv", True)
file.WriteLine("Here is the first string.")
file.Close()
你是这么写的吗?
懒一点的话就把上面那些都加到try里面,然后catch里面的msgbox说是读写文件错误就好
勤快一点的话分别对OpenTextFileWriter
writeline
还有file.Close()
都是用try catch,msgbox根据不同情况显示不同错误,比如文件无法找到,文件无法写入,关闭错误等等 Dim Gui_main_str As String
Dim Gui_input_str As String
Dim input_sw As System.IO.StreamWriter
Gui_main_str = System.AppDomain.CurrentDomain.BaseDirectory
Gui_input_str = Gui_main_str + "input.csv"
input_sw = New System.IO.StreamWriter(Gui_input_str)
Zahl_Input("#Funktion = ", Funk_str, input_sw)
..............
input_sw.Close()
//////////////////////////////////////////////////////////////////////////////////////
那么我的tryStatements的地方就把
input_sw = New System.IO.StreamWriter(Gui_input_str)
Zahl_Input("#Funktion = ", Funk_str, input_sw)
..............
input_sw.Close()
添进去? 事实上返回的exception是不同的,懒一点就只用一个exception,但这一段其实有很多情况,有IOException,PathTooLongException
刚才那段是msdn上直接拷贝过来的
http://msdn.microsoft.com/en-us/library/hxwfzt61%28VS.80%29.aspx Dim file As System.IO.StreamWriter
file = My.Computer.FileSystem.OpenTextFileWriter("input.cs ...
GoldMoon 发表于 2010-7-15 16:48 http://www.dolc.de/forum/images/common/back.gif
这样的写法是用在console里面的? Dim Gui_main_str As String
Dim Gui_input_str As String
Dim input_sw As System.IO ...
even-shi 发表于 2010-7-15 16:49 http://www.dolc.de/forum/images/common/back.gif
恩纳,是哒{:4_293:} 这样的写法是用在console里面的?
even-shi 发表于 2010-7-15 16:51 http://www.dolc.de/forum/images/common/back.gif
就是举个例子,你根据自己的情况写进去就好了 恩纳,是哒
GoldMoon 发表于 2010-7-15 16:52 http://www.dolc.de/forum/images/common/back.gif
我去试试看。。。这个要运行实验一次超麻烦,家里有没有联网电脑,晕死。。 我去试试看。。。这个要运行实验一次超麻烦,家里有没有联网电脑,晕死。。
even-shi 发表于 2010-7-15 16:54 http://www.dolc.de/forum/images/common/back.gif
嗯,祝嫩好运~{:4_295:} 回复 18# GoldMoon
还有个问题,我刚才那个程序是在这个Sub里的
Private Sub Btn_Diagramm_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btn_Diagramm.Click
这样的话e.Cancel就没法用了 回复GoldMoon
还有个问题,我刚才那个程序是在这个Sub里的
Private Sub Btn_Diagramm_Click(ByVal ...
even-shi 发表于 2010-7-15 16:58 http://www.dolc.de/forum/images/common/back.gif
e是什么?你的gui? 就写在你需要让它退出的地方就好了,一切正常的
还有
catch那里面,就是在msgbox的后面也写一个,我不知道你对于出这个错之后有什么处理,是打算让gui直接退出呢还是说其他处理。如果就打算让gui直接退出了也就需要在catch里写上一个 回复GoldMoon
还有个问题,我刚才那个程序是在这个Sub里的
Private Sub Btn_Diagramm_Click(ByVal ...
even-shi 发表于 2010-7-15 16:58 http://www.dolc.de/forum/images/common/back.gif
啊,晕,没注意原来是eventargs
你看看这里有个例子
http://msdn.microsoft.com/de-de/library/fk6t46tz.aspx 我定义了一个
dim a as system.componentmodel.canceleventargs
这样会出现一个警告,说是
Die a-Variable wird verwendet, bevor ihr ein Wert zugewiesen wird. Zur Laufzeit kann eine Nullverweisausnahme auftreten. 就写在你需要让它退出的地方就好了,一切正常的
还有
catch那里面,就是在msgbox的后面也写一个,我不知道 ...
GoldMoon 发表于 2010-7-15 17:04 http://www.dolc.de/forum/images/common/back.gif
catch的话就直接程序关闭或当前当前窗口关闭 catch的话就直接程序关闭或当前当前窗口关闭
even-shi 发表于 2010-7-15 17:10 http://www.dolc.de/forum/images/common/back.gif
啊,我明白了,你那个e是对应某个按钮,然后用来关闭窗体的是吗?
遇到exception这种意外的错误的话,就没有说用户再按什么按钮这种问题,你就直接强制让程序退出就好了,直接用END我觉得就OK了 啊,我明白了,你那个e是对应某个按钮,然后用来关闭窗体的是吗?
遇到exception这种意外的错误的话 ...
GoldMoon 发表于 2010-7-15 17:19 http://www.dolc.de/forum/images/common/back.gif
恩,我原来意思就是关闭当前窗体
那我用end试试看,谢谢你~~ 恩,我原来意思就是关闭当前窗体
那我用end试试看,谢谢你~~
even-shi 发表于 2010-7-15 17:20 http://www.dolc.de/forum/images/common/back.gif
嘿嘿,不用客气,一起研究嘛~{:4_276:}
页:
[1]
2