找回密码
 注册

微信登录

微信扫一扫,快速登录

查看: 2895|回复: 31

[计算机] 问个关于vb.net的问题(我的Arbeit,大家帮帮忙)

[复制链接]
发表于 2010-7-12 16:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册 微信登录

×
我在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对用户进行提醒,我该怎么操作呢?

谢谢大家

评分

1

查看全部评分

Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
发表于 2010-7-12 16:47 | 显示全部楼层
为什么要通过文件写入再计算再读出,你的gui不可以集成calc.exe的功能,然后把计算的工作全部在gui里完成吗?

评分

1

查看全部评分

Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-7-13 22:54 | 显示全部楼层
为什么要通过文件写入再计算再读出,你的gui不可以集成calc.exe的功能,然后把计算的工作全部在gui里完成吗 ...
GoldMoon 发表于 2010-7-12 16:47

不可以,这是教授要求,必须把计算部分用calc.exe完成,要和benutzoberflaeche分开
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
回复 支持 反对

使用道具 举报

发表于 2010-7-15 10:36 | 显示全部楼层
不可以,这是教授要求,必须把计算部分用calc.exe完成,要和benutzoberflaeche分开
even-shi 发表于 2010-7-13 22:54



汗,刚看到呢,那么你的calc.exe是你自己手动启动,还是你的gui调用的,如果是gui调用的,不可以由calc.exe返回一组计算后的值给你的gui吗?两个程序之间的通信有很多种方式的,嫩一定要把输入和输出值存到文件吗?还是说这是老师要求的?
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
回复 支持 反对

使用道具 举报

发表于 2010-7-15 10:41 | 显示全部楼层
还有那个程序无法退出的问题,你需要对建立新文件那部分语句使用try catch,这样在有exception出现的时候,你让程序跳出一个msgbox提醒出错就ok了。

http://msdn.microsoft.com/de-de/library/fk6t46tz%28VS.80%29.aspx
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-7-15 13:57 | 显示全部楼层
汗,刚看到呢,那么你的calc.exe是你自己手动启动,还是你的gui调用的,如果是gui调用的,不可以由ca ...
GoldMoon 发表于 2010-7-15 10:36


对的,calc.exe计算后得到的output.csv是当作文件形式可以保存的,哎。。说白了就是教授要求啦
calc是gui调用的,计算后值最后也返回到gui操作界面的
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-7-15 13:58 | 显示全部楼层
还有那个程序无法退出的问题,你需要对建立新文件那部分语句使用try catch,这样在有exception出现的时候, ...
GoldMoon 发表于 2010-7-15 10:41

我知道可以用try语句,但是问题是我不知道应该用什么条件啊。。。
可以try 文件不能写 这个条件么?
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
回复 支持 反对

使用道具 举报

发表于 2010-7-15 14:12 | 显示全部楼层
我知道可以用try语句,但是问题是我不知道应该用什么条件啊。。。
可以try 文件不能写 这个条件么?
even-shi 发表于 2010-7-15 13:58



try和catch是成对出现的。
你可以在打开文件,关闭文件,读写操作这些地方加上try catch,不知道catch什么的话就直接写 Exception就可以了,看看我给你发的那个链接
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-7-15 16:36 | 显示全部楼层
try和catch是成对出现的。
你可以在打开文件,关闭文件,读写操作这些地方加上try catch,不知道cat ...
GoldMoon 发表于 2010-7-15 14:12


这个语句我程序里已经用过,用法我了解的
但是我的问题是因为在CD这种上面input.csv无法创建,这样程序就出现自动报错,要避免这个自动报错的情况出现,就是举例我这样写的话:
Try
    [ tryStatements ] // 这里我写什么条件啊?
Catch ex As Eception
    MsgBox("Die Datei input.csv kann nicht einschrieben werden!")   
    e.Cancel = True
End Try
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
回复 支持 反对

使用道具 举报

发表于 2010-7-15 16:40 | 显示全部楼层
这个语句我程序里已经用过,用法我了解的
但是我的问题是因为在CD这种上面input.csv无法创建,这样程序 ...
even-shi 发表于 2010-7-15 16:36


写在创建input.csv那里呀
Try
创建文件   
Catch ex As Eception
  MsgBox("Die Datei input.csv kann nicht einschrieben werden!")  
    e.Cancel = True
End Try
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
回复 支持 反对

使用道具 举报

发表于 2010-7-15 16:42 | 显示全部楼层
哦,当然,你msgbox里就不能写einschrieben werden了,写上不能创建文件就好了
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-7-15 16:42 | 显示全部楼层
写在创建input.csv那里呀
Try
创建文件   
Catch ex As Eception
  MsgBox("Die Datei input.csv k ...
GoldMoon 发表于 2010-7-15 16:40

我创建文件的那段程序是用streamwriter直接写的,也可以用嘛?
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-7-15 16:45 | 显示全部楼层
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
回复 支持 反对

使用道具 举报

发表于 2010-7-15 16:48 | 显示全部楼层
我创建文件的那段程序是用streamwriter直接写的,也可以用嘛?
even-shi 发表于 2010-7-15 16:42



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根据不同情况显示不同错误,比如文件无法找到,文件无法写入,关闭错误等等

评分

1

查看全部评分

Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-7-15 16:49 | 显示全部楼层
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()

添进去?
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
回复 支持 反对

使用道具 举报

发表于 2010-7-15 16:50 | 显示全部楼层
事实上返回的exception是不同的,懒一点就只用一个exception,但这一段其实有很多情况,有IOException,PathTooLongException

刚才那段是msdn上直接拷贝过来的

http://msdn.microsoft.com/en-us/library/hxwfzt61%28VS.80%29.aspx
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-7-15 16:51 | 显示全部楼层
Dim file As System.IO.StreamWriter
file = My.Computer.FileSystem.OpenTextFileWriter("input.cs ...
GoldMoon 发表于 2010-7-15 16:48

这样的写法是用在console里面的?
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
回复 支持 反对

使用道具 举报

发表于 2010-7-15 16:52 | 显示全部楼层
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



恩纳,是哒
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
回复 支持 反对

使用道具 举报

发表于 2010-7-15 16:53 | 显示全部楼层
这样的写法是用在console里面的?
even-shi 发表于 2010-7-15 16:51


就是举个例子,你根据自己的情况写进去就好了
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-7-15 16:54 | 显示全部楼层
恩纳,是哒
GoldMoon 发表于 2010-7-15 16:52

我去试试看。。。这个要运行实验一次超麻烦,家里有没有联网电脑,晕死。。

评分

1

查看全部评分

Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
回复 支持 反对

使用道具 举报

发表于 2010-7-15 16:56 | 显示全部楼层
我去试试看。。。这个要运行实验一次超麻烦,家里有没有联网电脑,晕死。。
even-shi 发表于 2010-7-15 16:54



嗯,祝嫩好运~
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-7-15 16:58 | 显示全部楼层
回复 18# GoldMoon


还有个问题,我刚才那个程序是在这个Sub里的
Private Sub Btn_Diagramm_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btn_Diagramm.Click

这样的话e.Cancel就没法用了
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
回复 支持 反对

使用道具 举报

发表于 2010-7-15 17:03 | 显示全部楼层
回复  GoldMoon


还有个问题,我刚才那个程序是在这个Sub里的
Private Sub Btn_Diagramm_Click(ByVal ...
even-shi 发表于 2010-7-15 16:58



e是什么?你的gui?
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
回复 支持 反对

使用道具 举报

发表于 2010-7-15 17:04 | 显示全部楼层
就写在你需要让它退出的地方就好了,一切正常的
还有
catch那里面,就是在msgbox的后面也写一个,我不知道你对于出这个错之后有什么处理,是打算让gui直接退出呢还是说其他处理。如果就打算让gui直接退出了也就需要在catch里写上一个
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
回复 支持 反对

使用道具 举报

发表于 2010-7-15 17:07 | 显示全部楼层
回复  GoldMoon


还有个问题,我刚才那个程序是在这个Sub里的
Private Sub Btn_Diagramm_Click(ByVal ...
even-shi 发表于 2010-7-15 16:58


啊,晕,没注意原来是eventargs
你看看这里有个例子

http://msdn.microsoft.com/de-de/library/fk6t46tz.aspx

评分

1

查看全部评分

Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-7-15 17:09 | 显示全部楼层
我定义了一个
dim a as system.componentmodel.canceleventargs

这样会出现一个警告,说是
Die a-Variable wird verwendet, bevor ihr ein Wert zugewiesen wird. Zur Laufzeit kann eine Nullverweisausnahme auftreten.
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-7-15 17:10 | 显示全部楼层
就写在你需要让它退出的地方就好了,一切正常的
还有
catch那里面,就是在msgbox的后面也写一个,我不知道 ...
GoldMoon 发表于 2010-7-15 17:04


catch的话就直接程序关闭或当前当前窗口关闭
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
回复 支持 反对

使用道具 举报

发表于 2010-7-15 17:19 | 显示全部楼层
catch的话就直接程序关闭或当前当前窗口关闭
even-shi 发表于 2010-7-15 17:10



啊,我明白了,你那个e是对应某个按钮,然后用来关闭窗体的是吗?
遇到exception这种意外的错误的话,就没有说用户再按什么按钮这种问题,你就直接强制让程序退出就好了,直接用END我觉得就OK了
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-7-15 17:20 | 显示全部楼层
啊,我明白了,你那个e是对应某个按钮,然后用来关闭窗体的是吗?
遇到exception这种意外的错误的话 ...
GoldMoon 发表于 2010-7-15 17:19


恩,我原来意思就是关闭当前窗体
那我用end试试看,谢谢你~~
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
回复 支持 反对

使用道具 举报

发表于 2010-7-15 17:22 | 显示全部楼层
恩,我原来意思就是关闭当前窗体
那我用end试试看,谢谢你~~
even-shi 发表于 2010-7-15 17:20



嘿嘿,不用客气,一起研究嘛~
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册 微信登录

本版积分规则

我是开心果

Archiver|手机版|AGB|Impressum|Datenschutzerklärung|萍聚社区-德国热线-德国实用信息网

GMT+2, 2025-6-20 00:45 , Processed in 0.128150 second(s), 37 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表