FUJI21・やさしく・CGI(& JavaScript)

共用プログラム・テスト

データ操作・附(Excelファイル変換・全文検索


ご自由にテストください。

関連ページへのリンクとともに、関連行のソースの行数・内容が表示されます。
半角カナを含め一部検索不能な日本語があります。


Excelファイル(タブ切りTEXT)のアップロード・変換(cg_0310.html による規格ファイル)
$prjcode可変ファイル:cg_11a1
固定ファイル:cg_11a2
基準可変ファイル
基準固定ファイル
上記基準ファイルと同じ項目数(固定の場合は「キー」のほか「連番」項目を含む)、最終項目 "END"、データは3行目以降、のテスト用 Excel ファイルを タブ切りTEXT でご用意ください。
Excel
ファイル
アップロードファイル
$filecode
サブルーチン&dt_fileset($prjcode,$filecode,$dspcode);($upexcel,$datafile,
  $data00fileを生成)
&dt_excelup($upexcel,$datafile,$data00file);
                       (既存の上書き可)
結果全可変ファイル一覧(../cg_11a1upexcel/)
全固定ファイル一覧(../cg_11a2upexcel/)
アップロード後
ファイル名(パス)
全可変ファイル一覧( ../cg_11a1data/ )
全固定ファイル一覧( ../cg_11a2data/ )
変換後
ファイル名(パス)
$err_msg項目構成不整とキー重複のレコードを表示するリスト

「""」を「"」に$f2_LINES[$i] =~ s/\"\"/”/g;(&は半角)
「"」を削除$f2_LINES[$i] =~ s/\"//g;
文字列区切りコード回避$f2_LINES[$i] =~ s/\'/’/g;
HTMLタグコード回避$f2_LINES[$i] =~ s/</&lt;/g;)
$f2_LINES[$i] =~ s/>/&gt;/g;
項目間区切りを変更$f2_LINES[$i] =~ s/\t/<SP>/g;

Excel用ファイル(タブ切りTEXT)のダウンロード前変換
全可変ファイル一覧( ../cg_11a1data/ )
全固定ファイル一覧( ../cg_11a2data/ )
$prjcode可変ファイル:cg_11a1
固定ファイル:cg_11a2
基準可変ファイル
基準固定ファイル
サブルーチン&dirs_list($datadir);(@f2_filelistを生成)
$filecode = &dt_filecode($f2_filelist[$i]);($filecodeを生成)
&dt_fileset($prjcode,$filecode,$dspcode);($datafile,$dnexcel
  を生成)
&dt_exceldn($datafile,$dnexcel);
(既存の上書き可)
結 果全可変ファイル一覧(../cg_11a1dnexcel/)
全固定ファイル一覧(../cg_11a2dnexcel/)
Excelで「開く」際の設定:「区切り文字(タブ)」、「文字列の引用符(なし)」、「列のデータ形式(文字列)」

HTML表示用「"」を「"」に $f1_LINES[$i] =~ s/&rdquo;/\"/g;(&は半角)
HTML表示用「'」を「'」に$f1_LINES[$i] =~ s/&rsquo;/\'/g;
項目間区切りを変更$f1_LINES[$i] =~ s/<SP>/\t/g;
HTML表示用「改行」削除$f1_LINES[$i] =~ s/<BR>//g;
(データファイルでは作成時に、
「改行:\n・\012」を「<BR>」に変換済)

サイト内全文検索(検索対象:3行目以降、cg_0310.html による規格ファイルにも対応)

  1. 複数ファイル、単一キーワードの例
     (実用例:FUJI21・ビジネス・ブックマーク
    ファイル:



    キーワード:  (空白の場合は全て)

         

  2. 複数ディレクトリ、複数キーワードの例
    ディレクトリ:



    キーワード: and and
    (第1行第1項が空白の場合は全て)
    OR and and
    OR and and

         

    1. 検索対象は「easycgi」(一部を除く)、「easyhp」「easyjs」です。
    2. 表示第1行は「ファイル名」 - 「ソース行番号」です。
    3. 半角カナ、特殊記号「 !"#$%&'()=-~^|\`@{[+;*:}]<,>.?/_\ 」など検索不能な場合があります。
サイト内全文検索・共用プログラム操作明細

(検索対象ファイルは拡張子「.html」「.txt」のみ)
事前指定変数
対象ファイル数$f1_filenmbr
対象ファイル(パス)@f1_filelist[0 〜]
対象項目$keycol (レコード全体の場合は、$keycol = "all" または "")
@f1_keylist[0 〜]キーワード($f1_keylist[0] = "" の場合は全レコード検出)
  $keyor最大 OR 数(上例の場合:3)
  $keyand 最大AND数(上例の場合:3)
サブルーティン&dt_rcrdsearch($keycol);
操作結果
$f2_rcrdnmbr検索レコード数
@f2_rcrdlist[0 〜]対象項目内容<SPS>ファイル名(パス)<SPS>該当行数<SPS>レコ−ド(行)
$f8_filenmbr検索不能ファイル数
@f8_filelist[0 〜]検索不能ファイル名(パス)
  1. 対象ディレクトリ内のファイルリストの作成は
    • @f1_filelist=glob($file);

  2. パターンマッチは、キーワード、データともに日本語を「euc」に変換して、実行しています。
    • &jcode'convert(*keyword1, 'euc');
    • &jcode'convert(*$line, 'euc');

  3. 英数字の全角は全て半角に転換後、検索していますので区別しません。
    全角英数字の半角変換ご参照)

  4. パターンマッチのキーワードを「¥Q---¥E」で囲み、メタ文字(「 ¥ 」などプログラム上特別な意味を持つ文字)の意味を消去しています。
    パターンマッチの末尾に修飾子「 i 」を付記、英字の大小を区別しません。
    • $line1 =~ m/\Q$keyword1\E/iによりメタ文字をクオート

プログラムご希望の方は:

  1. このサーバーでは
    パスファイルアクセス制限
    /home/
    (URLで
    は省略)
    basiccgi/cgi-bin/ cg_1010.cgi
    cg_1110.cgi

    cg_00io10.pl
    cg_00st10.pl
    cg_00fx10.pl
    cg_00dt10.pl
    jcode.pl
    本(テスト)プログラム

    共用プログラム
      入出力操作
      文字列操作
      ファイル操作
      データ操作(本件)
      日本語処理
    cntrl/cg_1110.html
    cg-11a1data00.txt
    cg[11a2data00.txt
    本ページ
    基準可変ファイル
    基準固定ファイル
    cg_00.css
    STYLESHEET

  2. 基礎の共用(〜6)プログラムの内容は、目次から各該当ページをご参照ください。
    原則として、橋渡しの変数名には通常「 _ 」を含み、内部変数はローカル「 local 」「 my 」設定をしています。

  3. CGI(.cgi/.pl)、CSS、JavaScriptファイルは内容表示のために、仮の拡張子「.txt]を使用しています。
    HTML ファイルのソースコードの参照は、画面右クリック「ソースの表示」で。
    FRAME ファイルのソースコードの参照はメニューバーの「表示」「ソース」で。

  4. 要確認・変更箇所は、HTML、CGI 両ファイル上に
    ====begin===================
    ====end=====================
    で明記してあります。

  5. あわせて、左側の目次から「SSI・CGI 基本」から「SSI・CGI概要」、「CGI プログラム要領」、「CGI 呼出方法」を参照ください。
    (特に、サーバにより各ファイル・URLのパス設定が異なります。)
14”N 02ŒŽ 27“ú‰ü’ù
ご批評・ご意見賜りたく(表紙へ)