как отобразить содержимое файла .txt в VB.net и сравнить между ними - PullRequest
0 голосов
/ 27 июня 2018

У меня есть четыре TXT-файла, которые содержат целочисленное значение, и я хочу отобразить каждое из этих целых чисел в отдельном поле (4 блока в каждом из них содержит значение из файла .txt) внутри VB.net. Более того, я хочу сравнить эти результаты и выполнить одну из этих команд на основе наибольшего значения. SerialPort1.Write("1/") SerialPort1.Write("2/") SerialPort1.Write("3/") SerialPort1.Write("4/") спасибо

Ответы [ 2 ]

0 голосов
/ 27 июня 2018

Сначала вам нужно будет сначала получить все текстовые данные из файлов * .txt, это легко сделать с помощью IO.File.ReadAllText .

Далее вы захотите убедиться, что полученные данные являются действительными целыми числами, это легко сделать с помощью Integer.TryParse .

Наконец, вы захотите получить наибольшее значение, поскольку все они являются числовыми значениями, просто используйте метод Enumerable.Max . Вот быстрый пример:

'Get all of the text from the desired file and assign it to the respective TextBox
TextBox1.Text = IO.File.ReadAllText("file1.txt")
TextBox2.Text = IO.File.ReadAllText("file2.txt")
TextBox3.Text = IO.File.ReadAllText("file3.txt")
TextBox4.Text = IO.File.ReadAllText("file4.txt")

'Check which TextBox has the highest value by first check if all are valid Integer values
Dim tb1, tb2, tb3, tb4 As Integer
If Integer.TryParse(TextBox1.Text, tb1) AndAlso
   Integer.TryParse(TextBox2.Text, tb2) AndAlso
   Integer.TryParse(TextBox3.Text, tb3) AndAlso
   Integer.TryParse(TextBox4.Text, tb4) Then

    'Get the highest value
    Dim highest As Integer = {tb1, tb2, tb3, tb4}.Max()

    'Do your command based on the highest value
    If ... Then

    End If
Else
    MessageBox.Show("One or more of the text files contain a value that cannot be converted into an Integer. Please check the files and try again.", "Invalid Data", MessageBoxButtons.OK)
End If
0 голосов
/ 27 июня 2018

Возможно, лучше хранить ваши данные в базе данных, такой как mysql. И запросить нужные данные.

Однако вы можете загрузить текст в строку, а затем разобрать его в целое число

Dim lstValues as list(of Integer)
Dim file1 As String
Dim intGNum as integer
file1 = My.Computer.FileSystem.ReadAllText("C:\test.txt") 'copy same for other files

lstValue.add(integer.parse(file1))'duplicate for other files
'lstValue.add(integer.parse(file2)) 
'lstValue.add(integer.parse(file3))
'lstValue.add(integer.parse(file4))

intGNum=lstValue.Max();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...