• ベストアンサー

Cocoa+Objective-Cで、CSV出力をする方法

Objectが持っているNSStringの内容をCSV(またはただのTEXT形式)でファイルに保存する方法どなたかご存じないですか?

質問者が選んだベストアンサー

  • ベストアンサー
  • koki_m
  • ベストアンサー率83% (45/54)
回答No.2

セーブ・パネルはNSSavePanelクラスというのがあります。 - - - - - - - - - - - - - - - - - - - - NSString *wantSave = @"test"; // 保存したい文字列 NSSavePanel *panel = [NSSavePanel savePanel]; // セーブ・パネルを取得 [panel runModal]; // セーブ・パネルを表示 [wantSave writeToFile:[panel filename] atomically:YES]; // 指定したパスに保存 - - - - - - - - - - - - - - - - - - - - やりたいことはこのような感じでしょうか? NSSavePanelは他にもいろいろ設定できるので、APIドキュメント(英語)を参考にしてみてください。

nak205
質問者

お礼

ありがとうございます。 そうです、こんな感じです。 やってみます。

その他の回答 (1)

  • koki_m
  • ベストアンサー率83% (45/54)
回答No.1

こんにちは。NSStringのメソッドに、 - (BOOL)writeToFile:(NSString *)path atomically:(BOOL)flag というのがあります。使ったことは無いですけど、NSStringのメソッドなので標準テキストで書き出されると思います。 CSV形式の方はNSStringで自分で作るしかないかもしれません。

nak205
質問者

補足

早速ありがとうございます。 あるんですよね、writeToFileが。 ただこれだとNSCoderをつかって保存する時みたいに、保存用のダイアログボックス(パネル?)が出てこないような気がするんです。 要は、エクセルでCSV保存するときみたいに、形式を選んで保存を実現したいんですけど。 あとは「ファイル書き出し」メニューから保存みたいにしたいんですよ。 もしかしたら、writeToFile+パネルを使って自分で作れるんでしょうか?

関連するQ&A

  • Excel をCSVで出力できません。

    OS/Win7 Excel 2007  Excel表をCSV形式で出力したい。「ファイル名保存」「ファイルの種類―CSV」を指定すると、下記メッセージが出て、CSV形式で出力できません。 「(出力ファイル名.CSV)には互換性のない機能が含まれている可能性があります。」 単にテキストデータとしてなら出力できますが、このテキストファイルからOPEN文で読み込むと 1レコード全体を読み込めません。解決方法を教えてください。 同窓会の宛名書きを今週中にもしなければなりませんので、大変困っています。よろしくお願いします。

  • CSV出力

    CSVファイルの中身を比較し該当の行だけを読み込み、別ファイルに記述する方法を調べています。 オブジェクト.ReadLineで読み込むことは出来ており、その読み込んだ行を別ファイルに追記していく方法を教えてください。もしくはアドバイスでも構いませんのでお願い致します。

  • CSVのMIMEタイプ

    PHPを使用してCSVの入力チェックを行おうとしています。 エクセルファイルの内容をcsv形式で保存していますが、EXCEL2003で保存したcsvはtext/plainとしてMIMEタイプが認識されますが、EXCEL2007で保存するとMIMEタイプがapplication/octet-streamとして認識されてしまいます。 1.エクセルファイルをエクスプローラー等から名前の変更で拡張子ごと無理矢理csvに変更することが想定されています。 その場合は当然入力チェックではじきたいのですがMIMEタイプでtext/plain text/csv以外はじくということが出来なくて困っています。 何かPHP側でCSVかどうかを確認する方法はありますでしょうか? (エクセルファイル以外にもテキスト形式ではない場合はエラーとしたいです。) 1行取り出して、指定カラム分あるかのチェックは別にしていますが、上述の通り、EXCELを無理に直したのか、純粋に中のデータの列定義がおかしいのかは分けてエラーを表示したいと考えています。 2.1が難しいという場合エクセル側でMIMETYPEを変更することはできないでしょうか? 現在は名前を付けて保存で、拡張子をcsvを選択して保存しています。 (2007以降でバージョンは様々あります。)

    • 締切済み
    • PHP
  • Objective C(iPhone SDK)でテキストファイルから一

    Objective C(iPhone SDK)でテキストファイルから一行毎データを読み出す方法を教えてください. つい最近Objective-Cを始めた初心者です. サーバ上にあるテキストファイルを読み込み,一行ごとデータを取り出し,その一行ずつ取り出したデータをTableViewの項目として表示したいと思っています.現在コンパイルが出来ているのは, NSString* text; NSString* path = @"(URL)test.txt"; NSError* error; text = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:&error]; までです.また,読み込むテキストファイルの内容は 0001 0002 0003 0004 [EOF] となっています.このデータの一行ずつを配列に格納する方法を教えてください,よろしくお願いします.

  • CSV形式のファイル名をCSVの先頭に入れる方法

    EXCEL CSV形式のファイル名をCSVファイルの先頭に入れるたいのですが,EXCELのマクロやBVなどで簡単にできるよい方法はないでしょうか。 例えば, ファイル名:  123_001.csv 123_001.csvの内容:  氏名,年齢  山田,25歳    ↓ の123_001.csvを  コード,氏名,年齢  123_001,山田太郎,25歳 というデータにしたいのです。 できれば,フォルダ内に保存されているCSVファイルを一括で処理したいのですが...。 例) 123_001.csvの内容:  氏名,年齢  山田,25歳 123_002.csvの内容:  氏名,年齢  吉田,30歳 123_003.csvの内容:  氏名,年齢  鈴木,50歳    ↓ 123_001.csvの内容:  コード,氏名,年齢  123_001,山田,25歳 123_002.csvの内容:  コード,氏名,年齢  123_002,吉田,30歳 123_003.csvの内容:  コード,氏名,年齢  123_003鈴木,50歳 よろしくお願いします。

  • CSVファイルの保存方法をお教えください。

    エクセルでCSVファイル保存するとき下記のようなメッセージがでますが この時はいをマクロで選択したいのですが通常の保存方法だと 年月日の順序が変わってしまうことが起こり困っています。 下記のようなメッセージがでたときマクロで[はい]としたいのです。 よろしくお願いいたします。 ○○○.csvには、CSV(カンマ)と互換性のない機能が含まれている可能性があります。 ・このまま保存するには、[はい]をクリックします。 ・機能を保存するには、[いいえ]をクリックしてから、最新のExcel形式で保存します。 ・失われる可能性がある内容については、[ヘルプ]をクリックしてください。

  • 筆まめ12のcsv形式出力を教えてください

    筆まめ12の住所録をcsv形式で出力して保存したいのですがやりかたがどうしてもわかりません。 ご存知の方どうぞお教えください。

  • csvファイルでの出力について

    C言語初心者です。 プログラミングにおいて質問なのですが、csvファイルを読み込み、 そのデータを用いて計算し、csvファイルで出力するという問題なのですが、C言語においてcsvファイル形式で出力するにはどのような方法がありますか? 補足:ラベル行に全角文字を入力しないといけません。

  • CSV出力について

    csvファイルについて質問です。 新しく購入したパソコンでCSVファイルを作成しようとしたら メモ形式でしか表示されません>< 過去に使用していたパソコンでは拡張子をCSVにするだけで カンマ区切りのデータはダブルクリックして開いたら自動的にCSVファイルとして表示されていました。 現状は右クリックでプログラムから開くでエクセルを選ばないといけません。 自動で認識してくれるようにするにはどこで設定したらいいですか?

  • objective-c テキストファイルのカウンタ

    ■環境:xcode4.2 ■iOS:5.1 DocumentDirectoryに保存した テキストデータを利用した、 カウンターを制作しようとしております。 現状、テキストファイルから数字を読み出し、 1数値を足して、上書き保存するカウンターを試していますが、 結果蓄積されるテキストファイルは「1」になって、 以降2 3 ~と増えずに、思った動作をしておりません。 私は経験が浅く基本的なところが間違えているかもしれません。 どなたか、こちらの具体的な解決方法を ご教示いただけますでしょうか? よろしくお願いいたします。 //カウント テキスト読み込み NSArray *pathcount = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *count_moto = [[pathcount objectAtIndex:0]stringByAppendingPathComponent:@"count.text"]; //カウント加算 int count = [count_moto intValue]; int countplus = count++; NSString *fixcount = [NSString stringWithFormat:@"%d",countplus]; //カウント テキスト書き込み [fixcount writeToFile:count_moto atomically:YES encoding:NSUTF8StringEncoding error:NULL];