0

フォーマットに付属のcsvがあります:

a1、a2、a3、「a4、a5」、a6

, を含むフィールドのみに引用符が付きます

Objective-C を使用して、これを簡単に解析するにはどうすればよいですか? 会社のポリシーとして、オープンソースの CSV パーサーを使用しないようにしています。ありがとう。

4

2 に答える 2

1

完全なcsv解析アルゴリズムはSOの範囲を超えているというrmaddyに同意しますが、これに取り組む1つの可能な方法を次に示します。

  1. 行全体をNSString
  2. を反復処理し、NSString各文字を別の文字列に押し戻します。
  3. カンマが検出された場合、格納された文字列を保存し、カンマを無視して新しい空白文字列を作成します。
  4. 行末まで繰り返します。
  5. 二重引用符が見つかったかどうかを識別するフラグを設定します。フラグが設定されている場合は、手順 3 を無視します。2 番目の引用符のセットが見つかったら、フラグの設定を解除し、以前と同様に続行します。

これは一般に、(それぞれのネイティブ文字列クラスを使用する) 任意の言語に適用でき、そのようなアルゴリズムは、完全な CSV パーサーの小さな基盤を形成できます。ただし、この特定のケースでは、これ以上の機能は必要ない場合があります。

サンプル コードについては、この CSV 関連の質問に対する私の回答をご覧になることをお勧めします。これは、Objective-C で文字列を分割して格納する方法を示しています。

于 2013-02-27T05:19:30.533 に答える