【发布时间】:2017-04-26 13:57:17
【问题描述】:
我编写了一个脚本,该脚本将从程序中取出一个表格,并将其以 逗号分隔 文本文件的形式导出到本地驱动器。我需要的是一个脚本来读取文本文件。用户将从 Public Class Form 1 的文本框中输入一个字符串,然后将该字符串传递给 Public Class SpaceMenuClass 中的另一个 Sub。切换看起来不错,但我不知道如何解析文本文件(将第 1 列与字符串匹配,并存储该行中的第 2 列以传回SpacemenuClass)。我知道这可能看起来模棱两可,但希望有一定的意义。提前感谢任何人。
来自 Form1 类
Private Sub BtnPlano_Click_(sender As Object, e As EventArgs) Handles BtnPlano.Click
If TxtBoxPlano.Text <> "" Then
SpaceCommands.SearchPlano(TxtBoxPlano.Text)
Else MessageBox.Show("Please Enter a Valid Planogram Name!")
End If
TxtBoxPlano.Clear()
End Sub
来自 SpaceMenuClass:
Public Sub SearchPlano(PlanoName As String)
For Each Plano As Space.Planogram In SpacePlanning.ForPlanograms()
SpacePlanning.SetActivePlanogram(Plano.Number - 1)
'Go open the Searchplano table on the shared drive
SpacePlanning.OpenTableChartView(AnalysisFileName:="\\SERVER1\JDA\Tables\SearchPlano.pst")
'Export the table to a Tab Delimited Text file
SpacePlanning.ExportTableData(ExportFileName:="C:\Temp\JDA\SearchPlano.txt", ExportMethod:=ExportMethod.CommaSeparated, UseCurrency:=False, UseQuotedStrings:=False, UseThousandsSeparator:=False)
'Close the Table
SpacePlanning.CloseTableChartView(AnalysisFileName:="\\SERVER1\JDA\Tables\SearchPlano.pst")
' Open the text file and parse it
Dim str As System.IO.StreamReader = New System.IO.StreamReader(New System.IO.FileStream("C:\Temp\JDA\SearchPlano.txt", System.IO.FileMode.Open))
Dim strline, arr(), Name, Nbr As String
Try
NextLine:
strline = str.ReadLine
arr = strline.Split(",")
Name = arr(0)
Nbr = arr(1)
If Name = PlanoName Then
SpacePlanning.SetActivePlanogram(Plano.Number = Nbr)
GoTo Finish
Else
GoTo NextLine
End If
Catch
End Try
Next
Finish:
My.Computer.FileSystem.DeleteFile("C:\Temp\JDA\SearchPlano.Txt")
End Sub
【问题讨论】:
-
你现在拥有的东西出了什么问题?你得到什么错误或异常?
-
抱歉,该信息会有所帮助。我得到一个迅速消失的 cmd 弹出窗口。我可以添加一行让它留在屏幕上吗?
-
我什至不能从发布的代码中确定 cmd 弹出窗口的来源——它可能来自您在 SpacePlanning 中调用的内容之一。这并不一定表明有任何问题。您是否遇到异常,或者是否有其他类型的输出不是您所期望的?
-
总而言之,该表超出了 JDA Space Planning 的范围,它是类别顾问用来帮助为零售商绘制货架的。货架图文件包含多个货架图(或货架图),其中包含名称和编号以及其他元数据。我正在使用 Space Automation Pro,它基于 VB,带有使用其语言的 JDA 插件,它将与 Space Planning 对话。我希望程序要求用户在文本文件的第 1 列中输入货架图名称,然后跳转到第 2 列中的货架图编号。您不能按其名称跳转到货架图,只能跳到编号。它只是停留在#1
-
如果您将
catch更改为catch ex as exception并执行一些操作来观察(断点)或记录异常,您可能会发现它更有帮助。您当前的异常处理程序是一种反模式,可能会阻止您看到问题。
标签: vb.net