2014-09-18 1 views
0

Я делаю программу, которая создает текстовый файл, который форматирует как так:найти первый номер в последней строке текстового файла и поместить Ино целочисленную переменную Visual Basic

[1, * Джон Доу, семья, 0002354561]

[2, * Джейсон, Доу, акушерские, 0002358411]

[3, * Микаэл, Доу, педиатрического, 0002352361]

[4, * Jamiel, Доу, ортопедический, 0002354547]

Мне нужен способ прочитать файл и получить первый номер последней строки. а затем поместите это в целое число.

Я знаю, что я могу прочитать первую строку:

Dim fileReader As System.IO.StreamReader 
    fileReader = 
    My.Computer.FileSystem.OpenTextFileReader(("..\..\..\Patients.txt")) 

    Dim stringReader As String 
    stringReader = fileReader.ReadLine() 
    MsgBox("The first line of the file is " & stringReader) 

Но как я прочитал последнюю строку и получить второй символ в переменное целом?

+0

Почему бы не разделить строку на запятой и использовать последний элемент, чтобы получить первый символ, который является первым номером, который из его внешний вид всегда равен 0, если вы не хотите, чтобы все число было последним элементом массива, возвращаемого из split, и если эта скобка является частью строки, замените ее, чтобы удалить скобку. – Sorceri

+0

Это не всегда будет ноль. это просто место для телефонных номеров. И я понятия не имею, как манипулировать строкой так, как вы говорите, по крайней мере, не в визуальной базовой. –

+0

Почему вы помещаете его в формат, который затрудняет вам получение позже? –

ответ

0

Я использую что-то вроде этого

Dim lastLine As String = File.ReadLines(myFileName) _ 
           .Where(Function(f As String) (Not String.IsNullOrEmpty(f))).Last.ToString 
Dim startpos As Integer = lastLine.IndexOf(",", 3) 
lastline = Substring(lastline, startpos).Trim 
Dim firstchar as String = Substring(lastline,0,1) 
Dim result As Integer 
    If Integer.TryParse(firstchar, result) Then Return result _ 
     Else Return -1 
0

Вот пример того, как вы могли бы выполнить задачу, это ставит все номера в ArrayList. Не то, что путь преобразования его в длинном (или целое число) будет удалить любые ведущих нули

Public Function GetDigits() As System.Collections.ArrayList 
    Dim numList As System.Collections.ArrayList 
    numList = New System.Collections.ArrayList() 
    Dim fileReader As System.IO.StreamReader 
    fileReader = My.Computer.FileSystem.OpenTextFileReader(("C:\Patients.txt")) 

    Dim stringReader As String 
    While Not fileReader.EndOfStream 
     stringReader = fileReader.ReadLine() 
     If Trim(stringReader) = "" Then Continue While 
     Dim strParts 
     strParts = Split(stringReader, Chr(44)) 
     Try 
      numList.Add(Integer.Parse(Trim(Replace(strParts(UBound(strParts)), "]", "")))) 
     Catch 
      MsgBox("Could not parse string: " & stringReader) 
     End Try 
    End While 
    fileReader.Close() 
    GetDigits = numList 
End Function 
Смежные вопросы