У меня есть программа, которая использует некоторый пользовательский ввод для автоматического создания файлов, необходимых для процесса загрузки. Файлы представляют собой .bas (qbasic program) и .lot (файл автомата voxco). Файлы создаются отлично, синтаксис безупречен. Когда я пытаюсь запустить пакетные файлы, которые запускают базовую программу и файл файла лота, он ломается. Программы (voxco и basic), похоже, не знают, как читать файлы. Я в недоумении. Я не думаю, что это кодировка. Я думаю, что моя программа VB.net создает текстовый файл с расширением «.lot» и «.bas», а две другие программы не знают, как с этим бороться. Но я понятия не имею, как создавать файлы, отличные от имен .lot и .bas. У кого-нибудь есть опыт?Как я могу создавать файлы (автоматически) через программу vb.net, которые действуют как входные данные для других программ?
Вот некоторые из кода, который создает файл .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)
А вот код, который создает файл БАС:
Dim BasText As String = Nothing
BasText = Text to input into BAS file
TempPath = BasFilePath & StudyID & ".BAS"
My.Computer.FileSystem.WriteAllText(TempPath, BasText, 0)
Из того, что я помню, qbasic-файлы являются просто кодировкой ascii, поэтому вы должны иметь возможность открывать/редактировать/создавать в блокноте или тому подобное. Расширение не очень важно, так что это не так. Можете ли вы показать код о том, как вы начинаете основную программу, и объясните, что вы подразумеваете под словом «он ломается»? У вас есть ошибка или что-то еще? – Steve
Я боюсь, что у меня нет доступа к этим файлам прямо сейчас, но код, запускающий qbasic-программу, - это просто «путь \ qbasicexecutable/run \ path \ .basfile». Это командный файл msdos. Когда qbasic линия запускается, открывается программа qbasic (обычно она работает в фоновом режиме) и говорит что-то о отсутствующем выражении (извините, я знаю, что это не очень полезно!) И киосков. Как только я выхожу из него, аналогичная строка в пакетном файле запускает приложение voxco, которое запускается, но не загружает файл, который должен сказать файл лота. Он сразу заканчивается, и командный файл переходит к следующему элементу. – user2824979
Отличная информация, приводит меня к моему следующему вопросу (извините, еще нет ответа). У вашего пути для LotFilePath или BasFilePath есть пробелы или специальный символ? – Steve