質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Swift Playground

Swift Playgroundは、Swiftをインタラクティブに習得できるiPad向けのアプリケーション。コーディングの知識は一切必要なく、Swift Playgrounds上でプログラミングしたコードによりドローン・ロボットを自在に動かすことが可能です。

ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

データ構造

データ構造とは、データの集まりをコンピュータの中で効果的に扱うために、一定の形式に系統立てて格納する形式を指します。(配列/連想配列/木構造など)

保存

保存(save)とは、特定のファイルを、ハードディスク等の外部記憶装置に記録する行為を指します。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

1回答

1561閲覧

swiftでのDocumentsフォルダ内のファイル読み込みについて

ousama

総合スコア3

Swift Playground

Swift Playgroundは、Swiftをインタラクティブに習得できるiPad向けのアプリケーション。コーディングの知識は一切必要なく、Swift Playgrounds上でプログラミングしたコードによりドローン・ロボットを自在に動かすことが可能です。

ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

データ構造

データ構造とは、データの集まりをコンピュータの中で効果的に扱うために、一定の形式に系統立てて格納する形式を指します。(配列/連想配列/木構造など)

保存

保存(save)とは、特定のファイルを、ハードディスク等の外部記憶装置に記録する行為を指します。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2020/08/30 08:25

編集2020/08/30 08:36

Swiftでのアプリケーション開発をしています.

Documentsフォルダ内に保存されているデータをtable_viewに出力することができています.
その出力したそれぞれのデータを押すとファイルを読み込み,出力したいのですが方法が分かりません.

どのようにすればできるかなど教えていただきたいです.
よろしくお願いいたします.

import UIKit class DataViewController: UIViewController, UITableViewDelegate, UITableViewDataSource{ let directoryPath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] var csvFileNames = [String]() override func viewDidLoad() { super.viewDidLoad() getCsvFileNames() } func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return csvFileNames.count } //tableViewにファイル名の表示 func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell: UITableViewCell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) let csvFileName = csvFileNames[indexPath.row] //表示の.csvの文字を削除 let endIndex = csvFileName.index(csvFileName.endIndex, offsetBy: -4) let truncated = csvFileName.substring(to: endIndex) cell.textLabel!.text = String(truncated) return cell } //タップしたときの処理 func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { // タップされたセルの行番号を出力 print("(indexPath.row)番目の行が選択されました。") } //ファイル名の取得 func getCsvFileNames(){ var tmp: [String] { do { return try FileManager.default.contentsOfDirectory(atPath: directoryPath) } catch { //エラーの処理 return [] } } csvFileNames = tmp } //ファイルの削除 func deleteCsvFile(filePath:String){ do { try FileManager.default.removeItem(atPath: filePath) } catch { //エラーの処理 print("Failure to Delete CSV") } } //横スワイプでデータを削除 func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCell.EditingStyle, forRowAt indexPath: IndexPath) { if editingStyle == .delete { let deleteCsvPath = directoryPath + "/" + csvFileNames[indexPath.row] deleteCsvFile(filePath: deleteCsvPath) getCsvFileNames() // call before deleting rows tableView.deleteRows(at: [indexPath], with: .fade) tableView.reloadData() } } //前の画面に戻る @IBAction func Buck_Button(_ sender: Any) { dismiss(animated: true, completion: nil) } }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

その出力したそれぞれのデータを押すとファイルを読み込み,出力したいのですが方法が分かりません.

tableView(_:indexPath:) 内の処理

let csvFileName = csvFileNames[indexPath.row]

で「データ名が表示された行のファイル名」を取得していることがわかっていますので、

Swift

1//タップしたときの処理 2func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { 3 // タップされたセルの行番号を出力 4 print("(indexPath.row)番目の行が選択されました。") 5}

の処理で

(1) 目的とするファイル名を取得し、
(2) そのファイル名を元にファイルを開き、
(3) 中身を表示する

ように処理を行えば良いのでは無いでしょうか。
あとは必要に応じて新しい ViewController を表示させたり、画面を遷移させたり、データの受け渡しをするだけかと思います(そこまではご質問に書かれていませんが、たぶんそういうことかと思います)。

投稿2020/08/31 01:15

TsukubaDepot

総合スコア5086

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問