thieumao

Read file YML

Dec 26th, 2016
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Swift 3.12 KB | None | 0 0
  1. //
  2. //  ViewController.swift
  3. //  ReadYml2
  4. //
  5. //  Created by Nguyen Van Thieu B on 12/22/16.
  6. //  Copyright © 2016 Thieu Mao. All rights reserved.
  7. //
  8.  
  9. import UIKit
  10.  
  11. class ViewController: UIViewController {
  12.    
  13.     override func viewDidLoad() {
  14.         super.viewDidLoad()
  15.         let url = Bundle.main.resourceURL!
  16.         do {
  17.             let urls = try FileManager.default.contentsOfDirectory(at: url, includingPropertiesForKeys:[], options: FileManager.DirectoryEnumerationOptions.skipsHiddenFiles)
  18.             var i = 0
  19.             for url in urls {
  20.                 if url.pathExtension == "yml" {
  21.                     do {
  22.                         i = i +  1
  23.                         print(">>>>>> ",i," ", url.lastPathComponent)
  24.                         let text = try String(contentsOf: url, encoding: String.Encoding.utf8)
  25.                         let myStrings = text.components(separatedBy: .newlines)
  26.                         var j = -3
  27.                         for myString in myStrings {
  28.                             j = j + 1
  29.                             if (myString.characters.count == 0) {
  30.                                 continue
  31.                             }
  32.                             switch j {
  33.                             case -2, -1, 0:
  34.                                 print(j, ":: ", self.removeEndString(myString))
  35.                                 break
  36.                             default:
  37.                                 let myCutString = self.cutString(myString)
  38.                                 print(j, ":: ", myCutString.first, " - ", myCutString.second)
  39.                                 break
  40.                             }
  41.                         }
  42. //                        print(text)
  43.                     }
  44.                     catch {
  45.                         print("catch i=", i, " ", url.lastPathComponent)
  46.                     }
  47.                 }
  48.             }
  49.         } catch {
  50.             print(error)
  51.         }
  52.        
  53.     }
  54.    
  55.     func removeEndString(_ myString: String) -> String {
  56.         let trimmedString = myString.trimmingCharacters(in: .whitespaces)
  57.         return trimmedString.chopSuffix()
  58.     }
  59.    
  60.     func cutString (_ myString: String) -> (first: String, second: String) {
  61.         let trimmedString = myString.trimmingCharacters(in: .whitespaces)
  62.         let myStrings = trimmedString.components(separatedBy: ":")
  63.         if (myStrings.count == 2) {
  64.             let firstString = myStrings[0].trimmingCharacters(in: .whitespaces)
  65.             var secondString = myStrings[1].trimmingCharacters(in: .whitespaces)
  66.             secondString = secondString.chopSuffix()
  67.             secondString = secondString.chopPrefix()
  68.             return (first: firstString, second: secondString)
  69.         }
  70.         return (first: "", second: "")
  71.     }
  72.    
  73. }
  74.  
  75. extension String {
  76.    
  77.     func chopPrefix(_ count: Int = 1) -> String {
  78.         return self.substring(from: self.characters.index(self.startIndex, offsetBy: count))
  79.     }
  80.    
  81.     func chopSuffix(_ count: Int = 1) -> String {
  82.         return self.substring(to: self.characters.index(self.endIndex, offsetBy: -count))
  83.     }
  84.  
  85. }
Advertisement
Add Comment
Please, Sign In to add comment