回答箱 No.141-1: メール本文の中の日付を取り出しバインダー名にしたい
        ◆ 質問箱 No.141 質問者: 元山 よし子  2002年09月 248号 P.14
            ◆ 質問箱 目次へ
No.141-1   メール本文の中の日付を取り出しバインダー名にしたい 回答者
  内海 孝
2002年10月
249号 P.14
 下記の文書形式の表はpdf機関誌9月号14頁をテキストファイルにコピーし、メールで配信されたと思われる部分をMEMO/1に登録した表です。

1図    (配信されたメール)   MEMO/1
================================================================
 AAA 人事異動情報ファイル
 ※ 人事異動情報※
================================================================
 配信日 : 2002 年 7 月25 日
 ----------------------------------------------------------------------
 社  名:デンカ生研(株)
 株式CD :4561	
 住 所:〒103-0025 東京都中央区日本橋茅場町3 丁目4−2
 TEL:03-3669-9091
 ----------------------------------------------------------------------
 No.1 異動日:2002/06/27
 氏 名:高城圭介
 新役職:〔退任〕
 旧役職:監査役
 No.2 異動日:2002/06/27
 氏 名:和久利壽男
 新役職:監査役
 旧役職:

2図 表形式  (1図の文書形式の表を、表形式に取り込むための表)MEMO/6


3図     (1図の表から配信日の行だけ取り込んだ表) MEMO/6

4図   (配信日の余分なスペースを削除、7月の前に0が入ったところ)
5図     (1図の表から配信日以降を取り込んだ表) MEMO/7
プログラム
**************************************************************************
X1=配信日(配信日:2002年7月25日)の最初の2の桁数目。
X2=年の桁数目、X3=月の桁数目、X4=日の桁数目、X5=月数の桁数、X6=日にちの桁数。
V1=配信日(配信日 : 2002 年 7 月25 日)、=2002年7月25日。
V2=7月、V3='"'+V2+'"'、V4='"'+"0"+V2+'"'、V5=5日(日にち1桁の時)、 V6='"'+V5+'"'。
V7='"' +"0"+V5+'"'、 V21=配信日:2002年07月25日  =2002年07月25日。
V22=2002(年号)、V23=07(月2桁)、 V24=25(日2桁)、V25=JINJI20020725。
**************************************************************************


 1<SP0>
 2     G;MEMO/1;S;G;MEMO/6;CPR;S5,E;4;P;6;G;7;CPR;S5;4;CU;;" ";"";;;
 3     LET V1=[4,1];LET X1=INSTR(1,V1,"2");LET V1=RIGHT$(V1,X1);
 4     LET X2=INSTR(1,V1,"年");LET X3=INSTR(1,V1,"月");
 5     LET X4=INSTR(1,V1,"日");LET X5=(X3-1)-(X2+1);
 6     IF X5=1 THEN GOTO $月;GOTO $日;
 7$月:LET V2=MID$(V1,7,3);LET V3='"'+V2+'"';LET V4='"'+"0"+V2+'"';
 8     CU;;%V3;%V4;;;
 9$日: LET X6=(X4-1)-(X3+1);IF X6=2 THEN GOTO $PUT;
10     LET V5=RIGHT$(V1,10);LET V6='"'+V5+'"';LET V7='"'+"0"+V5+'"';
11     CU;;%V6;%V7;;;
12$P: LET V21=[4,1];LET V21=RIGHT$(V21,X1);LET V22=LEFT$(V21,4);
13     LET V23=MID$(V21,7,2);LET V24=MID$(V21,11,2);
14     LET V25="JINJI"+V22+V23+V24;
15     G;MEMO/6;P;%V25/N;G;MEMO/6;DR;A;;P;*;
16$EX: STOP
プログラムの解説
2行目 :MEMO/1の5行〜EをMEMO/6に保存、MEMO/1の5行目をMEMO/7にコピー。 5行(配信日)の半角スペースを削除。 3行目 :V1に"配信日:2002年7月25日"を格納、X1に配信日の最初の2の桁数目を 格納、V1に配信日の先頭2以降の桁数を格納。 4行目 :X2にV1の先頭2から年までの桁数を格納。X3に先頭2から月までを格納。 5行目 :X4にV1先頭2から日までの桁数を格納。X5=(X3-1)-(X2+1)。 6行目 :X5=1 (月数が1桁)なら$月に飛び、X5が1(月数が1桁)でなければ$日へ。 7$月 :V2に「7月」を格納、V3に「"7月"」を格納。V4に「"07月"」を格納。 8行目 :CU指令で「7月」を「07月」に変換。 9$日 :X6=(X4-1)-(X3+1)。X6=2 (日にち が2桁) なら、$Pへ飛ぶ。     X6=1なら10行目へ。(日にちが1桁の場合、10,11行目を実行) 10行目 :V5にV1の10桁目以降「5日」を格納。V6に「"5日"」を格納。 V7に「"05日"」を格納。 11行目 :CU指令で「5日」を「05日」に変換。 12$P :V21に3図の配信日を格納、更に最初の2以降を格納。V22に2002格納。 13行目 :V23に月数格納、V24に日にち格納。 14行目 :V25に「JINNJI20020725」格納。 15行目 :MEMO/6を呼び出し、V25(JINJI20020725)バインダーに保存。 次回のために、MEMO/6のデータ削除

回答箱のプログラムがプログラム集に収録されています。


このページのTOPへ戻る