2

我有一个程序,它使用一些用户输入来自动创建上传过程所需的文件。这些文件是 .bas(qbasic 程序)和 .lot(voxco 自动机文件)。文件创建完美,语法完美无瑕。当我尝试运行启动基本程序的批处理文件和很多文件时,它会崩溃。程序(voxco 和 basic)似乎不知道如何读取文件。我不知所措。我不认为这是编码。我认为我的 VB.net 程序正在创建一个扩展名为“.lot”和“.bas”的文本文件,而另外两个程序不知道如何处理它。但是除了将它们命名为 .lot 和 .bas 之外,我不知道如何创建正确的文件。有人对此有经验吗?

下面是一些创建 .LOT 文件的代码:

'Create a copy of the old lot file
        My.Computer.FileSystem.CopyFile(LotFilePath & OldStudy & ".LOT", LotFilePath & "BackEnd\" & OldStudy & ".LOT")
        System.IO.File.Create(LotFilePath & "BackEnd\" & StudyID & ".LOT").Dispose()



        Dim LotText As String
        LotText = Text to put into LOT file
        Dim QuLines As String = Nothing
        Dim Reader As New StreamReader(LotFilePath & OldStudy & ".LOT")
        Dim SLine As String = Nothing
        While Not Reader.EndOfStream
            SLine = Reader.ReadLine()
            If SLine.StartsWith("*QU") Then
                QuLines = QuLines & SLine & vbCrLf
            End If
        End While
        LotText = LotText & QuLines

        Dim TempPath As String
        TempPath = LotFilePath & "BackEnd\" & StudyID & ".LOT"
        My.Computer.FileSystem.WriteAllText(TempPath, LotText, 0)

这是创建 BAS 文件的代码:

Dim BasText As String = Nothing
        BasText = Text to input into BAS file
        TempPath = BasFilePath & StudyID & ".BAS"
        My.Computer.FileSystem.WriteAllText(TempPath, BasText, 0)
4

1 回答 1

2

以下是一些可以尝试的事情:

  1. 确保 Basic 程序在每一行的末尾都有 vbCrLf。
  2. qBasic 是否需要行号?(不记得了)
  3. 尝试进入 qBasic 并手动加载应用程序生成的基本文件。你得到一个合适的列表吗?当你尝试执行它时会发生什么?
  4. 在qBasic中输入基本程序的前几行,然后保存。使用十六进制编辑器(例如hexedit)将此文件与应用程序生成的基本文件进行比较。如果有差异,您可以修复它。
  5. 如果基本文件手动运行,则问题可能出在批处理文件上。您可以手动创建基本文件和 voxco 文件并让它们与批处理文件一起使用吗?
于 2013-09-28T19:40:17.727 回答