http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=17&MAEULNo=8&no=84862&ref=84862


질문 : 파일(txt) 읽어서 2차 배열로 분류



                string fName = @"text.txt";

 

                FileStream aFile = new FileStream(fName, FileMode.Open);

                StreamReader sr = new StreamReader(aFile, System.Text.Encoding.Default);

                ArrayList arrList = new ArrayList();

            

                while (sr.Peek() >= 0)

                {

                    string strLine = sr.ReadLine().Trim();

 

                    if (strLine != "")                                

                    {

                        MessageBox.Show(strLine);

                        arrList.Add(strLine); 

                    }

                }

 

                sr.Close();

                string[] strArray = new string[arrList.Count];

                arrList.CopyTo(strArray);                      

 ___________________________________________________________________

이렇게 하면 strLine은 word.txt의 한 줄을 통채로 가지게 되더라구요.

___________________________________________________________________

word.txt

채집    채취    채포    수집

 

책상    서안    서궤    서록    데스크

 

피아노  양금

 

필기    기록    노트

...........

..........

*******************************

파일에 "탭"으로 분류된 값들이 들어 있는데,

읽어 들여서 배열에 넣으려고 합니다.

 

strArray[0] - [0] : 채집 [1] : 채취 [2] : 채포 [3] : 수집

strArray[1] - [0] : 책상 [1] : 서안 [2] : 서궤 [3] : 서록 [4] 데스크

strArray[2] - [0] : 피아노 [1] : 양금

strArray[3] - [0] : 필기 [1] : 기록 [2] : 노트

..........

파일다루기는 처음 이라 많이 헷갈리네요^^;;

 

각 줄 분류는 "" 으로 분류를 해야하나요?

각 줄 내에서는 단어와 단어 사이 '\t' 기준으로 분류해서 배열에 넣고...

 

계속 밤새서 해도 모르는게 너무 많네요...







답변 : 파일(txt) 읽어서 2차 배열로 분류


                string fName = @"text.txt";

 

                FileStream aFile = new FileStream(fName, FileMode.Open);

                StreamReader sr = new StreamReader(aFile, System.Text.Encoding.Default);

                ArrayList arrList = new ArrayList();

                ArrayList arrLists = new ArrayList();

                while (sr.Peek() >= 0)

                {

                    string[] strLines = sr.ReadLine().Split('\t');

 

                    if (strLines.Length > 0)                                

                    {

                        arrList.clear();

                        foreach(string strLine in strLines)

                        {

                            MessageBox.Show(strLine);

                            arrList.Add(strLine);

                         }

                         arrLists.Add(arrList);

                    }

                }

                sr.Close();

 

               접근 방법은 아래처럼 접근 하시면 됩니다.

                ((ArrayList)arrLists[0])[0];

Posted by motolies
,