めぐみです。
tatsu99さま、先日は親切にアドバイス頂きまして本当にありがとうございました。
恐れ入りますまた追記で質問させて頂きたいことがありましてご連絡させて頂きました。
複雑そうなので無理そうでしたら読み飛ばしてくださいませ。
先日アドバイス頂いた出力結果にプラスして以下のデータを計算して出力させることは可能でしょうか?昭和と平成の処理です。
1.B.txtの1行目を参照します。
2.1926から1989の場合:
下二桁マイナス25にします。
例えば1986の場合、1986-25=61
1990から1999以降の場合:
下二桁マイナス88にします。
例えば1996の場合、1996-88=8
2000以降の場合:
下三桁000を100と考えてそれにマイナス88にします。
例えば2013の場合、136-88=25
それ以外のデータは無視します。
3.追加の出力データ
例えばB.txtのデータが下記のような場合
1986
3
6
以下のデータも追加出力したいです(A.txtがKATOの場合)。
kato6136
kato61
kato610306
6136kato
61kato
610306kato
610306
6136
61
以上、よろしくお願いいたします。
いつも誠意あるご回答をただ来まして本当にありがとうございます。
めぐみ
No.3ベストアンサー
- 回答日時:
以下のようにしてください。
----------------------------------------
$file_a = shift(@ARGV);
$file_b = shift(@ARGV);
open FHA,$file_a or die("can't open $file_a");
@data_a = ();
while($line=<FHA>){
chomp($line);
push @data_a,$line
}
close FHA;
open FHB,$file_b or die("can't open $file_b");
@data_b = ();
while($line=<FHB>){
chomp($line);
push @data_b,$line
}
close FHB;
#------------------追加開始---------
# 西暦を和暦に変換(昭和と平成のみ)
$wanen = $data_b[0];
if ($wanen >= 1926 && $wanen <= 1989){
$wanen -= 1925;
}elsif ($wanen >=1990){
$wanen -= 1988;
}
#------------------追加終了---------
foreach $da (@data_a){
printf("%s%d%d%d\n",$da,$data_b[0],$data_b[1],$data_b[2]);
printf("%s%d\n",$da,$data_b[0]);
printf("%s%d%d\n",$da,$data_b[1],$data_b[2]);
printf("%s\n",$da);
printf("%s%04d%02d%02d\n",$da,$data_b[0],$data_b[1],$data_b[2]);
printf("%s%02d%02d\n", $da,$data_b[1],$data_b[2]);
printf("%d%d%d%s\n",$data_b[0],$data_b[1],$data_b[2],$da);
printf("%d%s\n",$data_b[0],$da);
printf("%d%d%s\n",$data_b[1],$data_b[2],$da);
printf("%s\n",$da);
printf("%04d%02d%02d%s\n",$data_b[0],$data_b[1],$data_b[2],$da);
printf("%02d%02d%s\n",$data_b[1],$data_b[2],$da);
#------------------追加開始---------
printf("%s%d%d%d\n",$da,$wanen,$data_b[1],$data_b[2]);
printf("%s%d\n",$da,$wanen);
printf("%s%02d%02d%02d\n",$da,$wanen,$data_b[1],$data_b[2]);
printf("%d%d%d%s\n",$wanen,$data_b[1],$data_b[2],$da);
printf("%d%s\n",$wanen,$da);
printf("%02d%02d%02d%s\n",$wanen,$data_b[1],$data_b[2],$da);
#------------------追加終了---------
}
printf("%d%d%d\n",$data_b[0],$data_b[1],$data_b[2]);
printf("%d\n",$data_b[0]);
printf("%d%d\n",$data_b[1],$data_b[2]);
printf("%04d%02d%02d\n",$data_b[0],$data_b[1],$data_b[2]);
printf("%02d%02d\n",$data_b[1],$data_b[2]);
printf("%s%s\n",$data_a[0],$data_a[1]);
printf("%s%s\n",$data_a[1],$data_a[2]);
printf("%s%s\n",$data_a[2],$data_a[0]);
printf("%s%s\n",$data_a[1],$data_a[0]);
printf("%s%s\n",$data_a[0],$data_a[2]);
printf("%s%s\n",$data_a[2],$data_a[1]);
#--------追加開始-----------------
printf("%02d%02d%02d\n",$wanen,$data_b[1],$data_b[2]);
printf("%d%d%d\n",$wanen,$data_b[1],$data_b[2]);
printf("%d\n",$wanen);
#--------追加終了-----------------
----------------------------------------------------
追加開始~追加終了が今回の追加分です。
tatsu99さま
ご連絡遅れて大変申し訳ありませんでした!
完璧でした!
本当に本当にありがとうございました!
すごく助かりました。
今後ともよろしくお願いいたします。
めぐみ
No.2
- 回答日時:
補足要求です。
前回の結果は-------------------------
kato198636
kato1986
kato36
kato
kato19860306
kato0306
198636kato
1986kato
36kato
kato
19860306kato
0306kato ・・・・・・・A
megumi198636
megumi1986
megumi36
megumi
megumi19860306
megumi0306
198636megumi
1986megumi
36megumi
megumi
19860306megumi
0306megumi・・・・・・・・B
meguchan198636
meguchan1986
meguchan36
meguchan
meguchan19860306
meguchan0306
198636meguchan
1986meguchan
36meguchan
meguchan
19860306meguchan
0306meguchan・・・・・・・C
198636
1986
36
19860306
0306・・・・・・・・・・・D
katomegumi
megumimeguchan
meguchankato
megumikato
katomeguchan
meguchanmegumi
---------------------------------
ですが、
kato6136
kato61
kato610306
6136kato
61kato
610306kato
は、A.TXTの内容を含むので、繰り返しになります。
・・・・Aの後ろに追加でよいですか?
同様に、megumi6136の分は・・・・・Bの後に追加になります。
610306
6136
61
の追加は、・・・・・Dの後ろでよいですか?
以上、補足をお願いします。
tatsu99さま
早速のご連絡ありがとうございます。
おっしゃるとおりの方法で問題ございません。
何とぞよろしくお願いいたします。
めぐみ
No.1
- 回答日時:
可能です.
2 はおかしな処理だけど.
すみません、先ほど出力例で昭和の場合の例を出しましたが
1996の場合、平成ですので下記のようにしたいです(平成処理)。
3.追加の出力データ
例えばB.txtのデータが下記のような場合
1996
3
6
以下のデータも追加出力したいです(A.txtがKATOの場合)。
1996が8と08になります。
kato836
kato0836
kato8
kato08
kato80306
kato080306
836kato
0836kato
8kato
08kato
80306kato
080306kato
08kato
80306
080306
836
8
平成処理になると出力結果が少しだけ多くなってしまいます。
すみません、頂いたご連絡の返信に新たに平成処理が増えてしまったようで。
恐れ入りますが何とぞよろしくお願いいたします。
めぐみ
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 列と行の名前(重複あり)が交差するセルに、データを入力したい 2 2022/06/25 22:42
- Excel(エクセル) 【VBA】指定フォルダに格納中のテキストファイルをエクセルで処理し結果のエクセルを新規フォルダに保存 1 2022/03/25 14:19
- Visual Basic(VBA) VBA 参照先で選んだファイルをコピーし、出力先に別名で保存したい 8 2022/05/13 20:37
- Visual Basic(VBA) VBAで重複データを確認したい 5 2022/10/07 16:24
- Excel(エクセル) VBAで組み合わせ算出やCOUNTIFSの処理を高速化したいです。 4 2022/04/07 02:38
- Visual Basic(VBA) 【VBA】Excelで罫線を引きたい 3 2022/07/14 12:04
- Visual Basic(VBA) 複数ファイルのデータの統合について 12 2022/05/14 12:03
- その他(データベース) c言語の問題です。これを踏まえてコーディングしたいのでおしえていただきたいです。 3 2023/08/03 09:27
- その他(プログラミング・Web制作) プログラミング 処理速度 1 2022/11/25 11:05
- Excel(エクセル) Excel VBAについてです。 少しだけ知識はあるのですが、 うまくいかなかったので 質問させてい 3 2022/09/13 18:40
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ポインター引数の関数でコンパ...
-
Excel VBA グラフ作成のとき...
-
stable diffusionのエラー
-
構造体のソートの方法について...
-
C言語について
-
EOM間にperl文を作成したい
-
ソートアルゴリズムについて質...
-
GETメソッドとPOSTメソ...
-
CGIを勉強しています。¥n(改...
-
CD R の書き込み
-
このプログラムはどういった事...
-
“半角カタカナ”は、ずいぶん昔...
-
10Mバイトて文字数に すると何...
-
UTF-8で5~6バイトになる文字コ...
-
ビットスワップとバイトスワッ...
-
COBOLのCOMP形式について
-
htmlソース編集で、各タグを何...
-
異なるドメインのサイトでcooki...
-
DataGridViewの特定列に入力さ...
-
pythonにCでのexternはありますか
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ポインター引数の関数でコンパ...
-
stable diffusionのエラー
-
printfの%eで指数部分の桁数を...
-
【Excel VBA】10進数を2進数に...
-
int型(2バイト)データの分割
-
pythonでDBのカラム名で取得し...
-
エクセルVBA:日付データの変換...
-
C#でのswitch文
-
c言語での wavファイルの編集(...
-
C言語の構造体にてバブルソート...
-
linuxのシェルでファイル名に先...
-
'dataType' 引数を Null にする...
-
オセロゲーム 2次元配列で困...
-
H8/36064を使ったシリアル通信...
-
10個の実数に対する降順ソート...
-
c言語の多次元配列で1から100ま...
-
c言語 配列から数字だけをint型...
-
matlabのソースコードをpython...
-
Cのプログラムがどうしても動き...
-
テキストファイルの結合について
おすすめ情報