前回も似たような(?)質問をしたんですが
今回も質問させてください。CSVに関して(CSVだけというわけではありませんが)
以下のようなデータを読み込んで、配列変数に格納後...
aaa,bbb,ccc,ddd
eee,fff,ggg,hhh
iii,jjj,kkk,lll
mmm,nnn,ooo,ppp
qqq,rrr,sss,ttt
↑のデータを、下のようなデータにして、保存しなおすにはどうすればよいでしょうか。(上から二列目を削除して前のデータに保存しなおす)
aaa,bbb,ccc,ddd
iii,jjj,kkk,lll
mmm,nnn,ooo,ppp
qqq,rrr,sss,ttt
変な質問でもうしわけございませんが、回答できるかたお願いします。
No.3
- 回答日時:
要するに配列の任意の要素を削除したいということですね?
配列の要素を削除するには splice 関数を使います。
詳しくはマニュアル等を見てください。
以下、簡単な例です。
@array = qw(
aaa,bbb,ccc,ddd
eee,fff,ggg,hhh
iii,jjj,kkk,lll
mmm,nnn,ooo,ppp
qqq,rrr,sss,ttt
);
splice @array, 1, 1; # 配列要素2番目$array[1]を削除
ファイルの更新まで含めるとこんな感じでしょうか。
--------------------------------------------------
open(FILE, "+< file.txt") or die $!;
@lines = <FILE>;
splice(@lines, 1, 1);
truncate(FILE, 0, 0);
seek(FILE, 0, 0);
print FILE @lines;
close(FILE);
--------------------------------------------------
回答ありがとうございました
配列はいろいろと使うので
ためになりました。
今回は使用しませんでしたが、
なんかあったら使わせていただきます。
No.2
- 回答日時:
この質問の趣旨というか目的はどんなところにあるのでしょうか?
単に1回限りならメモ帳で開いて削除すればOKですが、そういうことではないんですよね。配列と書いてありますし、・・・
プログラムが知りたいのでしょうか。またそうだとして、言語は?
No.1ベストアンサー
- 回答日時:
掲示板などのCGIで、記事削除機能が同じようなことをやっています。
1行づつ読み出して、テンポラリ変数に入れて行きます。
その時、削除対象のデータだけ入れずにおけば、対象行を削除したテンポラリ変数ができますので、それをファイルに書き込みます。
わかりますか?↓こんな感じです。
foreach $line (@DATA) {
($idno,$field1,$field2,$field3) = split(/\,/,$line);
chop($field3);
if ($target ne $idno){
$tempvalue = "$idno,$field1,$field2,$field3\n";
$temp[$i] = $tempvalue;
}
$i++;
}
open (FILE, ">$datafile") or die "Error";
print FILE @temp;
close (FILE);
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) ¥マークを含むパスの処理について(マクロ、または関数) 2 2022/12/25 02:11
- Excel(エクセル) PowerQueryに詳しい方教えてください(Office365) 1 2022/07/24 21:11
- Perl perl このテキストファイルを簡単に配列に入れるには? 2 2022/04/27 20:24
- その他(データベース) カラム上の重複を削除するクエリを教えてください 3 2022/04/12 14:11
- その他(Microsoft Office) パワークエリの複数ファイルのデータ統合について 3 2022/07/14 17:06
- その他(データベース) 20万行あるデータを動かしたい 2 2023/06/13 15:21
- システム CSVファイルのマッピング処理の省力化 1 2022/11/24 00:01
- Excel(エクセル) VBA エラーの件 4 2022/10/10 19:14
- その他(プログラミング・Web制作) FORTRAN77の配列(除算) 2 2023/02/01 14:34
- Ruby pandasでsqlite3にテーブル作成・追加・読み出しでindexの取り扱い方教えてください 5 2023/03/08 09:57
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
隣同士の数字を足し合わせる
-
参照配列の要素数の求め方は?
-
クラスに配列を渡す方法
-
VBAのautofilter、criteriaの配...
-
二次元配列における要素数のは...
-
Powershell $変数 = @()の空配...
-
Dim flag(4) as boolean で配列...
-
Perlのデータ変換
-
UWSCに制限時間を付けたいです
-
エクセルの当番表を作っていま...
-
画面を強制的に再描画させる方法
-
まったく同じファイルのハッシ...
-
プログラムの機能を変えずに高...
-
VBA for i=1 to lastrow
-
UWSCの終了の仕方
-
DoEventsが必要な理由について
-
どなたかこのプログラミングを...
-
テキストボックスの名前に変数...
-
vb.netからエクセル関数書き込み
-
pythonでファイルのコメント行...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAのautofilter、criteriaの配...
-
二次元配列のインデックスについて
-
リストボックスに縦スクロール...
-
Excel VBA ユーザーフォームの...
-
マクロ Publicでの配列定義
-
エクセルVBAでTransposeの不思議
-
Strawberry Perl for Windows ...
-
二次元配列における要素数のは...
-
perlで2次元配列をサブルーチ...
-
クラスに配列を渡す方法
-
Dim flag(4) as boolean で配列...
-
文字の整列(printf)
-
perlで配列の要素が空なのを知...
-
jcode->jfold で禁則処理
-
VB6で配列の最大値を簡単に求め...
-
perl 配列の要素数について
-
ファイル名に日付・時刻を付与...
-
チェックボックスのperlでの値...
-
組み合わせについての質問です...
-
配列を初期化する時ってどうす...
おすすめ情報