• ベストアンサー

100行のカンマ区切りのデータ

100行のカンマ区切りのデータがあります。 たとえば10行目のみ上書きしたいのですが 任意の行を上書きする際はどのような手段を使うのですか? やはりfopen fput fcloseが一般的でしょうか?

noname#20805
noname#20805
  • PHP
  • 回答数1
  • ありがとう数1

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

  • ベストアンサー
  • moon_night
  • ベストアンサー率32% (598/1831)
回答No.1

全てのデータを読み取り、任意の部分だけを変更して全てを上書きする。 $data = file("file.csv"); // ファイル読み込み。 $data[9] = "deta,data,data,data\n"; // 10行目を書き換え // 記録 $file = fopen("file.csv","w+"); for($i=0; $i<count($data); $i++) { fwrite($file,$data[$i]); } fclose($file);

noname#20805
質問者

お礼

よくわからなくて、困っていました。 助かりました(#^.^#) 有難うございました。

関連するQ&A

  • 行にある文字をカンマ区切りでひとつのセルに

    エクセルで次のようなデータがあります "a","b","c","d" "1","","3","4" "1","2","","4" "","2","3","4" このデータに対して 2行目から4行目のe列に その行に入っている数字をカンマ区切りで表示させたい 下記のイメージです "a","b","c","d","e" "1","","3","4","1,3,4" "1","2","","4","1,2,4" "","2","3","","2,3" ダブルコーテーションマーク"はついていませんが 質問時、表が崩れるのでこれをつけさせてもらいました 上記のイメージですがデータ的には 900行、50列ほどあります 関数かVBAでやれる方法を教えていただきたいのですが・・・ 関数・VBAについては昔やったことがある程度です 時間をかけて何かをみながら・・・やれる程度のものです ヒント等いただければ幸いです

  • カンマデータの任意行の入れ替える方法

    カンマデータの任意行の入れ替える方法 データファイルのデータはカンマ区切りで管理していますが、自作の管理画面から「↑(アップ)/↓(ダウン)」でデータ行を取得し、データ内で前後で入れ替え再度書き込みたいと思いますが、参考になるようなロジックやサンプルになるような参考を紹介しているサイト教えてください。(サイト検索ではなかなか見つかりません) 例えばこんなデータがあるとして、 猫,白色,ハブ 犬,黒色,ピア 猫,白色,キュー 猫,茶色,ハーフ (1)↓(ダウン)パラメータ取得で  猫,白色,ハブ  猫,白色,キュー  (*)  犬,黒色,ピア   (*)  猫,茶色,ハーフ (移動行のパラメータ取得) ↓ (データ入れ替え処理???? ここが分かりません。) ↓ (データ保存)

    • ベストアンサー
    • PHP
  • csvカンマ区切りデータに=""を入力したい

    csvカンマ区切りデータに、例えば、 ="00",="123",="456" といった感じで入力したいのです。 大元のcsvカンマ区切りデータで、 00,123,456 が入っているので、これをExcelを使ってText変換や書式設定で文字列にして みたのですが、csvデータとしては=""としては保存されていないのです。 どなたか、こういった型変換に詳しいかたご連絡をお待ちしています。

  • csvファイルを上書き保存でカンマ区切りされない

    csvファイルのセルに文字を入力して、「上書き保存」をすると ”XXXXX には、CSV(カンマ区切り)と互換性のない機能が含まれている可能性があります。この形式でブックを保存しますか? ” というメッセージが出たので「はい」をクリックして上書き保存しました。 再度そのファイルを開いてみると、カンマ区切りされておらず、各セル内の文字が結合されていました。 そこで質問なのですが、 試しに上記の上書き保存をせず、右上の「ウィンドウを閉じるボタン(×ボタン)」をクリックして、 「保存しますか?」との問いに「はい」と答え、 次に”XXXXX には、CSV(カンマ区切り)と互換性のない機能が含まれている可能性があります。この形式でブックを保存しますか? ” との問いに「はい」と答えた形で保存をすると、きちんとカンマ区切りされていました。 なぜ上記の方法では正常にカンマ区切りされなかったのでしょうか? どうぞよろしくお願いいたします。

  • カンマ区切りのデータを配列に読み込みたい

    趣味でゲームを製作しているのですが、その中で、 マップデータのテキストファイルを二次元配列に読み込むようにしています。 データファイルは、カンマ区切りで、例えば、 1,2,3,4,5 5,4,3,2,1 1,2,3,4,5 というようになっています。 fp=fopen(path,"r"); for(j=0; j<3; j++) { for(i=0; i<5; i++) { char c; do{c=(getc(fp));} while(c==','||c=='\n'||c=='\r'); map[j][i] = c-'0'; } } 配列の各要素に読み込む中身が、0~9など1文字に限られている場合、このgetc()を使う方法で問題ないのですが、0~255など、文字数がまちまちになると、1文字を取り出すgetc()ではできなくなってしまいます。 これがどうすれば可能になるのか、情けないのですがちょっと思いつかないので、アドバイスを頂ければ幸いです。

  • PERL カンマ区切り 一致行削除

    教えてくださいm(_ _)m 最初に目的を書きます・・・ ~test.txt~ 1,aaa,eee,ttt 3,eee,eee,yyy 5,ttt,yyy,eee 2,yyy,bbb,qqq ↓ 5,ttt,yyy,eee 2,yyy,bbb,qqq ~~~~~~~~~~ 例1)、カンマ区切り3列目が「eee」 の行を全て削除(完全一致) 例2)、カンマ区切り3列目が「e」を含む 行を全て削除(部分一致) というふうにしたいのですが、 どのようにするのかわからないです・・・ 現在下記のように とりあえず1行目(0番目)を削除するとこまできました。 #! /usr/bin/perl $TEST = 'test.txt'; open(FILE, "<$TEST"); eval{ flock(FILE, 1) }; @DATA = <FILE>; close FILE; $NO = 0; splice @DATA, $NO, 1; open(FILE, ">$TEST"); eval{ flock(FILE, 2) }; print FILE @DATA; close FILE;

    • ベストアンサー
    • Perl
  • カンマ区切りCSVファイルをVBAで読み込みたい

    こんにちは。EXCELのVBAに詳しい方、どうか教えてください! カンマ区切りCSVファイルをEXCELに読み込みたいのですが、 CSVファイルのデータが金額のため、データ自体にもカンマが含まれていて、 金額のカンマでも分割されてEXCELのセルに収まってしまいます。 データの区切りのカンマと、金額のカンマを区別して読み込む良い方法はないでしょうか。 とても困っているので、お解りになる方どうかご回答をお願いいたします。 ・CSVファイルのデータ   1,000 , 2,000 , 1,500 , 3,000 , 1,000 , 2,500 , 2,000  ↑金額のカンマでデータが分割されないように読み込みたいのですが・・・

  • excel2003 選択セル内データ→1個のセルにカンマ区切りデータ

    excel2003で、複数の選択セル内データを1個のセルにカンマ区切りデータに変換する操作をご教示願います。 具体的には、 「データ」メニューの「区切り位置」で、1つのセル内にカンマ区切りされた複数データを、データ数分のセルに変換可能ですが、これと逆の変換方法を知りたいのです。 可能であれば、VBA以外の方法が良いのですが・・・ ご教示よろしくお願い致します。

  • VBA でコンマ区切りのデータを取り込む方法

    こんにちは、VBAでお聞きします。 DIM Data as String で Data=12,45,3,68,5となっているとき コンマ区切りで仕切られた値を一つずつ 取り出して、MsgBox関数で、それぞれの 値を表示したいのです。 そのためには、それぞれの値と、値が いくつあるかを知る必要があります。 その方法を教えて下さい

  • カンマ区切りのデータを処理する方法

    よろしくお願いします。 vb6.0 + oracle9i(oo4o)で開発しています。 元データの中には、カンマ区切り形式で全角・半角・ブランクありの可変長です。(テキストデータではありません) 例えば、 111bb,22222,333333,44bb 11,234bb,33bb,44     見たいなデータです。 カンマの数は変わりませんし、各項目自体にカンマはありえません。 この各項目を個々に取り込んで処理したいのですが... MID関数(MID$,MIDB)など色々試してみるのですが 対応しきれなくなってしまいました。 各項目に対してTRIMをかけて処理をしたいのですが、 良い方法はあるのでしょうか? カンマ間を一つの項目として判断でき、 TRIMがかけれれば一番よいのですが... 文字を一文字ずつ読んでいって、カンマを判断するしかないのでしょうか?

専門家に質問してみよう