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]です。
手続きの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データを保存し、次を入力するときにロードされたアプリケーションを提供しています