2012-05-12 5 views
2

私はHTML5を使ってWindows 8アプリケーションを開発しています。アプリケーションは、新しいイベントを作成するためにユーザーデータを必要とします。イベントには、タイトル、説明、日付、時刻があります。ユーザーがフォームに入力した後にこのデータをJSON形式のテキストファイルに保存して、次回ユーザーがアプリケーションを開いたときにそのデータを表示できるようにします。Windowsのテキストファイルにデータを書き込む8

JSONオブジェクトをテキストファイルに書き込むさまざまな方法がありますが、テキストファイルの最後にデータを追加することについては何も見つかりません。基本的には、私は1つのevents.txtからデータを読み込んで表示し、ユーザーがイベントを追加した後に同じ.txtにイベントを追加したい。

は私のevents.txtこの

[ 
     { 
     "key": "event1", 
     "title": "title1", 
     "description": "description1", 
     "date": "<sample date>", 
     "time": "<sample time>", 
     "backgroundImage": "../images/logo.png" 
     } 
] 

私は私はと助けの任意の種類が大幅に高く評価されます

WinJS.xhr({ url: "../data/events.txt" }).then(function (xhr) { 
     var events = JSON.parse(xhr.responseText); 

     events.forEach(function (feed) { 
      event.push({ 
       group: feed, 
       key: feed.key, 
       title: feed.title, 
       description: feed.description, 
       date: feed.date, 
       time: feed.time, 
       backgroundImage: feed.backgroundImage 
      }); 
     }); 
    }); 

次のコードを使用して、このファイルからイベントを読んでいるように見えますここで締め切りになっている。

ありがとうございました。

+0

これが私がやっていることをする最善の方法ではないと思うなら、進め方を教えてください。私が言ったように、どんな種類の助けにも感謝します。 – Harjoben

答えて

4

File Access sampleConsumer Previewにお探しですか?

私があなたの質問を正しく理解していれば、私はあなたが使いたいと思う重要なAPIがあると思います。 FILEIO APIへ

// Create a file 
var eventFile; 
Windows.Storage.KnownFolders.documentsLibrary.createFileAsync("event.txt", Windows.Storage.CreationCollisionOption.openIfExists).done(function (file) { 
     eventFile = file; 
    }); 

// Write Text to a file 
Windows.Storage.FileIO.writeTextAsync(eventFile, JSON.stringify(yourJSONObject)); 

// Append Text to a file 
Windows.Storage.FileIO.appendTextAsync(eventFile, JSON.stringify(yourJSONObject)); 

詳細参照:また http://msdn.microsoft.com/en-us/library/windows/apps/hh701440.aspx

、なぜあなたはあなたのイベント情報を格納するlocal storageindexedDBの使用を検討していませんか?

+0

返事をありがとう。私はFile Accessのサンプルを読んでいました。私が理解しているところでは、アプリケーションが開かれるたびにファイルが作成されます。私はAPIをもう一度試しています。ユーザーがアプリを開くたびに、更新されたデータを利用できるようにしたい。 – Harjoben

+0

@ user870681私の経験から、データは永続的です。あなたがそれを取り除かない限り、それはそこにあるはずです。ファイルの上書きを避けるために 'Windows.Storage.CreationCollisionOption.OpenIfExists'を使うことができます。 –

+0

私はそれ以来これを試してきましたが、アプリケーションはクラッシュし続けました。その後、私はWindows.Storage.ApplicationData.current.local.createFileAsync( "events.txt"); ' これを使用してファイルにデータを書き込むことができましたが、現在は読み込みに問題があります。何か案は?私は完全なコードを投稿したいですか? – Harjoben

関連する問題