![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_09.png?e8efa67)
下のような繰り返し文を作ったのですが、
unshiftのところをpushにするとなぜか
1行空いて保存されます。
unshiftだと大丈夫です。
書き込むときに
行があく理由と行があったら行を取るような
方法があったら教えてください。
改行を取る処理で行は削除されると思ったのですが。
foreach (@txt) {
$data = $_;
$data =~ s/\r//;
$data =~ s/\n//;
($id, $tonum, $c_date, $c_status, $chkbox) = split(/,/, $data);
if($tonum eq $mynum) {
$html .= "<tr><td>$tonum</td><td>$c_date</td><td>$c_status</td><td>$chkbox</td></tr>";
if ( $rec_id < $id ) {
$rec_id = $id;
}
$rec_id++;
}
}
$newmsg = join(',', ($rec_id, $mynum, $date, $status,0));
unshift (@txt, $newmsg);
ちなみに$rec_idは一行ごとに一意(ユニーク)
のidをつけようとしているのですが、idのつけ方で
効率的な方法があったらご教授ください。
No.2ベストアンサー
- 回答日時:
$data =~ s/\r//;
$data =~ s/\n//;
↑これではg修飾子がないので「はじめに見つけた」\rまたは\nだけを削除、ということになりますが、確認してみては。
ちなみに、
http://okwave.jp/kotaeru.php3?q=2409024
からのスクリプトだとしたら、ファイルから読み込んだデータでしょうか。
その場合はchompで末尾の改行を削除できます。
参考URL:http://okwave.jp/kotaeru.php3?q=2409024
いつも回答ありがとうございました。
>chompで末尾の改行を削除
という方法でいまのところ対応しています。
まだ、空行ができるファイルがないので真偽は不明なのですが・・・
No.3
- 回答日時:
今1つ質問の意味が理解できないところがあるので、的外れの回答かもしれません。
コードを見る限り、@txt の元の要素の末尾には改行が付いていて、追加する $newmsg の末尾には改行はついていません。そのための、違いではないでしょうか。
例えば、@txt の内容が ("data1\n", "data2\n") となっていて、push または unshift で $newmsg を追加した場合、print "@txt\n" で表示すると以下のようになります。
1)push の場合: ("data1\n", "data2\n", $newmsg)
data1
data2
$newmsg
2)unshift の場合: ($nwemsg, "data1\n", "data2\n")
$newmsg data1
$data2
回答ありがとうございました。
改行ができる理由としては、どっかに余計な改行がついていることが考えられるわけですね。そこを見落としてました。まだ見つかってませんが、見つけたいと思います。
No.1
- 回答日時:
unshiftは配列の先頭に要素を追加、
pushは配列の最後に要素を追加
の差で実際質問内にあるコードを動かして見ましたがそれ以外の差はありませんでした。
"1行空いて保存"というのが先頭に来ているか後ろに付いているかの差では?
(つまり$rec_id, $mynum, $date, $statusのどれかに改行が含まれている?)
idの付け方はどんな規則性があるのか不明なのでアドバイスは難しいです
(コードからも読み取れませんでした)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- AJAX JavascriptからPHPへのAjax通信でnullが返ってくる 3 2022/08/03 22:00
- Visual Basic(VBA) Selenium.ChromeDriverの使い方について 7 2022/09/22 06:43
- HTML・CSS 【CSS】:hasで可能? imgを含むtr要素を選択したい 1 2022/11/17 14:36
- JavaScript EasyUIのSubGrid(jquery)におけるObjectに入れた連想配列について 1 2022/05/02 11:21
- JavaScript jQueryで同じクラス名のものを別物として扱いたい 1 2022/06/17 14:14
- JavaScript javascriptでテーブルに追加した項目のid追加してローカルストレージを操作したい 5 2023/01/01 15:52
- PHP htmlで複数の個数入力欄を表示させるには 1 2022/09/20 03:11
- HTML・CSS テーブルタグのセルの幅の一部だけを指定 1 2023/03/12 12:02
- MySQL SQL任意に並び替えをしたい 2 2023/08/28 10:47
- その他(プログラミング・Web制作) python 気象データの取得 2 2023/06/20 23:54
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語のバイナリモードでのfsca...
-
awkスクリプトでダブルクォーテ...
-
VBAで巨大なファイルの途中から...
-
ファイル名を複数個配列で確保...
-
batファイルでrenameができませ...
-
Windowsで複数のファイルを同じ...
-
VBAでCSVファイルの特定行を書...
-
VBAでCSVファイルを途中行まで...
-
AutoNts
-
ファイルを分割する。
-
LISPによる横型探索
-
perlでcsvファイルを読む(ダブ...
-
cgiで表示するhtmlページ内でバ...
-
全角と半角文字が混在している...
-
エクセルVBA コードが同じでも...
-
DOSコマンドで、標準出力を出力...
-
Visual Basicを使って三平方の...
-
readdir()で得られるファイル・...
-
Perlで特定行から特定行までを...
-
CSVが可変長の場合の検索方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
どのようなプログラムをつくれ...
-
csvで順番の入れ替え
-
perlでの三次元配列の作り方
-
配列の中に重複文字列があるか...
-
要素を削除する最適な方法
-
perlで複数行のデータを自由に...
-
pushをすると行ができる
-
ファイルから読み込んで配列へ
-
Perlの初歩的な質問・・・
-
行・列の整理! perl
-
C言語のバイナリモードでのfsca...
-
perl-cgi 文字の長さでソートし...
-
C言語でバイナリファイルの読み...
-
Pythonの再帰関数の動作の流れ...
-
CSVデータ「","」と「,」混在読...
-
perlで読み込んだURLを配列に入...
-
perlの無名配列の使い方を教え...
-
ソートのテクニックについて
-
ランダムでかぶらないように4...
-
頻度表の作成(Perl初心者です)
おすすめ情報