DOWN LOAD BBS

HOME HELP 新規作成 新着記事 ツリー表示 スレッド表示 トピック表示 ファイル一覧 検索 過去ログ

■155 / 親記事)  ハイパーリンク
  
□投稿者/ hidetake -(2003/03/18(Tue) 00:36:50)
    桐でやる手ももちろんだけれど,正規表現を使えれば
    こんな風に出来るというサンプルの意味も含めて・・・

    取り敢えず,今時の Windows であれば大体において
    使えるであろう WSH のうち VBS でのスクリプト例!

    ex. httplink.vbs infile outfile

    -------------------------------------------------------------------------------
    Dim Arg
    Set Arg = WScript.Arguments
    If Arg.Count < 2 Then
    WScript.Quit
    End If

    Dim Src, Dst
    Src=Arg(0)
    Dst=Arg(1)

    Dim Fs
    Set Fs = Wscript.CreateObject("Scripting.FileSystemObject")
    If Not Fs.FileExists(Src) Then
    WScript.Echo "ファイルがありません!"
    Set Fs = Nothing
    Set Arg = Nothing
    WScript.Quit
    End If
    If Fs.FileExists(dst) = True Then
    Fs.DeleteFile dst,True
    End If

    Set sFile = Fs.OpenTextFile(Src)
    Set dFile = FS.CreateTextFile(Dst)

    Dim Line
    Set objRE = New RegExp
    objRE.IgnoreCase = True
    objRE.Global = True
    objRE.Pattern = "(((s?https?|ftp)://|mailto:)[-_.!~*'()a-zA-Z0-9;/?:@&=+$,%#]+)"

    Do Until sFile.AtEndOfStream
    Line = sFile.ReadLine
    If Line = Chr(&h1A) Then
    Exit Do
    End If
    If objRE.Test(Line) = True Then
    Line = objRE.Replace(Line,"" + "$1" + "")
    End If
    dFile.WriteLine(Line)
    Loop

    sFile.Close
    dFile.Close
    Set sFile = Nothing
    Set dFile = Nothing
    Set Arg = Nothing
    Set Fs = Nothing
    WScript.Quit
    -------------------------------------------------------------------------------


引用返信 [メール受信/OFF] 削除キー/
■156 / ResNo.1)  Re[1]: ハイパーリンク
□投稿者/ hidetake -(2003/03/18(Tue) 00:37:51)
    引き続いて perl 版!

    この程度の処理であれば 数百KB の perl.exe をどこからか
    持ってきても良いだろうし,JPerl.exe + Perl300.dll だけ
    でも可能・・・

    ex. perl httplink.pl infile outfile

    -------------------------------------------------------------------------------
    #!/usr/bin/perl

    if ($#ARGV ne 1) {
    print "usage: htmllink.pl infile outfile\n";
    exit;
    }
    $sfile = $ARGV[0];
    open(IN, $sfile) || die "Can't open infile: $sfile";
    $dfile = $ARGV[1];
    open(OUT, "> $dfile") || die "Can't open outfile: $dfile";

    while($Line = ){
    $Line =~ s/(((s?https?|ftp):\/\/|mailto:)[-_.!~*'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)/$1<\/a>/gi;
    print OUT "$Line";
    }

    close(IN);
    close(OUT);
    -------------------------------------------------------------------------------


引用返信 [メール受信/OFF] 削除キー/
■157 / ResNo.2)  Re[2]: ハイパーリンク
□投稿者/ hidetake -(2003/03/18(Tue) 00:39:34)
    > s/(((s?https?|ftp):\/\/|mailto:)[-_.!~*'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)/

    と言う事で,桐も正規表現が使えたらなぁ〜


解決済み!
引用返信 [メール受信/OFF] 削除キー/



スレッド内ページ移動 / << 0 >>

このスレッドに書きこむ

Mode/  Pass/

HOME HELP 新規作成 新着記事 ツリー表示 スレッド表示 トピック表示 ファイル一覧 検索 過去ログ

- Child Tree -
- Antispam Version -