2014-04-24 1 views
-1

텍스트 파일을 읽고 특정 단어가있는 줄을 찾는 모듈 응용 프로그램이 있습니다. "번호 :"다음은특정 단어 다음에 텍스트 파일 구문 분석 VB.net

내 입력 내가 지금해야 할 일은 후 텍스트를 잡아 내 출력이

Dealer Name: SAN TAN FORD  Contract Number: 7466564 
Dealer Name: SAN TAN FORD  Contract Number: 7679454 
Dealer Name: RICH FORD  Contract Number: 7380708 

다음과 같습니다이

Dealer Number: 90402001 
Dealer Name: SAN TAN FORD  
Contract Number: 7466564 
OverRide Class:  
Contract Code: 3417620 
Portal Claim#: 148905 

Dealer Number: 90402001 
Dealer Name: SAN TAN FORD  
Contract Number: 7679454 
OverRide Class:  
Contract Code: 3762406 
Portal Claim#: 149325 

Dealer Number: 90416003 
Dealer Name: CAR TOWN KIA  
Contract Number: DG209507 
OverRide Class:  
Contract Code: 3110169 
Portal Claim#: 134550 

Dealer Number: 90430005 
Dealer Name: RICH FORD  
Contract Number: 7380708 
OverRide Class:  
Contract Code: 3130744 
Portal Claim#: 148537 

과 같이 보입니다 내가 지금까지 가지고있는 것

Imports System.IO 

Module Module1 

Sub Main() 

    Dim str 
    Dim fileName = "C:\Users\username\Desktop\textfile.txt" 

    Dim lines() = File.ReadAllLines(fileName) 

    For i = 0 To lines.Length - 1 
     If lines(i).Contains("SAN TAN FORD") Then 
      Str = String.Format("{0}{1}", lines(i), lines(i + 1)) 
      Console.WriteLine(str) 
     ElseIf lines(i).Contains("RICH FORD") Then 
      Str = String.Format("{0}{1}", lines(i), lines(i + 1)) 
      Console.WriteLine(str) 
     End If 
    Next 

End Sub 

End Module 

라인이있는 것 같아요. 이후? 그래서

text = lines(i).after("Number:") 
Console.writeline(text) 

과 같은 그 날

7466564 
7679454 
7380708 

아이디어를 제공 할 것입니까?

+0

분할 또는 같이 IndexOf와 비슷한 할 수 - 당신은 당신의 최종 출력이 원하는 않는 무엇을 (전체적으로)? –

+0

제 출력물은 모듈이 저에게 줄 것을 원합니다. 7466564 등 ... 왜 내 질문에 투표를했는지, 나는 매우 구체적이라고 생각했다. – Zingo

+0

나는 왜 그런지 모르겠다. 나는 그렇지 않다. 너의 해결책은있어 기쁘다. –

답변

2

이와 비슷한 방법으로 여러 가지가 있습니다. IndexOfSubString을 사용하여 원하는 문자열 부분을 찾아 추출 할 수 있습니다. 일치하는 값을 찾아서 읽으려면 Regex 클래스를 사용하거나 가장 간단하게 Split 메서드를 사용할 수 있습니다. "Number: " 문자열을 다른 두 문자열 사이의 구분 기호로 간주하면 Split을 사용하여 해당 구분 기호 앞뒤에 문자열을 가져올 수 있습니다. 그래서, 예를 들어 :

Dim input As String = "Contract Number: 7380708" 
Dim parts() As String = input.Split("Number: ") 
Console.WriteLine(parts(0)) ' Outputs "Contract " 
Console.WriteLine(parts(1)) ' Outputs "7380708" 
+0

굉장하다. 나는 쪼개진 것을 알았지 만, 그렇게 색인을 붙일 수 있는지 몰랐다. 고마워. – Zingo

0

어떤 기능 "후"없습니다하지만 당신은 내가 약간 혼란스러워하고있어

Dim input, output As String 

    input = "Contract Number: 7466564" 

    ' With trim 
    output = input.Split(":")(1).Trim() 
    Console.WriteLine(output) 

    ' With index of 
    output = input.Substring(input.IndexOf("Contract Number:") + "Contract Number:".Length).Trim() 
    Console.WriteLine(output)