Indexへ
(15440)//【15441】→(15461)
------------------------
【タイトル】文字の色別選択について
【記事番号】 15441 (*)
【 日時 】06/09/15 00:48
【 発言者 】orange

 ファイルを受け取ったとき、一つのレイヤーにいろんな色の文字があり、
それを色別にレイヤー分けしたいのですが、以前に外部変形でダウンロード
できるものがあったと記憶しているのですが、ご存じありませんか。
 または、文字を色別に選択できる方法をご教授ください。


Indexへ
(15441)←【15461】→(15462)
------------------------
【タイトル】Re(1):文字の色別選択について
【記事番号】 15461 (15441)
【 日時 】06/09/15 14:49
【 発言者 】コジマ

▼orangeさん:
> ファイルを受け取ったとき、一つのレイヤーにいろんな色の文字があり、
>それを色別にレイヤー分けしたいのですが、以前に外部変形でダウンロード
>できるものがあったと記憶しているのですが、ご存じありませんか。
> または、文字を色別に選択できる方法をご教授ください。

以前のものに、既定の文字種に対応させるようにした改造版です。
(Ruby の環境が必要です。)外変経験者のようなので省略します。


◎バッチファイル(文字色レイヤ2.bat)
以下の文をコピペ後、全角スペースを半角スペースに一括置換してください。

hcc=[];mojic_a=[]
while ARGF.gets
    xy=split
    if xy[0]=~/^hcc/
        xy.each{|item|hcc<    end
    if xy[0]=~/^cn\d+$/
        if xy[0]=~/^cn0$/
                mojic=xy[4]
        else
                index=xy[0][2..-1].to_i
                mojic=hcc[index]
        end
        mojic_a << mojic unless mojic_a.include?(mojic)
    end
end
mojic_a.sort!
mojic_a.unshift("レイヤ変更する文字色は、___の後にレイヤ番号を記入してください")
open("文字色.txt","w"){|f|
    mojic_a.each_with_index{|item,i|
        i==0 ? f.puts(item) : f.puts("文字色"+item+"___")
    }
}


◎スクリプトファイル2(文字色レイヤ2.rb)
以下の文をコピペ後、全角スペースを半角スペースに一括置換してください。

hcc=[];mojic_a=[]
while ARGF.gets
    xy=split
    if xy[0]=~/^hcc/
        xy.each{|item|hcc<    end
    if xy[0]=~/^cn\d+$/
        if xy[0]=~/^cn0$/
                mojic=xy[4]
        else
                index=xy[0][2..-1].to_i
                mojic=hcc[index]
        end
        mojic_a << mojic unless mojic_a.include?(mojic)
    end
end
mojic_a.sort!
mojic_a.unshift("レイヤ変更する文字色は、___の後にレイヤ番号を記入してください")
open("文字色.txt","w"){|f|
    mojic_a.each_with_index{|item,i|
        i==0 ? f.puts(item) : f.puts("文字色"+item+"___")
    }
}


◎スクリプトファイル3(文字色レイヤ3.rb)
以下の文をコピペ後、全角スペースを半角スペースに一括置換してください。

moji_ly={}
open("文字色.txt","r"){|f|
    while line=f.gets
        if line =~ /\_/
            xy=line.split(/\_+/)
            moji_c=xy[0].delete("文字色")
            moji_ly[moji_c]=xy[1] if xy[1].split('').size<3
        end
    end
}

while ARGV.size>1
    case argument=ARGV.pop
        when /\/a/
            hani=argument[2..-1]
    end
end

hcc=[];mojic_a=[]
while ARGF.gets
    xy=split
    if xy[0]=~/^hcc/
        xy.each{|item|hcc<    end
end

puts "hd"
open("temp.txt","r"){|f|
    while line=f.gets
        xy=line.split
        if xy[0]=~/^hq/
        elsif xy[0]=~/^ly/
            ly=xy[0]
        elsif xy[0]=~/^cn\d+$/
            cn_ly=ly

            if hani=="1"
                xy[0]=="cn0" ? moji_c=xy[4] : moji_c=hcc[xy[0][2..-1].to_i]
                moji_ly.key?(moji_c) ? new_cn_ly="ly"+moji_ly[moji_c] : new_cn_ly=cn_ly
            else
                if xy[0]=="cn0"
                    moji_c=xy[4]
                    moji_ly.key?(moji_c) ? new_cn_ly="ly"+moji_ly[moji_c] : new_cn_ly=cn_ly
                else
                    new_cn_ly=cn_ly
                end
            end
            puts new_cn_ly
            print $_
        else
            print $_
        end
    end
}


Indexへ
(15461)←【15462】//(15446)
------------------------
【タイトル】Re(2):文字の色別選択について
【記事番号】 15462 (15461)
【 日時 】06/09/15 14:56
【 発言者 】コジマ

▼orangeさん:
> ファイルを受け取ったとき、一つのレイヤーにいろんな色の文字があり、
>それを色別にレイヤー分けしたいのですが、以前に外部変形でダウンロード
>できるものがあったと記憶しているのですが、ご存じありませんか。
> または、文字を色別に選択できる方法をご教授ください。

バッチファイルと、スクリプトファイル2が同じ内容になていました、以下が正解


◎バッチファイル(文字色レイヤ2.bat)
以下の文をコピペ後、全角スペースを半角スペースに一括置換してください。

REM 文字色別のレイヤ変更
echo off
REM #jww
REM #cd
REM #zz
REM #zc
REM #h3
REM #k|全文字種(L)|Free文字(R)|/_/a
REM #e
copy jwc_temp.txt temp.txt %1 > nul
ruby -Ks 文字色レイヤ変更2.rb temp.txt
notepad 文字色.txt
pause
ruby -Ks 文字色レイヤ変更3.rb temp.txt %1 > jwc_temp.txt
pause

◎スクリプトファイル2(文字色レイヤ2.rb)
以下の文をコピペ後、全角スペースを半角スペースに一括置換してください。

hcc=[];mojic_a=[]
while ARGF.gets
    xy=split
    if xy[0]=~/^hcc/
        xy.each{|item|hcc<    end
    if xy[0]=~/^cn\d+$/
        if xy[0]=~/^cn0$/
                mojic=xy[4]
        else
                index=xy[0][2..-1].to_i
                mojic=hcc[index]
        end
        mojic_a << mojic unless mojic_a.include?(mojic)
    end
end
mojic_a.sort!
mojic_a.unshift("レイヤ変更する文字色は、___の後にレイヤ番号を記入してください")
open("文字色.txt","w"){|f|
    mojic_a.each_with_index{|item,i|
        i==0 ? f.puts(item) : f.puts("文字色"+item+"___")
    }
}


◎スクリプトファイル3(文字色レイヤ3.rb)
以下の文をコピペ後、全角スペースを半角スペースに一括置換してください。

moji_ly={}
open("文字色.txt","r"){|f|
    while line=f.gets
        if line =~ /\_/
            xy=line.split(/\_+/)
            moji_c=xy[0].delete("文字色")
            moji_ly[moji_c]=xy[1] if xy[1].split('').size<3
        end
    end
}

while ARGV.size>1
    case argument=ARGV.pop
        when /\/a/
            hani=argument[2..-1]
    end
end

hcc=[];mojic_a=[]
while ARGF.gets
    xy=split
    if xy[0]=~/^hcc/
        xy.each{|item|hcc<    end
end

puts "hd"
open("temp.txt","r"){|f|
    while line=f.gets
        xy=line.split
        if xy[0]=~/^hq/
        elsif xy[0]=~/^ly/
            ly=xy[0]
        elsif xy[0]=~/^cn\d+$/
            cn_ly=ly

            if hani=="1"
                xy[0]=="cn0" ? moji_c=xy[4] : moji_c=hcc[xy[0][2..-1].to_i]
                moji_ly.key?(moji_c) ? new_cn_ly="ly"+moji_ly[moji_c] : new_cn_ly=cn_ly
            else
                if xy[0]=="cn0"
                    moji_c=xy[4]
                    moji_ly.key?(moji_c) ? new_cn_ly="ly"+moji_ly[moji_c] : new_cn_ly=cn_ly
                else
                    new_cn_ly=cn_ly
                end
            end
            puts new_cn_ly
            print $_
        else
            print $_
        end
    end
}