2010-05-13 1 views
0

배열에 많은 양의 CSV 가져 오기 된 분할 데이터가있는 함수가 있습니다. 나는 현재 아래 코드로 설정했지만 데이터를 하나의 열로 나누는 것보다 별도의 열로 이동하는 데 문제가 있습니다. 무엇을 달성하고 싶습니다 어떤 크기의 문자열 배열을 함수를 제공하고 DataGrid에 행으로 추가하기 전에 읽어야하는 데이터의 열 수를 정의하는 비 중복 방법입니다.C# DataGrid CSV 가져 오기 크기 배열을 정의 된 열 그리드로 이동합니까?

private string csvtogrid(string input, columns) 
    { 
     input = input.Replace("\r", ",").Substring(2).TrimEnd(',').Trim().Replace("\n", ",").Replace(",,,", ",").Replace(",,",","); 
     string[] repack = input.Split(','); 
     string[] cell = new string[columns]; 
     int rcell = 0; 
     for (int counter = 1; counter < repack.Length; counter++) 
     { 
      if (rcell < columns) 
      { 
       cell[rcell] = repack[counter]; 
       rcell++; 
      } 
      //MessageBox.Show(cell[0] + cell[1] + cell[2]); 
      procgrid.Rows.Add(cell[0], cell[1], cell[2]); 
      rcell = 0; 
     } 
     return null; 
    } 
+0

그럼, 무엇이 문제입니까? –

답변

0

csv 파일에서 읽는 가장 안정적이고 쉬운 방법은 TextFieldParser 클래스입니다. Microsoft.VisualBasic.FileIO 네임 스페이스에 있으므로 C#을 사용하는 경우 defaukt에서 참조하지 않을 수도 있습니다.하지만 참조 용으로 gac에 있어야합니다.

+0

글쎄, 내 문제는 실제로 CSV 파일을 가져 오는 측면에서 아니지만 검색하는 데이터는 CSV 형식으로 저장되어 문자열에 저장됩니다. 내가 성취하고자하는 것은 문자열을 함수에 전달하고 특정 datagrid가 가진 컬럼의 수를 알려주는 것입니다. 모든 기능은 행의 셀을 채운 후 다음 셀로 이동하는 것입니다. 예를 들어, 열 이름은 "fname, lname, address"입니다. 함수에 3 열이 있다고하면 CSV 형식의 문자열/배열의 데이터를 각 행에 채우고 싶습니다. 그런 식으로 정렬됩니다. – MWC