Windows Phone 72011. 11. 16. 17:19

코레일의 역정보를 어디서 가져오나 싶었더니 sqllite를 이용하여 가져왔다.

나도 그것을 복사해서 해볼려고 했었지만 외부에서 가져온 sqllite 파일의 인코딩이 UTF8이 아니라 UTF16이여서

읽혀지지가 않았다.

그래서 어짜피 로컬 파일이니 그냥 csv로 만들어서 넣었다.

내가 한 작업은 이렇다.

1. sqlLite Database Browser에서 아이폰소스에서 가져온 KorailDatabase.sqlite 파일을 로드 한다.

2. file - export-에서  csv 파일로 export한다.

3. 메모장으로 아까 저장한 csv 파일을 다른이름으로 저장하는데 인코딩을 UTF8로 다시 저장한다.

4. 이제 윈폰7에서 정상적으로 한글로 보이고 파싱한다.
 

만약 나중에 역이 업데이트 되었을때 아이폰소스에서 저 파일만 다시 받아서 저렇게 csv파일로 만들어서 윈폰에 넣으면 된다.

아래는 csv를 List로 만든 소스이다.

 

    private List<StationsModel> GetStationsList()
    {
        var resource = Application.GetResourceStream(new Uri(@"/GloryApp;component/Resources/KorailStations.csv", UriKind.Relative));

        StreamReader streamReader = new StreamReader(resource.Stream);
        string stations = streamReader.ReadToEnd();

        var StationsSplitData = stations.Split('\n');

        List<StationsModel> stationLists = new List<StationsModel>();

        foreach (var item in SkipData.First(StationsSplitData))
        {
            if (item == "")
                continue;

            var splitString = item.Split(',');

            stationLists.Add(new StationsModel()
            {
                code = splitString[0].Replace("\"", ""),
                lat = splitString[1].Replace("\"", ""),
                lng = splitString[2].Replace("\"", ""),
                title = splitString[3].Replace("\"", ""),
                ktx = splitString[4].Replace("\"", ""),
                indexgroup = splitString[5].Replace("\"", ""),
                maingroup = splitString[6].Replace("\"", "")
            });
        }

        return stationLists;
    }
}
Posted by 동동(이재동)