none
C# 텍스트파일의 문자를 datagridview에 넣고 싶습니다. RRS feed

  • 질문

  • 텍스트파일에 아래와 같이 규칙이 없는 숫자 및 빈칸들이 있습니다

    12 322 2 4 4 4 2221

    22 366 2 4 4 4

    버튼을 누르면 OpenFileDialog를 이용하여 해당파일을 오픈한후 저 숫자들을 datagridview에 아래와 같이 넣고 싶습니다.

    1번째줄: 12 / 322 /   2 / 4 / 4 / 4 / 22 / 21

    2번째줄: 22 /   3 /  66 / 2 / 4 / 4 / 4

    /은 칼럼구분입니다.

     

    칸이 일정치 않으니 for문은 쓰기가 어렵고 텍스트파일이 구분기호도 없어서 어찌해야 하나 고민중입니다.

    그래서 두칸읽어서 데이터 그리드뷰에 넣고, 4칸읽어서 또 넣고 이런식으로 해야 할 것같은데 어찌해야 할까요?

    2015년 9월 23일 수요일 오전 1:44

답변

  • 감사합니다.

    저도 저 내용을 보았는데 구분기호가 없는 텍스트파일로 내용이 많아서 일일히 빈칸이나 콤마를 삽입할 수가 없더라고요 ㅠㅠ

    몇칸씩만 읽고 변수로 저장해서 그 변수를 DataGridView의 각 셀마다 뿌려주려고 하는데

    앞에서부터 몇칸읽고 변수에 저장하고 다음몇칸읽고 다른변수에 저장하고 이렇게 죽가다가 다음줄로 가서 읽어야 하는데 여기에도 구분기호가 없어서 앞에서부터 몇칸이되면 다음줄로 가는걸 강제로 만들어 줘야 할것 같더라고요 ㅠㅠ

    그걸하는 방법을 코딩초짜라 책이랑 여기저기 찾아보고 있는데 해결할만한 답이 없네요 ㅠㅠ


    • 편집됨 Hurriupp 2015년 9월 23일 수요일 오전 7:34
    • 답변으로 표시됨 SMPark82 2015년 9월 23일 수요일 오전 8:48
    2015년 9월 23일 수요일 오전 7:33

모든 응답

  • 안녕하세요, Hurriupp 님.
    Microsoft MSDN의 Forum 사이트를 방문해 주셔서 감사합니다.
    문의 하신 "C# 텍스트파일의 문자를 datagridview에 넣고 싶습니다." 문의에 대한 답변을 드리겠습니다.

    다음의 stackoverflow에 유사한 문의가 답변되어 있습니다. 참고하십시오.

    http://stackoverflow.com/questions/19582570/how-to-read-load-text-txt-file-values-in-datagridview-using-c-sharp
    How to read /load text (*.txt) file values in datagridview using C# ..?

    var lines = File.ReadAllLines("input.txt");
    if (lines.Count() > 0)
    {
        foreach (var columnName in lines.FirstOrDefault()
            .Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries))
        {
            dataGridView1.Columns.Add(columnName, columnName);
        }
        foreach (var cellValues in lines.Skip(1))
        {
            var cellArray = cellValues
                .Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
            if (cellArray.Length == dataGridView1.Columns.Count)
                dataGridView1.Rows.Add(cellArray);
        }
    }

      


    제시해 드린 답변이 도움이 되었기를 바랍니다.

    답변이 문제 해결에 도움이 되었다면 답변으로 채택을 부탁드립니다.
    하지만 문제 해결이 되지 않아서 정확한 답변을 원하는 경우에는 문제의 정보를 더 자세하게 답변으로 제공해주시기 바랍니다.


    • 편집됨 SMPark82 2015년 9월 23일 수요일 오전 4:22
    2015년 9월 23일 수요일 오전 4:16
  • 감사합니다.

    저도 저 내용을 보았는데 구분기호가 없는 텍스트파일로 내용이 많아서 일일히 빈칸이나 콤마를 삽입할 수가 없더라고요 ㅠㅠ

    몇칸씩만 읽고 변수로 저장해서 그 변수를 DataGridView의 각 셀마다 뿌려주려고 하는데

    앞에서부터 몇칸읽고 변수에 저장하고 다음몇칸읽고 다른변수에 저장하고 이렇게 죽가다가 다음줄로 가서 읽어야 하는데 여기에도 구분기호가 없어서 앞에서부터 몇칸이되면 다음줄로 가는걸 강제로 만들어 줘야 할것 같더라고요 ㅠㅠ

    그걸하는 방법을 코딩초짜라 책이랑 여기저기 찾아보고 있는데 해결할만한 답이 없네요 ㅠㅠ


    • 편집됨 Hurriupp 2015년 9월 23일 수요일 오전 7:34
    • 답변으로 표시됨 SMPark82 2015년 9월 23일 수요일 오전 8:48
    2015년 9월 23일 수요일 오전 7:33
  • 보여주신 파일 모양으로 보면, 한 컬럼에 들어갈 숫자를 읽는 방법은 Space가 나올때까지 읽고 한 Column에 추가하고, 다시 Space가 나올때까지 읽고 한 Column 추가하고, 이 작업을 LineFeed를 읽을때 까지 반복하고 LineFeed를 읽으면 다음 Row로 내려가도록 코딩하셔야 될 듯합니다.
    2015년 9월 23일 수요일 오전 8:52