めぐみです。
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ランキング
-
ポインター引数の関数でコンパ...
-
pythonでDBのカラム名で取得し...
-
構造体のソートの方法について...
-
POSTで配列のデータを渡す方法は?
-
stable diffusionのエラー
-
C言語 構造体の名前欄?を小文...
-
C言語の構造体にてバブルソート...
-
テキストファイルの結合について
-
関数マクロの書き方
-
printfの%eで指数部分の桁数を...
-
linuxのシェルでファイル名に先...
-
matlabでのRRI検出
-
'dataType' 引数を Null にする...
-
ループ変数の変更
-
c言語での wavファイルの編集(...
-
平滑化フィルタ
-
UTF-8で5~6バイトになる文字コ...
-
10Mバイトて文字数に すると何...
-
COBOLのCOMP形式について
-
Excel VBA メール作成について ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ポインター引数の関数でコンパ...
-
stable diffusionのエラー
-
printfの%eで指数部分の桁数を...
-
エクセルVBA:日付データの変換...
-
int型(2バイト)データの分割
-
c言語の多次元配列で1から100ま...
-
C#でのswitch文
-
【Excel VBA】10進数を2進数に...
-
途中経過も表示するプログラム
-
CreateProcessでの環境変数の設...
-
pythonでDBのカラム名で取得し...
-
C言語についてです! 同じ年の...
-
linuxのシェルでファイル名に先...
-
c言語 配列から数字だけをint型...
-
c言語での wavファイルの編集(...
-
matlabのソースコードをpython...
-
ビットデータのチェック方法
-
10個の実数に対する降順ソート...
-
python 気象データの取得
-
C言語の構造体にてバブルソート...
おすすめ情報