[Windowsの携帯電話]宜蘭の県政府は、データアプリケーションのためのオープンプラットフォームを開発する(2)分離ストレージにダウンロードしたCSVデータを保存するためには、次の時にアプリケーションにロード提供しています

Googleドライブの配置宜蘭県政府のデータを通って運ば前回の記事でオープンなプラットフォームのダウンロードCSV CSVファイルは、Googleドライブからデータを読み、分析した後、画面上に表示しました。しかし、CSVファイルをダウンロードするには、ネットワークからそれぞれの時間は、それがアプリケーションの実行につながる、データをロードするために、データをダウンロードする時間の必要性は、この論文では分離ストレージ、分離ストレージにダウンロードされたCSVファイルを保存するための練習を提供しますCSVファイルがある場合には、単にネットワークからCSVファイルをダウンロードしていない場合は、その後、データを読み取ります。


序文

Googleドライブの配置宜蘭県政府のデータを通って運ば前回の記事でオープンなプラットフォームのダウンロードCSV CSVファイルは、Googleドライブからデータを読み、分析した後、画面上に表示しました。しかし、CSVファイルをダウンロードするには、ネットワークからそれぞれの時間は、それがアプリケーションの実行につながる、データをロードするために、データをダウンロードする時間の必要性は、この論文では分離ストレージ、分離ストレージにダウンロードされたCSVファイルを保存するための練習を提供しますCSVファイルがある場合には、単にネットワークからCSVファイルをダウンロードしていない場合は、その後、データを読み取ります。

練習

宜蘭県政府の例を読んだ前の記事をダウンロードしてください、我々は最初のCSVファイルを読み込み、保存するための二つの方法を書いた、GoogleドライブのデータのオープンプラットフォームのCSVファイルを介して配置。

読みます

        /// 
        /// 从 Isolated Storage 读取 CSV 文件数据
        /// 
        /// CSV 文件名称
        /// 
  
  
   
   文件内容字符串
  
  
        private string ReadCsvFormIsolated(string isoStorageFileName)
        {
            string strCsvData = string.Empty;
            using (IsolatedStorageFile isolatedStorageFile = IsolatedStorageFile.GetUserStoreForApplication())
            {
                if (isolatedStorageFile.FileExists(isoStorageFileName))
                {
                    IsolatedStorageFileStream fileStream = isolatedStorageFile.OpenFile(isoStorageFileName, FileMode.Open, FileAccess.Read);
                    using (StreamReader streamReader = new StreamReader(fileStream))
                    {
                        strCsvData = streamReader.ReadToEnd();
                    }
                }
            }
            return strCsvData;
        }

保存

        /// 
        /// 保存 CSV 数据到 Isolated Storage
        /// 
        /// CSV 文件名称
        /// CSV 字符串内容
        private void SaveCsvToIsolatedStorage(string isoStorageFileName, string strCsv)
        {
            using (IsolatedStorageFile isolatedStorageFile = IsolatedStorageFile.GetUserStoreForApplication())
            {
                if (isolatedStorageFile.FileExists(isoStorageFileName))
                {
                    isolatedStorageFile.DeleteFile(isoStorageFileName);
                }
                using (var stream = isolatedStorageFile.CreateFile(isoStorageFileName))
                {
                    using (StreamWriter streamWriter = new StreamWriter(stream))
                    {
                        streamWriter.WriteLine(strCsv);
                    }
                }
            }
        }

GetHttpDocumentCallback()メソッド、プログラム選択処理CSV文字列の部分では、マウスを右クリックし、[再構築]を選択/メソッド名ProcessCsvStream法、CSVから選択されたデータ処理部を捕捉する、[方法をキャプチャ]アップ。

画像

新しいメソッド名がProcessCsvDataは、[OK]です。

SNAGHTML252e304 [7]

手続きのProcessCsvData方法:

        /// 
        /// 处理 CSV 字符串
        /// 
        /// CSV 字符串内容
        private void ProcessCsvData(string strCsvData)
        {
            using (TextReader textReader = new StringReader(strCsvData))
            {
                using (var reader = new CsvReader(textReader))
                {
                    reader.ReadHeaderRecord();

                    while (reader.HasMoreRecords)
                    {
                        var record = reader.ReadDataRecord();
                        Deployment.Current.Dispatcher.BeginInvoke(new Action(() =>
                        {
                            this.Items.Add(new ItemViewModel()
                            {
                                LineOne = record.GetValueOrNull("中文名称"),
                                LineTwo = record.GetValueOrNull("联络电话"),
                                LineThree = record.GetValueOrNull("民宿中文地址")
                            });
                        }));
                    }
                }
            }
        }

GetHttpDocumentCallbackでは()メソッド、やる前に書かれたSaveCsvToIsolatedStorageを添加する方法、[CSVファイルを保存するためには、分離ストレージにダウンロードされます]。最後にGetHttpDocumentCallbackプログラム:

        /// 
        /// 异步网络资源要求与下载
        /// 
        /// 
        private void GetHttpDocumentCallback(IAsyncResult iAsyncResult)
        {
            HttpWebRequest httpWebRequest = (HttpWebRequest)iAsyncResult.AsyncState;
            HttpWebResponse httpWebResponse = (HttpWebResponse)httpWebRequest.EndGetResponse(iAsyncResult);
            using (StreamReader responseStream = new StreamReader(httpWebResponse.GetResponseStream()))
            {
                string strCsvData = responseStream.ReadToEnd();
                if (string.IsNullOrEmpty(strCsvData))
                {
                    return;
                }

                // 处理 CSV 字符串数据
                ProcessCsvData(strCsvData);

                // 保存 CSV 数据到 Isolated Storage
                SaveCsvToIsolatedStorage("HomeStay.csv", strCsvData);
            }
        }

その後、我々はされていない場合、単にネットワークからCSVファイルをダウンロードし、CSVは、分離ストレージファイルがある場合、データが読み込まれる[Loadメソッドを持って、ロジックを記述します。]。

        /// 
        /// 建立并加入一些 ItemViewModel 对象到 Items 集合。
        /// 
        public void LoadData()
        {
            // 当 Isolated Storage 存在 CSV 文件,则读取该数据
            string strCsvData = ReadCsvFormIsolated("HomeStay.csv");
            if (string.IsNullOrEmpty(strCsvData) == false)
            {
                // 处理 CSV 数据
                ProcessCsvData(strCsvData);
            }
            else  // 如果没有的话,才从网络下载 CSV 文件
            {
                HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create("https://docs.google.com/uc?export=download&id=0B34Keu0W_LIJODdEYUhVSDZIS28");
                httpWebRequest.BeginGetResponse(new AsyncCallback(GetHttpDocumentCallback), httpWebRequest);
            }         

            this.IsDataLoaded = true;
        }

プログラムの実行は、存在しないため、分離ストレージのファイルに初めて、アプリケーションを実行するために、ビデオ・シミュレータを記録する場合、以下の手順を経て、したがって、ネットワークからダウンロードしたCSVファイルには、分析すると、表示データは、表示データ時間が非常に遅いです。アプリケーションを離れると、データが以前にダウンロードし、分離ストレージに保存されているので、再度アプリケーションを実行すると、直接には、内容を読み、その速度が非常に速くなります。


次を入力するときにロードされたアプリケーションを提供して分離ストレージにダウンロードしたCSVデータを保存

例をダウンロード

HomeStayApp.zip

宿題

Applcationバーボタンを追加するために、機能は、ユーザーがダウンロードして画面データを更新するために、ネットワークからCSVを解析した後にクリックして、分離ストレージにファイルを保存できるようにすることです。

オリジナル:大列  [Windowsの携帯電話]宜蘭の県政府データアプリケーションのためのオープンプラットフォームを開発する(2)分離ストレージにダウンロードしたCSVデータを保存し、次を入力するときにロードされたアプリケーションを提供しています


おすすめ

転載: www.cnblogs.com/chinatrump/p/11458154.html