Получить CSV-файл в базе данных области с Swift - PullRequest
0 голосов
/ 03 апреля 2019

У меня есть CSV-файл, который выглядит следующим образом

Tag1,Tag2,Tag3,
some1,some2,some3,
some4,some5,some6,

Есть ли способ программного импорта этого файла в базу данных области?

Как каждый раз, когда приложение запускает новый CSV-файлследует импортировать в базу данных области.

Tag1,Tag2,Tag3, должно быть заголовками столбцов, а some... должно быть значениями

Ответы [ 2 ]

1 голос
/ 03 апреля 2019

Мое приложение macOS импортирует содержимое файла tsv в существующий файл области.Вот моя функция, чтобы прочитать файл.

func readFileFrom(_ fileURL: URL) -> [[String]]? {
  do {
    let content = try String(contentsOf: fileURL, encoding: .utf8)
    let data: [[String]] = content.components(separatedBy: "\r\n").map { $0.components(separatedBy: "\t") }
    return data
  } catch {
    //
  }
  return nil
}

Затем я передаю возвращенные данные моему классу Realm Manager, который генерирует и добавляет новые объекты.

guard let data = readFileFrom(url) else { return }
RealmManager.write(data: data)

Для csv файлов вы можете изменить components(separatedBy: "\t") на components(separatedBy: ",").

1 голос
/ 03 апреля 2019

На данный момент не существует готового решения для программного импорта содержимого файла csv в существующий файл realm.

Вы можете использовать Realm Studio для создания нового файла области из файла CSV. Realm Cocoa Converter также можно использовать для создания нового файла области из одного или нескольких файлов CSV, однако, чтобы иметь возможность импортировать файлы в уже существующий файл области, вам необходимо изменить конвертер. Помните, что Realm Cocoa Converter поддерживает только macOS, его нельзя использовать в проекте iOS.

Или вы можете написать свой собственный код для преобразования файла csv в Realm Object s. Разобрать файл CSV довольно просто, проверить его, чтобы убедиться, что он может быть преобразован в объекты Realm, немного сложнее. Однако из JSON / plist вы можете автоматически анализировать объекты Realm, используя Codable.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...