2016-04-16 8 views
0

私はiOS/Swiftで.txtファイルを読んでいます。テキストファイルからすべての情報を取得します。問題は、ユーザー名を取得して配列に格納することだけです。今は、.txtファイルのすべてのデータを文字列に格納していると思います。これを正しく解析することで、配列内にユーザー名しか持たないのですか?ここでSwiftで特定のデータを配列に解析する方法は?

私のコードは私のテキストファイル形式が

if let filepath = NSBundle.mainBundle().pathForResource("myfile", ofType: "txt") { 
     do { 
      let contents = try NSString(contentsOfFile: filepath, usedEncoding: nil) as String 
      print(contents) 
     } catch { 
      // contents could not be loaded 
     } 
    } else { 
     print("UNABLE TO FIND TEXT FILE"); 
    } 

です:

ユーザー姓

ASFジョン・スミス

adfkhのキャリーは、ここで

+2

これは、アプリケーションで提供したい固定ファイルの場合は、すべてのデータをplistファイルに入れる方が簡単です。次にplistファイルを直接配列にロードすることができます。 – rmaddy

+2

テキストファイルはどのように見えますか? –

+1

あなたの文章の形式を教えない限り、あなたを助けることはできません。 rmaddyのplist使用の提案は良いです。そうすれば、配列、辞書、文字列、整数などのネイティブiOSデータ構造にファイルを直接読み込むことができます。 –

答えて

0

をアンダーAであります高次関数を用いた解法うまくいけば、これはあなたのために働く。

let text = "tj thomas jeffereson \nbf benjamin franklin\ngw george washington" 


let usernames = text.characters 
    .split { $0 == "\n" } 
    .map { String($0) } 
    .map { String($0.characters.split(" ")[0]) } 

print(usernames) 

出力:結果を通じて

["tj", "bf", "gw"] 

ループ:

for user in usernames { 
    print(user) 
} 
+0

これは私が必要としていたものです。ありがとうございます – Yusha

+0

どのようにその配列(ユーザー名)をループするのですか? (int i = 0; i Yusha

+0

あなたはそのようなループをしたくありません。 – ryantxr

0

編集:

一つの方法、あなたは情報を保存できるの.plistファイルを使用してソリューションを追加.plistファイルに保存します。 UserInformation.plistの名前で新しいの.plistファイルを追加する

  1. 押してコマンド+ N(あなたが好きな名前でユーザ情報を置き換えることができます。)及び

enter image description here

以下のように編集
  1. 次に、ユーザー名を配列に格納できます。 JSONは通常、クライアントとサーバ間の通信に使用されているものの

    if let path = NSBundle.mainBundle().pathForResource("UserInformation", ofType: "plist") { 
        if let data = NSArray(contentsOfFile: path) { 
         let userName = NSMutableArray.init(capacity: 1) 
         for dict in data { 
          userName.addObject(dict.valueForKey("User")!) 
         } 
         // Now user names are stored into a array 
        } 
    } 
    

もう一つの方法は、あなたはまた、ローカル.jsonファイルに情報を保存することができます。

フォームiOS5、AppleはJSONの解析をサポートするAPIを提供しました。

  1. (あなたが好きな名前でのUserInfoを置き換えることができます。)以下の内容のJSONファイルを作成し、名前UserInfo.jsonでそれを保存するためにあなたが好きなテキストエディタを使用し

    [ 
        { "User":"asf", "FirstName":"john", "LastName":"smith"}, 
        { "User":"adfkh", "FirstName":"carrie", "LastName":"underwood"} 
    ] 
    
  2. 追加あなたのプロジェクトに

  3. これで、ユーザー名を配列に格納できます。 JSONの詳細については

    if let path = NSBundle.mainBundle().pathForResource("UserInfo", ofType: "json") { 
        if let data = NSData(contentsOfFile: path) { 
         do { 
          let jsonData = try NSJSONSerialization.JSONObjectWithData(data, options:NSJSONReadingOptions.MutableContainers) as! NSMutableArray 
          let userName = NSMutableArray.init(capacity: 1); 
          for dict in jsonData { 
           userName.addObject(dict.valueForKey("User")!) 
          } 
          // Now user names are stored into a array 
         } catch { 
          // report error 
         } 
        } 
    } 
    

、あなたはwww.json.orgを訪問することができます。

関連する問題