• 締切済み

データの書き換え

今、テキストファイル(data.txt)に 1,あ,10 2,い,15 3,う,10 というデータが入っています。 今、この中の2番目ののデータの15を20にしようとしています。 ところが2,い,20という内容は入るのですが、2,い,15は残ってしまいます。どうすれば消えるのでしょうか?

  • CGI
  • 回答数1
  • ありがとう数0

みんなの回答

  • ttk
  • ベストアンサー率33% (1/3)
回答No.1

単純なのは、 1行毎を配列に格納していって、 変更したい場所を変更し、 データファイルを一旦空にしてから、 配列の全てを各行に書いていけばいいでしょう。

関連するQ&A

  • 配列データの書換え

    お世話になっております。 タイトルにある「配列データの書換え」ですが、あるデータ用ファイル(data.txt)というのがあり、 2009-07-07 ○○@○○.com たけし no 2009-07-07 △△@○△.net ゆみこ no 2009-07-08 ○△@□○.org ひろし ok ※全角スペースの箇所は、タブ区切りとなっています。 と構成されているファイルを呼び出し、条件にて処理を行いたく、呼び出したデータ(data.txtのデータ)を配列にし、 for($i;$i<count($datafile);$i++){  $data = explode("\t", $datafile[$i]);   if($data[3] == "ok"){//ok,noだけではなく、他の条件も含めて条件処理を行っている    $str = "no";    $up_data[] = $data[0]."\t".$data[1]."\t".$data[2]."\t".$str;   } } とこんな感じで記述してみました。 これは、if文の中で条件が合致していたら、名前の後(data.txt)にある「no」を「ok」とし、 その書換えたデータをもとに、data.txtをも上書きしたいと考えているのですが、 この方法だと、data.txtのデータが増えて来たとき、効率が悪いように思えてなりません。 上記のような流れの処理を行い、元のファイルのデータを処理&上書きするもっと効率のよい スクリプトはどんな感じになるのでしょうか。 上手く説明できずに、また説明が不十分なところがあり恐縮ですが、アドバイスのほど頂戴出来れば幸いです、 宜しくお願いいたします。

    • ベストアンサー
    • PHP
  • ファイル操作について、テキストファイルの書き換え

    よろしくお願いします。 データファイルAからデータを取得して、テキストファイルBの内容の一部を取得したデータで書き換えるという操作を行うプログラムを作りたいです。 具体的には、 データファイルA[A.txt]の中身 111 222 333 444 テキストファイルB[B.txt] 文字列1="123" 文字列2="234" 文字列3="345" 文字列4="456" というような二つのファイルを読み込み、B.txtの""で囲まれた部分を、A.txtで取得したデータで置き換えるような操作を行いたいのですが・・。 使用する言語としてはスクリプト言語であるperl、もしくはプログラム作成経験があるCを使用しようと思っています。(perlは未経験で入門書を読んでいるレベル)

    • ベストアンサー
    • Perl
  • テキストデータに関して

    お世話になっております。 PHPにてwebアプリケーションを作っており、その中でMySqlなどのDBを使用せず、保存すべきデータは、テキストファイル(.txt)を用いているのですが、URLでそのテキストファイルを直接読み込むと、当然ながらファイルの内容を読まれてしまいますが、ファイルの内容を読まれないようにする設定などはあるのでしょうか? 具体的には・・ .txtではなく、他の拡張子に変更することで、.txt同様の構造が作れるのであれば、それに越したことないが、その場合、ファイルの生成・内容書込みなどを行うPHPのソースは、単に拡張子を変更するだけで良い?また、その.txtに代わる拡張子は? .htaccessなどを用いてファイルの内容を外部から参照できなくする設定があると耳にしたことがあるが、読み書き可能としているファイル(属性606に設定)でも、.htaccessの設置は不具合はないのか? などです。これまでファイルの読み込み・書込みなどをものは作成したことが無く、お恥ずかしい質問かと思いますが、アドバイスなど頂戴できれば幸いです。 お忙しい中恐縮ですが、宜しくお願い申し上げます。

    • ベストアンサー
    • PHP
  • テキストファイルのデータの追加

    二つのテキストファイルを結合というより新規のデータだけを追加したいのですが、そのようなコマンドはあるのでしょうか? 今は copy a.txt+b.txt c.txt copy c.txt b.txt を動かした後、テキストbを開いてテキストaとテキストbの重複しているデータを手作業で消しています。 また、上の2行のコマンドを1行にすることは可能でしょうか?

  • データ抽出のご質問

    下記のようなことができるバッチファイルを作成できないかと思ってます。 一つのフォルダに 複数のテキストファイルがあり、 そのテキストファイルの 指定した行と その指定した行の3番目~5番目の文字を抽出したい考えてます。 フォルダ内の情報は、下記の感じです。 フォルダ内(フォルダ名:folder)には、このようなファイルがあります。 ファイル名: testX.txt ファイル内容: 1:aaa 2:bbb 3:ccc 4:ddd ファイル名: textY.txt ファイル内容: 1:ooo 2:ppp 3:qqq 4:rrr ここでは、2行目の「ccc」と「qqq」を考えてます。 皆さんからのご教示頂けると幸いです。 宜しくお願い致します。

  • データファイルの処理と保存について

    はじめまして。 C言語についてまだ勉強が不十分なので、ご質問させていただきます。 現在、あるいくつかのデータファイルがあります。 中に入っているデータ数は2000行以上です。 列は3列です。 これを分割したいのですが、1つのデータファイルは100個で構成します。 その100個スケールを10個ずつずらして新しいファイルに入れていきます。 今Excelで手作業でやっているのですが、大変時間がかかります。 Excelですと、行番号1~100を取り出して新しいファイル「ファイル名_1.txt」をつくり、次に先ほどの100番目までのデータのうち、10番目まで削除して行番号11~110を取り出して新しいファイル「ファイル名_2.txt」を作成。 つまりこのファイルは90個のデータが重なっています。 □内にデータが10個だとすると □□□□□□□□□□  □□□□□□□□□□   □□□□□□□□□□    □□□□□□□□□□ といったように10ずつずらして、このようなことを繰り返しているのですが、現在総数666個のデータを用いて分割し、57個のデータファイルができました。 ファイルはそれぞれ100ずつとしていますが、最後のみ106個です。 このようなことをCでできないでしょうか。 ・100個スケールを10個ずつずらして格納。 ・出力ファイル名は「ファイル名_n.txt」(n=1,2,3,4...) ご協力お待ち申し上げております。 よろしくお願いいたします。

  • MS Office Excel 2003でテキストデータファイルを読み

    MS Office Excel 2003でテキストデータファイルを読み込む方法 1111.txt 2222.txt 3333.txt というテキストデータファイルがあり、中身は添付画像の様になっています。 (テキストファイルは同じフォルダに格納されています) このテキストデータをExcelに読み込みたいのですが、以下の様な動作をして欲しいと思っています。 (1)セルA1にテキストデータファイルのファイル名(拡張子は省く)を入れる (2)セルA2から下に、添付ファイルのA列のデータが入り、セルB2から下にE列のデータが入る (3)セルA1に別のファイル名を入れると、そのファイルのテキストデータに切り替わる このような事は可能なのでしょうか? もし可能であれば教えて下さい。 よろしくお願いします。

  • リストを読み込んでファイル名を書換るバッチファイル

    バッチファイル(test.bat)で、 変更前のファイル名が1行に1つずつ書かれたテキストファイル1(no1.txt)と 変更後のファイル名が1行に1つずつ書かれたテキストファイル2(no2.txt) を読み込んで、 no1.txtのn行目のファイル名のファイルを、 no2.txtのn行目のファイル名に書き換える バッチファイルを作りたいのですが、 (n=1,2,3,4…行数) どのように記述すればよいでしょうか。 具体的には、 フォルダAに 123.txt 456.txt 789.txt というファイルが入っていたとして、 no1.txtのファイルには、 123.txt 456.txt 789.txt no2.txtのファイルには、 ABC.txt DEF.txt GHI.txt が書かれていて、 test.batを実行すると、 フォルダAの中のファイル名が 123.txt => ABC.txt 456.txt => DEF.txt 789.txt => GHI.txt というようにリネームされるようにしたいです。 よろしくお願いします。(Windows10)

  • C++ ドラッグ&ドロップによるテキストデータ読込

    C++初心者です。 aaa.txtのデータ(数値がたくさん並んでいるもの)を読み込んである列の平均値を出すなど計算したいと思っています。 しかしaaa.txt以外にも計算したいテキストデータがたくさんあり、そのたびいちいちソースを弄ってテキストの名前を変えるのはおっくうです。 今は、次のようにファイルを読み込んでいます。 ifstream ifs("aaa.txt"); そこでexeファイルにドラッグ&ドロップしてそのテキストファイルの数値を勝手に読み込んでくれるように改変できるでしょうか?

  • VB.NET テキストファイルにデータを書き込み

    テキストファイル("c:\test.txt")に「かきくけこ」と全角5文字で1行のデータがあるとします。 このテキストファイルに「あいうえお」を先頭に追加で書き込みたいのですが、どうすればいいのでしょうか? あくまで「かきくけこ」を変数化せずファイルに直接、書き込む方法がある場合、教えてください。 'テキストファイルを開いたときの内容 あいうえお かきくけこ ちなみにですが、テキストファイル("c:\test.txt")に「かきくけこ」と全角5文字で1行のデータがあるとして、 末尾に「さしすせそ」を追加で書込みする方法は下記の通りでした。 'ファイルを書き込み用に開く、指定したファイルがない場合は作成する dim fsFile As System.IO.FileStream = _ System.IO.File.OpenWrite("c:\test.txt") 'StreamWriterオブジェクトを作成し、テキストデータが書き込めるようにする Dim sw As System.IO.StreamWriter = _ New System.IO.StreamWriter(fsFile) 'ファイルの末尾に移動する sw.BaseStream.Seek(0, System.IO.SeekOrigin.End) 'データを書き込む sw.WriteLine("さしすせそ") 'ファイルを更新する sw.Flush() 'ファイルを閉じる sw.Close() fsFile.Close() 'テキストファイルを開いたときの内容 かきくけこ さしすせそ

専門家に質問してみよう