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

A 回答 (1件)

単純なのは、


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

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

Qtxtデータをhtmlに表示してくれるCGI

例えばサーバー上にA.txt、B.txt、C.txt・・・とあったとします。
でこれをブラウザでhttp://***.***.jp/A.txt(例)というような感じで呼び出せるCGIはありませんか?
呼び出しURLは別にhttp://***.***.jp/***.cgi?A.txtなどとなってもかまいません。

Aベストアンサー

httpdのエラーログに関してはサーバの管理者へ問い合わせてください。
(サーバOS、httpd、諸々設定によって一概には言えないので)

何か問題が起こってhttpdのエラーログが参照できない場合、以下の部分を編集することによって詳細なエラーを表示することが出来ます。
(エラーの確認が終わったら元に戻すことをお勧めします)

sub error {
print "Content-type: text/html\n\n";
print <<"END_HTML";
<html>
<head><title>error</title></head>
<body>
$_[0]<br>
$!
</body>
</html>
END_HTML
die;
}

#「$!」の部分が詳細なPerlのエラーメッセージに変換されます。

Qperl,ruby,phpは同系列?

ずっとphpとcgiは同じ分野で同レベルだとおもっていたのですが、perlとphpが同じでどちらもCGIなんでしょうか?教えて下さいお願いします。

Aベストアンサー

CGI(Perl)はページを作るのに
1から構築しなければならないのに対し、

PHPは
1から構築したり、JavaScript(以下JS)のように
HTMLに部分的に組み込むことができます。

機能としては、
CGIは基本機能と拡張機能があり、
モジュール(関数集みたいなもの)というものを利用することによりあらゆる機能を使うことができます。

逆にPHPは
拡張機能がないといってもいいでしょう
ただ拡張機能は自分で作ろうと思えば作れるのですが。

速さは、状況にもよりますが
PHPのほうが早いといわれています
ただ、サーバのほうで設定によっては
Perlのほうが早くなっていることもあります。

PHPは新しく
ヴァージョンが新しくなるにつれていろいろな機能が増えています。しかしサーバを管理している人が常に新しいヴァージョンに設定していなかったり、設定により使えなかったりすることもあります。

その点Perlは古くから存在しているので
サーバを変えて使えなくなるということはありません。

セキュリティー的には
断然Perlのほうが強く
PHPはいまだにバグがあるといわれています。

最後にまとめとして、
どっちもどっちなので
上を参考に簡単なプログラムなら
PHPのほうが楽かと思いますが
サーバの状況により使えないと考えたら
Perlに変えたほうがよいと思います。

CGI(Perl)はページを作るのに
1から構築しなければならないのに対し、

PHPは
1から構築したり、JavaScript(以下JS)のように
HTMLに部分的に組み込むことができます。

機能としては、
CGIは基本機能と拡張機能があり、
モジュール(関数集みたいなもの)というものを利用することによりあらゆる機能を使うことができます。

逆にPHPは
拡張機能がないといってもいいでしょう
ただ拡張機能は自分で作ろうと思えば作れるのですが。

速さは、状況にもよりますが
PHPのほうが早いといわれています
...続きを読む

Q現在、html,cgi(perl),javascriptを主に使用して

現在、html,cgi(perl),javascriptを主に使用して、ホームページを作成しています。
作成中いくつか自分だけでは作成につまってしまった部分を質問させていただきます。

まず1つが、通常のhtmlやcgiでIE上に表示させているホームページのそのページを、
ページ上のボタンをクリックすることでwordやexcelに保存するということは可能なのでしょうか?

次に2つ目として、フォームから送信し、textファイル内に日付を付けて保存してあるデータから、
特定の日付のデータを抽出して別ページに表示することは可能でしょうか?

どちらか1つだけでもよろしいので、回答お願いします。

Aベストアンサー

前者はサーバサイドでwordなりexcelなりを生成して送り返してるやりかただね。
(pdf作成サイトとかと仕掛けは一緒)
これはwordやexcelの書類形式が(バイナリ的に)どうなってるか知らないとできない。(最近のはxml形式みたいだからどうにかなる気がする)
後者は、textがユーザローカルの場合無理。formのfileでサーバ側に一度uploadしてもらいサーバサイドで処理して埋め込むなりクッキーにするなり。(通常は埋め込む)
textというのがサーバ側のならjavascriptかクッキーで橋渡しが楽だと思う。

Q@town = ("Aタウン","Bタウン","Cタウン");

@town = ("Aタウン","Bタウン","Cタウン");


上のような配列の値を、テキストファイルに保存して読み込みたいのですが、どうしたらよいのか分かりません。

誰か詳しい方、よろしくお願いします。

Aベストアンサー

use Storable qw(nstore retrieve);

my @towns = qw(TownA TownB TownC);
my $file = 'serialize.dat';
nstore( \@towns, $file ) || die "$file:$!";
@towns = ();

my $towns_ref = retrieve($file) || die "$file:$!";
print $_, $/ for @{$towns_ref};

Qパーミッションをhtml(txt)で設定する

お世話になっておりますm(__)m
今回、サイトを作るに辺り、壁にぶち当たってしまったので質問させてください。

CGIのBBSを設置するさいにパーミッションを設定しなければならないのですが、小生、“FTP(FFFTP)”等を使えません。(ユーザー設定上

そこで、FTPを使わなくても、パーミッションを設定する方法は無いのでしょうか?
有るとすれば、そのやり方を御教授願います。

よろしくお願いします。

Aベストアンサー

サーバやネットワークの設定、ユーザの権限にもよりますが・・・

telnetして、コマンド打てば、たいていのことはできますよ。ftpせずにhtmlをリモートで書くような人もいます。私もCGIをCで書いて、稼働中のサーバ上でGCCでコンパイルなんて危険な事やってましたから。

問題は、ユーザディレクトリでのCGI等の動作が許可されていますか?? サーバの設定で使えるようになっていないケースも多いですし、負荷の問題以外にセキュリティ面からも、無断で設置することを快く思っていない管理者も多いです。


このカテゴリの人気Q&Aランキング

おすすめ情報