2011-07-08 6 views
0

私は、UIPickerでCSVファイルの内容を表示するにはどうすればよいでしょうかと思いました。UIPickerでのCSVファイルの内容の表示

考え方は、ある人がUIPickerで日付範囲を選択し、その選択に基づいてUIAlertポップアップを取得することです。

おそらくいくつかのオプションがあります。データベースの作成を避けることができる単純なものがあるかもしれないと思いました。

私のCSVファイルには4つの列があります。列の1つは日付範囲の列です。

Feb 20, 1920 - Feb 7, 1921 
Feb 8, 1921 - Jan 27, 1922 
Jan 28, 1922 - Feb 15, 1923 
Feb 16, 1923 - Feb 4, 1924 
etc.... 

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

+0

ここで難しい部分は、すべての日付を解析して、ユーザーが入力した日付と比較できることです。これを毎回メモリ内で行うと、パフォーマンスの問題が発生する可能性があります。一方、メモリ内の表現を作成し、これを再利用することができます。 CSVには何行ありますか?あなたはすでにそのファイルのパーサーを持っていますか? – tonklon

+0

お返事ありがとうございます。 104行あります。ユーザは日付を入力せず、uipickerを関連する日付範囲にスクロールし、その後、日付範囲と同じ行にある別の列の値を持つUIAlertを取得します。 – hanumanDev

答えて

2

ちょうどNSStringの方法を使用して信じられないほど単純なCSVパーサを構築することができます。

あなたは、各オブジェクトは@"\n"を渡し

- (NSArray *)componentsSeparatedByString:(NSString *)separator 

を使用してファイル内の行を表す配列を取得するために文字列を分割することができ

+ (id)stringWithContentsOfFile:(NSString *)path encoding:(NSStringEncoding)enc error:(NSError **)error 

を使用してCSVの内容を読み込むことができますセパレータとして

この配列を作成したら、それをループして同じ方法を使用して、各行を分割してを渡すことができますを区切り記号()に置き換えてください。ただし、あなたの場合は区切り文字が別のものに見えるかもしれませんが、あなたの列はコンマで区切られていますか?

+1

上記のコードでは、@ "、"の代わりにカラムセパレータが@ "\ t"(タブ)になる可能性が高いと思います。しかし、そうでなければ、これは行く方法と思われる。 – tonklon

+0

あなたは正しいです。あなたのコメントを反映するように私のコードを更新しました。 –

関連する問題