2013-01-18 2 views
1

VS 2008을 사용하여 asp.net C# 프로젝트를 프레임 워크 3.5로 변환했습니다. 응용 프로그램의 목적은 유사한 정보를 여러 행으로 포함하는 텍스트 파일을 구문 분석 한 다음 데이터를 데이터베이스에 삽입하는 것입니다 .indexof 하위 텍스트 파일을 찾는 방법

원본 앱을 작성하지 않았지만 개발자가 항상 같은 위치에서 시작하므로 substring()을 사용하여 개별 필드를 가져옵니다.

내 질문은 :

수동으로 위치를 계산하지 않고 텍스트 파일에서 문자열의 인덱스를 찾을 수있는 가장 좋은 방법은 무엇입니까? 누군가 텍스트 파일에서 문자의 위치를 ​​찾는 데 선호하는 방법이 있습니까?

+0

Regular Expressions REGEX를 추천합니다. – Greg

답변

0

텍스트 파일로() 길이를 사용하여 다음 같이 IndexOf()를 사용 할 수 있습니다 그들은 함께 달린다. 두 경우 모두 모든 행의 형식이 동일합니다. 내가 질문 할 때 메모장에서 파일을보고있었습니다.

질문 : 위치 (숫자)를 하위 문자열 함수의 startIndex로 지정할 수 있도록 파일에서 위치를 어떻게 찾을 수 있습니까?

답변 : 텍스트 파일을 열면 메모장 ++은 파일에 커서가있는 모든 위치의 열 번호 및 줄 수를 표시하고이 작업을 더 쉽게 만듭니다.

0

나는 과 함께 IndexOf()/IndexOfAny()이라고 말하고 싶습니다. 또는 regular expressions. 파일은 XML과 유사한 구조를 가지고 있습니다 (this). 문자열 [] 텍스트 = { "1, 사과", "2, 오렌지", "3, 레몬"} : 파일이 쉼표로 예를 들어 구분하는 경우 데이터 인 경우

0

당신 사항 String.split

을 사용할 수 있습니다 ; 때로는 필드와 사이에 가끔 공간 -

private void button1_Click(object sender, EventArgs e) 
    { 
     string[] lines = this.textBoxIn.Lines; 
     List<Fruit> fields = new List<Fruit>(); 
     foreach(string s in lines) 
     { 
      char[] delim = {','}; 
      string[] fruitData = s.Split(delim); 
      Fruit f = new Fruit(); 
      int tmpid = 0; 
      Int32.TryParse(fruitData[0], out tmpid); 
      f.id = tmpid; 
      f.name = fruitData[1]; 
      fields.Add(f); 
     } 
     this.textBoxOut.Clear(); 
     string text=string.Empty; 
     foreach(Fruit item in fields) 
     { 
      text += item.ToString() + " \n"; 
     } 
     this.textBoxOut.Text = text; 
    } 
} 
0

당신은 내가 구분 기호를 포함하지 않는 읽고 있어요 두 번째 문자열 매개 변수

substr = str.substring(str.IndexOf("."), str.Length - str.IndexOf(".")); 
관련 문제