PC用眼鏡【管理人も使ってますがマジで疲れません】 解約手数料0円【あしたでんき】 Yahoo 楽天 NTT-X Store

無料ホームページ 無料のクレジットカード 海外格安航空券 ふるさと納税 海外旅行保険が無料! 海外ホテル

告知欄です


■掲示板に戻る■ 全部 1- 101- 201- 301- 401- 501- 601- 701- 最新50
メモ

1 :663:05/05/01 17:30:46 ID:boieiukf
思いついた事など

228 :にゃあ:05/09/22 02:20:12 ID:ZJQDnTmr
それからかちゅの場合、「≫」と「ー」は
レスアンカーを構成する文字たり得ないことが判明しました
http://pc8.2ch.net/test/read.cgi/jobs/1091109234/27
上記レスのかちゅdatは、下記の通りです

<b>にゃあ</b>,sage,2005/09/21(水) 23:03:37 , 失敗w <br> 再てすと <br>  <br>
 >≫<a href="http://pc8.2ch.net/test/read.cgi?bbs=jobs&key=1091109234&st=2000&to=2000&nofirst=true" target="_blank">&gt;2000-2000</a> <br>
 >≫<a href="http://pc8.2ch.net/test/read.cgi?bbs=jobs&key=1091109234&st=2000&to=2000&nofirst=true" target="_blank">&gt;2000</a>ー2000 ,

229 :名無しさん@勉強中 ★:05/09/22 18:57:59 ID:???
結局、最初にアンカータグを全部取っ払うほうにしました
htmltodatでdat変換したもの等に対する対応には勿論の事ですが
最近の、異常なほどの板の細分化による ボード名のスレ途中の変化
(生活サロン系とかスポーツ系板の増殖とか)にも対応するようにとか考えたら
これしかないよなーと思うもんで

http://www.geocities.jp/mirrorhenkan/katu/index20050922noanc.html

ギチギチに試してはいませんが
全角数字レスアンカーもタグ付きレスアンカーもまあうまくいってるのではなかろうかと。

URLリンク処理やレスアンカー処理も
色んなケースに対して場当たり的に色々書いてはみたんですが
結局、外部URLで二つ・レスアンカー処理で一つ 正規表現を付けただけでOKみたいです。
エディタで見ると エスケープ処理した行のほうが多い感じですね


という事で
これで良かったらいいな と はい。

230 :名無しさん@勉強中 ★:05/09/22 19:06:00 ID:???
あと レスアンカーの構成記号とかは
別に多くても問題無いのではないかと思うです

かちゅ〜しゃスレとか見てると 例えば
「『tp://〜』にもリンクが欲しいな」とかいう書き込みがあったりして
優柔不断に付和雷同に「うんうん」と思ってしまう方なんだよなあ自分

231 :名無しさん@勉強中 ★:05/09/22 19:16:48 ID:???
という事で
>>227のエスケープ文字云々以下の件りは
申し訳ありませんがよく理解出来なかったのですが
別に問題無いですか?

問題が有ったら
さあ後で考えてみよう

232 :名無しさん@勉強中 ★:05/09/23 10:22:38 ID:???
昨日やってみたら全て一致したんでもういいでしょう
というか そもそも私かちゅ〜しゃ入れ(ry

それはともかく、過去スレを色々見たんですが
作者さん いい人だな と感じました
ただ作者さんトリップつけてなかったので 騙りの人が出て
いろいろとちょっかい出してて(winnyの47氏と同じですね)
「こりゃ自分もトリップしたほうがいいかな」とか頭をよぎりましたが
それは違うと思いますよ

------

という事で
次いってみよう。

>>214の件について。

(a)メール・日付欄の切り分け 
(b)http://またはttp://の前の「(p)」の除去

考えてみました

s/<b>(.*?)</b>(.*):(.*?) :/<a href=\"mailto:$3\"><b>$1<\/b><\/a>/g
s/(\(<a href=\")([^>]+?)>p<\/a>\)//g

233 :にゃあ:05/09/23 16:03:16 ID:pKplq7PX
どもども
>>227で触れた「レスアンカーのエスケープ文字云々」については、忘れてください
ここのところ、睡眠時間が極端に少なかったもので。。。w

index20050922noanc.htmlをテストしてみました
かちゅとの相違点・バグ・要望を挙げれば次の通りです

相違点
>>169で申し上げた通り、かちゅでは((>|>)+)に相当する処理を行っていますが
index20050922noanc.htmlでは、(>|>>|>|>>|≫)と5種類のみに限定されています

バグ
http://pc7.2ch.net/test/read.cgi/software/1117804210/784で申し上げた通り
www.bell-tree.com/~chika/cgi-bin、www.apc.7777.net/bbs等
鯖名にサブディレクトリを含む場合に、レスアンカーのURLが正しく変換されません
外部板の消失ログを変換したいケースでは、とても困ったことになります
かと言って、URLの書式を自動判別するコードを書くのは、煩雑に過ぎるでしょう
漏れは、かちゅidxファイル専用エディタに自動判別ルーチンを組み込みましたが
実際問題、コーディングするのがカナーリめんどーでしたw
鯖名にサブディレクトリを含むURLには対応していない旨を明記してはいかがでしょうか。。。

234 :にゃあ:05/09/23 16:06:10 ID:pKplq7PX
要望
clip2logで変換する際、鯖名その他の項目を入力する必要があります
鯖フォルダと板フォルダを作成し、ログファイルを作成するためには、必要不可欠な情報だからです
一方、index20050922noanc.htmlにてdat変換する際にも
スレッドURLの入力が必須となっています
つまりユーザーは、同じような情報を二度も入力するよう強制されるわけです
index20050922noanc.htmlにおける出力結果の末尾に
「<dat2katjudat>\t鯖名\tボードキー\tスレッドキー\n」のようなフッタを付けて頂ければ
clip2logでの入力は省略できるように改良します

以上の点を除けば、Shift JISエンコードかつ純粋なteri型かつ1行5列であるdatを変換対象とする限り
index20050922noanc.htmlは完全な処理結果の得られることを確認しました

それから、ご報告です
dat2katjudat.htmlを同梱したclip2logを公開しました

http://www.geocities.jp/mewtools/clip2log/

重ね重ね、お礼を申し上げます


235 :名無しさん@勉強中 ★:05/09/24 17:56:03 ID:???
んもーしょうがないなー(←気にしない事)

>>233-234
相違点の件ですが、仕様という事で。(「仕様」いい言葉だなー)

バグの件ですが、サブディレクトリにも対応しておきました。
(想定外の件だったので「バグ」と言われると おいおい という感じですが・・)
自動判別ルーチンとかコーディングとか どのように書いておられるのか判りませんが
正規表現のmatch文一発でOKだと思うのですが・・(お気を悪くされたらすみません)
サーバ名は「http://」と「/test/read.cgi/〜」の間を取り出すだけでいいんですよね?
(違ってたらこれ又ごめんなさいなのですが)

要望の件ですが、オプションとして対応しておきました。

http://www.geocities.jp/mirrorhenkan/katu/

あと
報告どうもありがとうございます。

+++++

さて次は何をやろうか。

236 :名無しさん@勉強中 ★:05/09/24 20:08:46 ID:???
追記です

datアップスレで頂いたかちゅdatを見ていると
確かに「&gt;&gt;&gt;1」とかにもレスアンカーついてますね
「>>>>>>>>>>>>>>>>>>1」←これとか
「>>>>>>>>>>1」←これはどうですか?
(↑あ、この掲示板をかちゅ〜しゃに登録しないとわかりませんね・・別にいいです)

かちゅdatと自前変換のかちゅdatを比較すると、あと2つ 相違点がありました。
(1)「あぼーん」について
  かちゅdatは「あぼーん,あぼーん,あぼーん,あぼーん」と4つですが
  自前datは「あぼーん,あぼーん,あぼーん,あぼーん,あぼーん」と5つです
  かちゅ〜しゃでは あぼーんされたレスの本文が空欄になっているという事なのかな

(2) メール欄の空欄(全角半角問わず)
  かちゅdatでは 生datにあった(というか あった場合)空欄部分が全て消えています

以上2点ですが、まあ大勢に影響無いのではないかと思うです。
それよりも レスアンカー変換が全て一致したのが 嬉しいなー。

237 :にゃあ:05/09/25 03:36:41 ID:7OB3J9R/
気を悪くするどころか、嬉々としてお答えしますよ〜&herats;

漏れの知ってるだけでも、かちゅの対応しているURLは下記の通りです
http://pc8.2ch.net/test/read.cgi/jobs/994816959/157-159n
これをHSPでコーディングするのは、カナーリ大変でしたw
でもよく考えてみれば、板とスレッドのURLを判別する必要はないわけだし
JavaScriptは、正規表現が使えるうえにelse if構文も使えるので、思ったよりも簡単ですね
で、現在のところ、ここまでコーディングしました

238 :にゃあ:05/09/25 03:37:30 ID:7OB3J9R/
url = document.rep.url.value;
if (url.match(/http:\/\/(.+?)\/test\/read\.(cgi|php|pl)\/(.+?)\/(\d+)/)) {
//(*゚ー゚) PATH_INFO形式
var server = RegExp.$1;//サーバ名(サブディレクトリ有りのものも含む)
var board = RegExp.$3;//ボードキー
var key = RegExp.$4;//スレッドキー
} else if (url.match(/http:\/\/(.+?)\/test\/read\.(cgi|php|pl)\?bbs=(.+?)&key=(\d+)/)) {
//(*゚ー゚) QUERY_LINK形式
var server = RegExp.$1;
var board = RegExp.$3;
var key = RegExp.$4;
} else if (url.match(/http:\/\/(.+?)\/(.+?)\/dat\/(\d+)\.dat/)) {
//(*゚ー゚) datディレクトリ
var server = RegExp.$1;
var board = RegExp.$2;
var key = RegExp.$3;
} else if (url.match(/http:\/\/(.+?)\/(.+?)\/dat(\d*?)\/(\d+)\.dat/)) {
//(*゚ー゚) dat2〜ディレクトリ
//(*゚ー゚) cf. http://www.geocities.jp/mewlist/hiddendir.html
var server = RegExp.$1;
var board = RegExp.$2;
var datdir = RegExp.$3;
var key = RegExp.$4;
server = server + "\/dat" + datdir
} else if (url.match(/http:\/\/(.+?)\/(.+?)\/log(.*?)\/(\d+)\.dat/)) {
//(*゚ー゚) logディレクトリ
//(*゚ー゚) cf. http://www.geocities.jp/mewlist/hiddendir.html
var server = RegExp.$1;
var board = RegExp.$2;
var logdir = RegExp.$3;
var key = RegExp.$4;
server = server + "\/log" + logdir
} else {
alert ("(; ・∀・) URLの解析に失敗したからな!"); return(false);
}


239 :にゃあ:05/09/25 03:53:12 ID:eukjsklx
レスアンカーについては、dat2katjudat上で処理することにしました
現行dat2katjudatのソースコードを使わせて頂きたく存じます

レスアンカーのフォーマットについては、>>169で申し上げた通りです
かちゅでは、((>|>)+)に相当する処理を行っています
従って、>>169をかちゅで読み込むと、ローカルには次のように保存されます

<a href="http://yy14.kakiko.com/test/read.cgi?bbs=mirror&key=1114936246&st=2000&to=2000&nofirst=true" target="_blank">
>&gt;>&gt;> 2000</a>

>>236をかちゅで読み込むと、ローカルには次のように保存されます

<a href="http://yy14.kakiko.com/test/read.cgi?bbs=mirror&key=1114936246&st=1&to=1&nofirst=true" target="_blank">
&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;1</a>

<a href="http://yy14.kakiko.com/test/read.cgi?bbs=mirror&key=1114936246&st=1&to=1&nofirst=true" target="_blank">
>>>>>>>>>> 1</a>

それゆえ、現行dat2katjudatのソースコードは次のように書き換えました

240 :にゃあ:05/09/25 03:53:52 ID:eukjsklx
function replacefunc(m) {
if (m.match(/((>|>)+)([0-90-9]+)([-−]([0-90-9]+))/)) {
return m.replace(/((>|>)+)([0-90-9]+)([-−]([0-90-9]+))/,
sp1 + "$3" + sp2 + "$5" + sp3 + "$1$3$4<\/a>"
).replace(/(st|to)=[0-90-9]+/g, toascii);
} else {
return m.replace(/((>|>)+)([0-90-9]+)/,
sp1 + "$3" + sp2 + "$3" + sp3 + "$1$3<\/a>"
).replace(/(st|to)=[0-90-9]+/g, toascii);
}
}

line[3] = line[3].replace(/((>|>)+)([0-90-9]+)([-−][0-90-9]+)?/g,replacefunc);

241 :にゃあ:05/09/25 04:06:37 ID:ZxWRpkId
名前欄のトリムについては、未確認です

あぼーん処理については、>>178でご報告した通りです
かちゅの処理法に準拠するため、dat2katjudatのソースコードを次のように書き換えています

//(*゚ー゚) teri型datの場合は、旧型datへ変換するにゃあ
var teri = lines[i].indexOf("<>");
if (teri != -1) {
lines[i] = lines[i].replace(/\,/g,"@ `");
lines[i] = lines[i].replace(/<>/g,"\,");
}

//(*゚ー゚) 6列目が存在する場合は、サクージョするにゃあ
//1行6列形式は、現したらば(旧JBBS@したらば)とか
//一時期における2ch運営系の板にて採用されているにゃあ
//ちなみに、6列目には投稿者のリモートホストが記録されているにゃあ
lines[i] = lines[i].replace(/(.*?)\,(.*?)\,(.*?)\,(.*?)\,(.*?)\,(.*?)/g,"$1\,$2\,$3\,$4\,$5");

var line=lines[i].split("\,");
// line[0]:名前
// line[1]:メールアドレス
// line[2]:日付
// line[3]:内容
// line[4]:スレッドタイトル

replaced_lines = replaced_lines + line[0]+ ',' +line[1]+','+line[2]+','+line[3]+',';
//(*゚ー゚) 1行目の場合は5列目をも追加、2行目以降は5列目を省略するにゃあ
if (i == 0) { replaced_lines = replaced_lines + line[4]; }
replaced_lines = replaced_lines + '\n';

242 :にゃあ:05/09/25 04:16:12 ID:jLnjA1yZ
clip2log用フッタのオプションを追加して頂き、ありがとうございます

clip2logの操作法が、やや煩雑であるとのご意見を頂きました
http://pc7.2ch.net/test/read.cgi/software/1117804210/959
どういったUIに変えようか考えていたところ
フッタを追加して頂いたことを知り、方向が定まりました
同梱版dat2katjudatでは、フッタを強制的に添付することにします

というわけで、明日にはclip2log 3.0をリリースするつもりです

243 :にゃあ:05/09/25 04:18:37 ID:jLnjA1yZ
ちなみに、このスレは毎日かちゅで巡回していますw

244 :名無しさん@勉強中 ★:05/09/25 17:56:57 ID:???
まあ頑張って下さいな
私 これに関してはもうやる事も無さそうだし
まあ idxファイルをjavascriptで作ってみるとか 無きにしも非ずですが
もういいや

とりあえず 色んな過去スレで
「そんなモン簡単だ 何なら作ってやろうか」と小難しい理屈を長々と述べてるクセに
結局何にもしなかった 口だけだった 実に多くの方々に勝ったぜフハハハ という
ちっぽけな虚栄心が満たされたと事で 良しとしましょうか。
(↑この辺 問題発言っぽいけど)


それと、毎日巡回されているとの事ですが
もうそろそろネタ切れです
まだ誰もやって無い事とか 他にあるかなー。
(って別に そういう観点からやってる訳でもないですが)

++++++

閑話休題。


snapshotのスレをdat化させる方法について、まとめてみました。

http://www.geocities.jp/mirrorhenkan/snapshot/

mukiyuさん(とお呼びして構わないでしょうか)から教えて頂いた方法だと
変換に3段階かかるので
少しやり方を考えて 2段階でdat化出来るように やってみました。

htmltodatも含めたら 3箇所からDLしなくてはならず
面倒くさいと思われるかもしれないので
避難所スレとか datアップスレとかに書いても スルーされそうだなー。
他の方々に 色々試してもらいたいんだけど・・・。


245 :にゃあ:05/09/25 23:34:09 ID:XS3eLH9A
どもども
clip2log 3.0をリリースしました
datフォルダを作ってそこにdatファイルを入れ、適当に作ったsubject.txtと一緒にFTPでうpり
外部板としてかちゅで取り込み、datファイルとidxファイルをテキスト置換ツールで書き換え。。。
なんていう回りくどい手順を踏まなくても
標準datをかちゅのログへ手軽にコンバートできるようになりました
それもこれも、663タンのお陰です
ありがとうございました

246 :名無しさん@勉強中 ★:05/09/26 19:13:22 ID:???
良かったですね
これで当方も別の事出来ます(って何やるんだか)


あと
ちょっと244は筆が滑りました
「具体例を」と言われても困ります
ごめんねごめんね
とはいえ
http://user.ftth100.com/mirrorhenkan/test/read.php?key=1046742687&st=1&to=1001
↑このスレの最初の辺りなんか そんな事書いてますよね
ちなみにこのスレの60で44さんが出しておられるRuby製のコンバータですが
DLしてREADMEを見てみると まだかちゅ〜しゃ変換は未実装みたいです
にしてもすごいな

247 :名無しさん@勉強中 ★:05/09/26 19:52:23 ID:???
さて http://2ch.dumper.jp/ も 検索対象に入れさせて頂いたのですが、
結構、そこにしか残って無いスレもあるみたいです。
で、dat化する方策を考えてみましょう。
とはいえ、今の所 htmltodatは文字コードUTF-8には
未対応なので、さて どうしたものか。
(バージョンアップされるまで待つというのも一つの手ではありますが)
シフトJISならOKなので、現状で考えられる方法として二つあると思います。
(1) リンクを作り右クリック保存して 適当なエディタでシフトJISに保存し直す
(2) ブラウザで呼び出し、「ファイル」→「名前をつけて保存」で
 エンコードの種類を「日本語(シフトJIS)」にする


248 :名無しさん@勉強中 ★:05/09/26 19:53:03 ID:???
で、とりあえず二つやってみました。
それぞれ
1→右クリック保存(UTF-8)
2→エディタ(xyzzy)でシフトJISに保存しなおしたもの
3→ブラウザ(IE)からシフトJISで保存

http://www.geocities.jp/mirrorhenkan/dumper/test1-1.html
http://www.geocities.jp/mirrorhenkan/dumper/test1-2.html
http://www.geocities.jp/mirrorhenkan/dumper/test1-3.html
http://www.geocities.jp/mirrorhenkan/dumper/test1-1.html
http://www.geocities.jp/mirrorhenkan/dumper/test1-2.html
http://www.geocities.jp/mirrorhenkan/dumper/test1-3.html
単に変換しただけでcharset等は全く手をつけてないので文字化けしますが
それはそれとして
1と2を見てみると、本文のソースは んもう改行無しにベターーっと続いています。
エディタでも、なかなか開かず しばらく待ってたら強制終了したりして。
htmltodatで色々やってみたのですが、どうやっても出来ませんでした。
(失敗例をとっておけば良かったな)
ただ、3だけ成功しました。正規表現は以下で。
m#<DT>([0-9]+) :.*?(?:<A href="mailto:(.*)">)?<B>(.+)</B>.*? ?:(.+?)<DD>(.*)<BR><BR> *?(<DT>|</DD>)#mi

249 :名無しさん@勉強中 ★:05/09/26 19:53:35 ID:???
「ブラウザから保存すると勝手にソースを変えてしまうから良くない」
とよく言われますが、この場合はそう悪くないなと思いましたです。
という事で
2ch.dumper.jpのスレをdat化したい時は
ブラウザ(IE)からシフトJISで保存して
タイトル部分を変えて上記の正規表現でdat変換する
 ・・という手順でいいでしょうか。(誰に聞いてるんだ)

あと2の正規表現は、どういうものが考えられるでしょうか(だから誰に(ry)



250 : ◆/vmukiyuzw :05/09/26 20:38:22 ID:mylPXBdT
>>247
> とはいえ、今の所 htmltodatは文字コードUTF-8には
> 未対応なので、さて どうしたものか。
うーむ、プレッシャーをびんびん感じます^^;
まあ、(後述しますが)多分近々やりますよ。

>>248-249
1はUTF-8のままなのでまあ論外として、2は自分の環境では
「read.cgi7.00?」で変換できましたよ。
(ということはdatベースではなくread.cgiベースでクロールかけて
それをUTF-8変換してるってことだろうか?2chサイドからしたら
結構ガクブルな事してますなあ・・・
確かにメールでの問合せの回答でもdatでは保存していないような
感じでしたし)

ところでこのHTMLからはスレタイが取得できませんでした。
というのはhtmltodatでは<title>タグからスレタイを取得してるのですが
このHTMLのように<title lang=〜みたいに<title>タグに余分なものが
くっついてるケースを考慮していなかったためです。
ということで、不具合として修正する必要が出てきましたので、ついでに
当面のもろもろも対処してしまおうかと。

# ただ、このHTMLのスレタイは「D言語 Part 6 - DUMPER.JP」
# になっちゃうんですよね・・・うーむ微妙

251 :にゃあ:05/09/26 21:15:57 ID:dMn/Z86W
どもども
なんかよくわかんないのですけど、>>248のtest1-1.htmlをIEで表示させ
右クリックでソースを表示させると、なかなか興味深い結果になりました

特徴
(1) HTMLファイル中に出現する<dl>タグは、ただひとつのみ
(2) 最終レスの末尾には</dl>タグが付随
(3) 各レス先頭には、<dt>タグが付随

スレッドタイトルは、<title>タグ内の文字列から抽出すればいいので
(1)〜(3)により、datファイルの1列目から4列目までに相当するデータを入手することが出来ます
後は、TatsuさんのDAT2HTMLからdatへ変換するのとそれほどの違いはないでしょう

252 :にゃあ:05/09/26 21:35:54 ID:QRXpgneK
漏れなら、次の手順でソースコードを整形します

(1) <title>タグ内の文字列からスレッドタイトルを抽出
(2) 改行コードを全削除
(3) 文頭から<dl>までを削除
(4) </dl>から文末までを\nへ置換
(5) <br><dt>を<br>\n<dt>へ置換

んで、UTF-8からShift_JISへ直接変換できないものかと考え
clip2logでも採用しているjccっていうDLLの仕様書を読んでみましたが
UTF-8はサポート対象外でした。。。
昨日、あるコマンドをjccに追加して頂こうと作者様管理の掲示板にておながいしたところ
コマンドの追加自体はOKだったのでつけど、最近は忙しいので半年ほど先になるとのことでした
なので、UTF-8のサポートをおながいするのは気が引ける状態です。。。

253 :にゃあ:05/09/26 22:12:47 ID:xKyLl5qV
と思ってぐぐってみたら、コンバータが早速見つかりましたw
GUIでもコマンドラインでも動作します

http://www.vector.co.jp/soft/win95/util/se134905.html

254 :にゃあ:05/09/26 22:33:18 ID:XFH65OIt
つーか、いまhttp://2ch.dumper.jp/から適当なスレッドを右クリックでダウソしてみたのですが
改行コードがLF型になってるだけで、ふつーにメモ帳で読めました
ぐぐってコンバータを探し出し、わざわざRtfconvをインスコした努力は一体。。。
うぐぅ

255 :にゃあ:05/09/26 22:39:45 ID:CAgjriOt
ちなみに、漏れの落としたスレもこんな感じでした

<title lang="ja">スレッドタイトル - DUMPER.JP</title>

256 : ◆/vmukiyuzw :05/09/26 22:51:39 ID:mylPXBdT
にゃあさんって私の名前をNGワードにでもしてるのかなあ・・・
> 漏れなら、次の手順でソースコードを整形します(以下略
って、まさにそういうことをやろうとしてるのがhtmltodatなんですが・・・

なんかやる気が沸いてきたのでUTF-8対応は今週中にはやりますよ。
宣言しときます。

257 :にゃあ:05/09/27 01:38:06 ID:ZJxoyjBE
>>255を書いた5分後くらいに、ソ板で「htmltodatの正規表現」ってスレを見つけました
読んでいくうちに、◆/vmukiyuzwさんのトリップがあったので
リンクされていたサポートスレへ飛んでみました
で、トップページにある配布サイトのURLを見たとき
どっかで見たことあるにゃあ、、、と思いました
readme & historyのページを目にした刹那。。。((;゚Д゚)ガクガクブルブル
ローカルのフォルダを探してみたら、全バージョンが揃ってました
゙ウソさせて頂いたツールの名称を「html2dat」であるといまのいままで思いこんでおり
「htmltodat」が、monazilla.orgでもリンクされているツールだとは気づかなかった次第です
知らぬこととは言え、大変失礼をしました
数々の暴言、お許しください

>>254で落としたファイルを、Speeeeedで変換しようとしたところ。。。

メモ帳ではなんの問題もなく表示されるのですが
<dt>(\d+?) :<font color=green><b>(.*?)</b></font> :(.+?) <dd>(.+?)<br><br>\rだとか
<dt>(\d+?) :<a href="mailto:(.+?)"><b>(.*?)</b></a> :(.+?) <dd>(.+?)<br><br>\rだとかが
Speeeeedでは変換できませんでした
IEでスレッドを開き、右クリックからソースを開き
別名保存でローカルにテキストファイルとして保存してから
同様の置換処理を行おうとしたところ、やはり失敗しました
勿論、rtfconvで文字コートを変換した後のものは、正常に処理されました

258 :にゃあ:05/09/27 01:48:51 ID:ZJxoyjBE
PS.
UTF-8への対応、期待しております
漏れの方は、jane2logの開発でも模索してみます。。。

259 :名無しさん@勉強中 ★:05/09/27 20:53:45 ID:???
えーと
早朝から外に出て神経すり減らした一日だったもんで
一回休み

260 :名無しさん@勉強中 ★:05/09/27 20:58:39 ID:???
とはいえ

>mikiyuさん
もう対応なされたんですね。すごいや
実は、あと2点 要望がありました。

(1) beコード対応
 ・・・といっても色々なhtmlがあるでしょうから
 日付ID欄の「タグを削除する」チェック欄があったらいいかなと。
(2) 正規表現記入欄に横スクロール
 ・・があったら嬉しいな と。
 正規表現を微調整するのにいちいち別のエディタでコピペしないといけないもので。


もう寝ます

261 :名無しさん@勉強中 ★:05/09/27 21:06:29 ID:???
でもスルーしてるみたいで何なので

>にゃあさん
いっそ「htmltoかちゅdat」を作ってみたらどうでしょう
htmltodatのかちゅdat変換バージョン
神になれるチャンスですぞ


私?

とんでもない、あたしゃ神様だよ。(←志村の口調で)

ハイ当然嘘です(まず絶対そんな事思えませんって)
うわ何をするやめ

すっごい失礼しました>all
やめてムチでいじめて

262 : ◆/vmukiyuzw :05/09/27 22:00:52 ID:RLe7TetM
>>260
> (1) beコード対応
>  ・・・といっても色々なhtmlがあるでしょうから
>  日付ID欄の「タグを削除する」チェック欄があったらいいかなと。
beコードについては実はあんまり理解していなかったりします・・・
単にHTMLタグを全部除去すればいいんですかね?特に難しい事ではないですが。

> (2) 正規表現記入欄に横スクロール
>  ・・があったら嬉しいな と。
HTMLソース欄、dat変換結果欄と同じコンポを使ってるのでこれも難しくは無いです。
ただ、ここは常に全部見えていたほうが編集しやすいだろうなと思ったのであえて
付けなかったのですが、そうではない意見もあるんだなあと思う次第です。
(理想としては秀丸みたいなエディタがコンポ化されていて、それを使うことが出来れば
一番うれしいんですが。検索とかもできると便利だし)
まあ次の修正あたりでつけましょう。いつになるかはわかりませんが。

263 :名無しさん@勉強中:05/09/27 23:40:34 ID:g99clHOy
>>262
>beコード
コピペだけど

<a href=/test/p.php?i=12345 target=_blank>!</a>
2004/11/26 - 2004/12/11(面白ネタnews)
初期に面白ネタnews板で使用された形式。
<a href=javascript:w=window.open('http://be.2ch.net/test/p.php?i=12345&u=d:'+document.URL);if(w)w.focus();void(0);>?#</a>
2004/12/11 - 2005/02/02(面白ネタnews)
2004/12/30 - 2005/01/12(その他の2ch)
Beが全板対応になると共にJavaScriptを使う物に変更された。
BE:12345-#
2005/01/12 - 現在(その他の2ch)
read.cgiやブラウザ側でリンクすることを前提にした、すっきりした形式。
<BE:12345:1>
2005/02/02 - 現在(面白ネタnews)
WebブラウザのJavaScriptをオフにするとタグとして扱われるため、表示されない。

264 :名無しさん@勉強中:05/09/27 23:42:59 ID:g99clHOy
>>261
俺の「無知」で質問攻めにしていじめられるかも知れん。

265 : ◆/vmukiyuzw :05/09/28 00:11:05 ID:5+alcFpu
>>263
申し訳ないですが、そのヒントでは私の頭では何をどうすればいいのか
さっぱりわかりません。
せめて、何か元のURLと「どこが不要なのか」がわかれば嬉しいのですが。

266 : ◆/vmukiyuzw :05/09/28 02:46:09 ID:5+alcFpu
なんか順序が逆転してしまったようでいまさらですが
htmltodatをバージョンアップしましたので報告しておきます
やっとUTF-8対応しました^^v
http://jbbs.livedoor.jp/bbs/read.cgi/computer/1929/1038588508/202-203

267 :名無しさん@勉強中 ★:05/09/28 19:06:50 ID:???
えーとですね

>>262
 >>263さんが出して下さったように色々あるので
(1)タグを削除して頂けるだけで構わないです。
そうすればsnapshot等のガラガラも取り除けますし。(←後知恵ですが)

ところで、beコードはどう表示してるんかな・・と
htmltodat最新版でbeのスレを開こうとしたら
何度やっても「http/1.1 500 Internal Server Error」と出てしまうです。
他と通信方法が違うのでしょうか。
ちなみに開こうとしたスレはhttp://be.2ch.net/test/read.cgi/be/1111061495/ ですが。

(2) 私の環境だと、正規表現記入欄の文字が隠れてしまって
 全部は見渡せないのです。
 そんなものなのかな と ずっと思っていました。
 http://www.geocities.jp/mirrorhenkan/htmltodat/myhtmltodat.png
 なので 正規表現記入欄単独での編集は出来ないのです・・。

268 :名無しさん@勉強中 ★:05/09/28 19:13:31 ID:???
>>264
いやー私も無知ですから。
二人会わせてムチムチですね。


ところで、2chタイプの掲示板スクリプトを配布しているサイトのサポ板で
管理人さんが「ぼくは素人ですから」と言ってるのを読んで
うそだー と思った事ありますが
もしかして同じような事 思われてるのかなーとか思ったりして。

いや、こっちはほんとに無知な素人なんですよ・・・

269 :名無しさん@勉強中 ★:05/09/28 19:45:38 ID:???
ところで、>>261を書いた手前
誠に恐れ多くも htmltodatみたいなスクリプトが出来ないかと
ちょっと考えてみて 少しだけやってみたら、何だか出来そうです・・・。

まさしく車輪の再生産以外の何物でもないのですが、意外に簡単そうなので
やってみようかな

270 : ◆/vmukiyuzw :05/09/28 20:51:19 ID:5+alcFpu
>>267
> (1)タグを削除して頂けるだけで構わないです。
> そうすればsnapshot等のガラガラも取り除けますし。(←後知恵ですが)
了解です。でも、逆にこのタグを利用しているブラウザもあるかもしれないので
アンカータグ削除と同様、オプションの形でつけると思います。

> ところで、beコードはどう表示してるんかな・・と
> htmltodat最新版でbeのスレを開こうとしたら
> 何度やっても「http/1.1 500 Internal Server Error」と出てしまうです。
確かにこのエラー出ますね。
IEとhtmltodatのHTTPリクエストの内容を比べてみると多少の違いがあるので
この辺に原因があるのだと思います。ちょっと調べてみます。

> (2) 私の環境だと、正規表現記入欄の文字が隠れてしまって
>  全部は見渡せないのです。
私もサブマシンの9x機で試してみるとこの状態になりました。
使ってるコンポのバグだと思うのですが、コンポ自体を修正する力量は多分
私にはないので、ご要望のとおり横スクロールありで対処しようと思います。

>>269
多分簡単ですよ。もともと私もperlでスクリプト書いて変換してましたし。
つーかhtmltodat自体、スクリプトでやってたことにGUIの皮をかぶせた程度の
ものですんでw

271 :にゃあ:05/09/29 00:11:01 ID:e6uRIWVS
「htmltoかちゅdat」って文字列を見た瞬間、かなり色気が出ましたけど
すぐに無謀であることに気づきました
なんせ、HSP単体ではまともに正規表現が動かないのでw

272 :名無しさん@勉強中 ★:05/09/29 18:54:12 ID:???
何だか本当に出来そうなので
神をも恐れぬ行為に及んでみようかと思います
実用性云々ではなく できるかなできるかなはてさてハハーというスタンスですが
(って かちゅ〜datコンバータもその程度の動機でしたけど)
ごめんなさいごめんなさい

という事で
↓ここまで出来ました

http://www.geocities.jp/mirrorhenkan/htmltodat/

ループ文とか使わずに一斉置換しているだけなので
元のhtml部分のヘッダとフッタが残ってしまっています。
それと エラーチェックは多分無理そうだなー(スキルが無いし)

考えたのですが、if文を使おうとしても
これの場合、dat2htmlやdat2kajtudatのように一行づつ読み込んでる訳ではないので
「ここが終端だよ」という事が出来ません。
最初に始点と終点の目印を入れてもらうか
変換結果を手動で整形してもらうかしかなさそうです・・。

タイトル部分は<title>タグの中を取り出せばいいですし
最初の1だけ単独変換してタイトルをつけて
残りは一斉置換(Gスイッチというのでしょうか)でやれば良さそうです。
アンカータグ削除のチェックボックスも何とかなりそうですし
変換前・変換後それぞれのプレビューもdat2html-1で使ったスクリプトを外部jsにして
ボタンで呼び出せば 何とかなりそうな感じです。
あと入力フォームのリセットボタンの設置と
汎用的正規表現一覧の呼び出しくらいでしょうか。
他に考えられるものとして 何があるだろう・・。


ごめんなさいごめんなさい。。

273 :名無しさん@勉強中 ★:05/09/29 19:08:30 ID:???
変換する正規表現についてなのですが
この場合はスレそのもののhtmlソースなので
「readcgi 7.00?」を使わせて頂きました。

ただサンプルそのままだと終端把握の為の$6つまり「(<dt>|</dl>)」がちょっかいをして
一つ置きにしか置換されないので省略しました。(でもそのせいで終端認識出来ないんだよなー)


それと、やっていて気付いたのですが
read.cgiが吐き出す書式が少し変わったみたいで
日付の前につくコロンの前の空欄(説明下手だなぁ)が無くなっているみたいです。
htmltodat付属の正規表現そのままでは変換出来なかったので
空欄のまえに「?」を入れてみたら変換出来るようになりました。
(御存知でしたらスルーして下さい)

m#<dt>([0-9]+).+?(?:"mailto:(.+?)">)?<b>(.*?)</b>(?:</font>|</a>) ?:(.*?)<dd> ?(.*?)<br><br>(<dt>|</dl>)#mi

274 :名無しさん@勉強中 ★:05/09/29 19:17:37 ID:???
>>271
>なんせ、HSP単体ではまともに正規表現が動かないのでw
そうみたいですね。
そのものズバリのスレも前に立っていましたし。
http://pc5.2ch.net/test/read.cgi/tech/1091877916/

ただ、無謀といえば javascriptのみでこんな事をしてる自分も
まったく無謀そのものでしょう
バカにされても反論出来そうにありません

275 :にゃあ:05/09/29 21:41:32 ID:qOjWGlAU
実は、JavaScript版htmltodatを。。。

  +    +  ∧_∧  +
       (0゜・∀・) テカテカ
       (0゜∪ ∪ +
        と _)__) +

。。。して待っていましたw

「var title=RegExp.$1;」っていう行の直後に、次の2行を入れてみました

dat=dat.replace(/(^<)html>(.*?)<dl>/g,'');
dat=dat.replace(/<\/dl>(.*?)<\/html(>$)/g,'');

各行末尾は、「  <br><br>」とbrタグの前に半角スペース2個が連続してるので
検索式と置換式を、次のように変えてみました

検索式
<dt>([0-9]+).+?(?:"mailto:(.+?)">)?<b>(.*?)</b>(?:</font>|</a>) ?:(.*?)<dd> ?(.*?) <br><br>
置換式
$3<>$2<>$4<>$5<>\n

スレッドタイトルが入らないことを除けば、なかなか(・∀・)イイ!!!!

PS
HSPで正規表現がまともに動かないのは、所詮HSPですからw

276 :にゃあ:05/09/29 22:03:35 ID:qOjWGlAU
本文以外の部分を削除してから処理してるので、残った本文のみを行単位で分割して
1行目にスレッドタイトルを入れるといいかもしれませんね

あっそんなことしなくてもいいか

dat = dat.replace(re, eval("'" + to.replace(/'/g, "\\'") + "'"));
document.rep.data1.value = dat.replace(/(.*?)<>(.*?)<>(.*?)<>(.*?)<>\n/, "$1<>$2<>$3<>$4<>" + title +"\n");

でけたー!

277 : ◆/vmukiyuzw :05/09/29 22:07:13 ID:KdTwCnHo
>>273
> ただサンプルそのままだと終端把握の為の$6つまり「(<dt>|</dl>)」がちょっかいをして
> 一つ置きにしか置換されないので省略しました。(でもそのせいで終端認識出来ないんだよなー)
htmltodatでは、(補足.txtにちょっと書いてますが)すでにマッチ済みの部分を除去した上で、
$6にマッチした部分を残りの部分の先端に付加してから次のマッチ部分を検索するようにしてます。
(つまり、終端部分として認識した部分を次の始端部分にまわしているわけです)
これで、改行なしのベターっとしたHTMLに対応してます。
参考になりますでしょうか。

278 :にゃあ:05/09/29 22:14:40 ID:qOjWGlAU
もっと単純だった。。。w

dat = dat.replace(re, eval("'" + to.replace(/'/g, "\\'") + "'"));
document.rep.data1.value = dat.replace(/<>\n/, "<>" + title +"\n");

279 :にゃあ:05/09/30 01:38:21 ID:ds/qyAZT
Och Scriptにも対応するように書き直してみました

function exe() {
dat = document.rep.data0.value;
dat=dat.replace(/(?:\n|\r\n|\r)/g,'');
dat.match(/<title.*>(.*)<\/title>/);
var title=RegExp.$1;
dat=dat.replace(/<dt>/g,"<dt><dt>");
dat=dat.replace(/(^<)html>(.*?)<dt>/,"<dt>");
dat=dat.replace(/<\/dl>(.*?)<\/html(>$)/g,'<dt>');
dat=dat.replace(/<a href=\"h([^>]+?)>(.+?)<\/a>/g,"$2");
dat=dat.replace(/<a href=\"h([^>]+?)>(.+?)<\/a>/g,"$2");
re = new RegExp(document.rep.fr.value, document.rep.cs.checked ? 'g' : 'ig');
to = document.rep.to.value;
dat = dat.replace(re, eval("'" + to.replace(/'/g, "\\'") + "'"));
document.rep.data1.value = dat.replace(/<>\n/, "<>" + title +"\n");
};

2ch用
検索文字列
<dt>([0-9]+).+?(?:"mailto:(.+?)">)?<b>(.*?)</b>(?:</font>|</a>) ?:(.*?)<dd>(.*?) <br><br><dt>
置換文字列
$3<>$2<>$4<>$5<>\n

0ch用
検索文字列
<dt>([0-9]+).+?(?:"mailto:(.+?)">)?<b>(.*?)</b>(?:</font>|</a>) ?:(.*?)<\/dt><dd>(.*?)<br><br><\/dd><dt>
置換文字列
$3<>$2<>$4<>$5<>\n

280 :出がけの@名無しさん@勉強中 ★:05/09/30 07:57:24 ID:???
あのですね

ここは私の考えをまとめる場なのであって
にゃあさんのそれではないのです
試しのコーディングは なるべく御自分の掲示板でやって頂きたいと思うのです

「663タンの参考になるかなと思って書いたのです」とか言われるかもしれませんが
今のところ javascriptに関しては 失礼ながら私のほうが一長の分があると思いますので
(私も初心者ですが)、正直 どう反応すればいいのか わからない状態です。

例えば お書きになられたコーディングでは「<dt>」とか「<dl>」「</dl>」等のタグが
決め打ちされてますが そういうタグを使ってないhtmlの変換にはNGなので
それでは良くないと思います
・・・とかいちいちレスするのも疲れますし。。
私のモチベーションも低下しっ放しです。

今後は例えば「放置系」http://mewnet.hp.infoseek.co.jp/cgi-bin/mewbbs/ のほうに
スレでも立てられて 推考したり推敲したりの繰り返しを 遂行して頂きたく。

「反応が無い所に書いてもな」と思われるかもしれませんが
659さんや私だって そのようにやっていた訳ですから。。

281 : ◆/vmukiyuzw :05/09/30 23:03:47 ID:g8msaDKT
htmltodatをバージョンアップしました。
http://jbbs.livedoor.jp/bbs/read.cgi/computer/1929/1038588508/204
http://jbbs.livedoor.jp/bbs/read.cgi/computer/1929/1038409548/28-29
beコード対応だけはUIの修正になるのでちょっと後回しです。
不具合が直っているかご確認いただければ幸いです。

282 : ◆/vmukiyuzw :05/09/30 23:11:12 ID:g8msaDKT
あ、あと>>273でご指摘いただいた「readcgi 7.00?」の不具合についても
修正したバージョンを添付するようにしました。
全然気づいていなかったのでご指摘感謝します。

283 :名無しさん@勉強中 ★:05/10/01 15:58:10 ID:???
>>281-282
御連絡ありがとうございます。
早速DLして見てみたら・・正規表現のボックス、すごく見易いです。
これなら更に作業がはかどります。

確かに全部見えているほうがいいですね。
お遊びで作っているjavascript版もそうしてみようかな
(↑お気を悪くされていたら 申し訳ありません)
texareaタグにnoscrallとかいう属性があるかな・・と調べたら
「wrap=soft」または「wrap=virtual」というのがそれっぽいです(初めて見たけど)

>>277の件、参考になります。
if文でループを回す時、そのようにして一つ置換して$6を残し
また一つ置換して$6を残し・・とやっていけば問題無さそうですね。
ただ終端の指定がどうやればいいんだか。
変換前に最終レス番の数字を入力してもらえば、そこでループを抜け出せますが
それを自動取得する方法とかないだろうか・・。

そうやってループで置換したものを何かの変数に蓄積出力すれば
htmlのヘッダとフッタの除去は考えなくても良さそうです。

284 :名無しさん@勉強中 ★:05/10/01 16:13:04 ID:???
>>283の追記です
textareaの件はこちら(単なる自分用メモ)
http://tohoho-web.com/html/textarea.htm

beの取得も問題無く取得出来ました。
ただ、やはり他板とは違うみたいで
「read.cgi7.00?」では駄目ですね。。
ソースも改行無しでベターっとしてるので
何とも見づらい。。


http://web.archive.org/web/20040901084034/fun.kz/test/read.cgi/21oversea/1058513218/
<div class="day"><a id="n2">2</a> 名前:自作自演 [] 投稿日:03/07/18 16:28 ID:bBRQQ4aW<br><div class="body"> 反対の反対なのだー。 </div></div>
<div class="day"><a id="n3">3</a> 名前:自自 [] 投稿日:03/07/18 16:29 ID:bBRQQ4aW<br><div class="body"> 俺一人詐欺師らしい人知ってる。 <br>    </div></div>


285 :名無しさん@勉強中 ★:05/10/01 16:23:16 ID:???
上の書き込みの後半はbeとは無関係です
消し忘れた・・。

さて、UTF-8も変換可能になったので
webarchiveにある http://fun.kz のミラースレも追加しようかと思います。

実際どのくらい残ってるのかと見てみたら
2万4ファイルあるみたいなので、大変に使えるのではないかと思うのです
http://web.archive.org/web/*/http://fun.kz/test/read.cgi/*


で、適当なスレのソースが上で消し忘れたものです。
初めてソースを見たんですが、枠線はテーブルタグを使っているのではなく
スタイルシートで表現しているんですね。
正規表現も難しくなさそうです。

ただ問題が一つ。
ここもsnapshotと同じく、メール欄が名前の後についてしまうようです。

datファイルもwebarchiveに残っていればいいんだけど・・。

286 : ◆/vmukiyuzw :05/10/01 18:47:27 ID:HGJBMdvP
javascript版htmltodatちょっと見させていただきましたが、メール欄が名前の後ろに来る
ケースを考慮して、置換式を指定できるようにしてるんですね。
本家(?)の方でもなんらかの対応を取ろうかなと思います。

ところで、>>284
> beの取得も問題無く取得出来ました。
> ただ、やはり他板とは違うみたいで
> 「read.cgi7.00?」では駄目ですね。。
ちょっと調べてみたところ、「read.cgi7.00?」との違いは、<dt>タグに<dt title=1>みたいに
余分なものが付いているだけみたいなので、正規表現上は<dt>を<dt.*?>に修正すれば
マッチするようです。(2箇所あるので注意)
# ・・・と書いたところで気づいたのですが、これを修正しても今までの「read.cgi7.00?」と
# 互換性は保たれる(<dt>タグに余分なものが付いていようがいまいがマッチする)ので、
# 次のリリースからはこの修正をしたものを添付するようにします。

287 :名無しさん@勉強中 ★:05/10/02 13:31:11 ID:???
>>285も検索対象に入れてみました。

正規表現は以下で良いのかどうか・・。他のものとは似ても似つかない式ですね。
(※投稿するのに「長すぎる行があります」と出たので、やむなく<br>の部分で改行しました)
終端の目印が幾つかあるみたいなので、まだ駄目かもしれません。

m#<div class="day"><a.+?>([0-9]+)</a> ()名前:(.*?) 投稿日:(.*?)
<br><div class="body"> (.*?) </div></div>(<div class="day">|[  ]+(?:<hr.*?>|<div align="center">))#mi

お時間のある方は
http://web.archive.org/web/*/http://fun.kz/test/read.cgi/*
から適当なスレで試して頂きたく思います・・


>>286
・・そうか、<dt>タグは二つあったんですね。
だからうまくいかなかった訳だ・・

御覧になられたのですか、お恥ずかしい。
置換式も対応して頂けたら嬉しいです。。

288 : ◆/vmukiyuzw :05/10/02 21:09:26 ID:lWj5dpVx
>>287
いくつかのスレで試してみましたがその正規表現でほぼ問題ないようです。
ただ、レス本文にマッチする部分の前後の半角スペースですが、あぼーんの
場合には省略されてしまうようでマッチしなかったので、?をつけておいたほうが
良いと思います。

289 :名無しさん@勉強中 ★:05/10/03 18:36:14 ID:???
>>288
mukiyuさん自ら試して頂き、ありがとうございます。
早速、修正した正規表現をつけましたです。

ところで、ここのスレ
http://yy14.kakiko.com/test/read.cgi/mirror/1114936246/
なのですが、htmltodatで読み込むと 文字化けして エンコードしても変わらないです。。

それとは別件ですが
dat化したいスレがあるのですが、正規表現がひねり出せないので
後でhtmltodatサポ板でお伺い致しますです。
(ちなみにそこも文字化けして エンコードしても解消しませんでした)

290 :名無しさん@勉強中:05/10/03 18:46:03 ID:LG6kLaRT
>>265
「Beコード」の解釈を間違えてた悪寒、
そのまま流していただけるとこれ幸いなり。

とは言え一応コピペ元です。
これもそのまま流していただけると(ry
http://www.geocities.jp/janeiyayo/be.html


<a href=/test/p.php?i=12345 target=_blank>!</a>
2004/11/26 - 2004/12/11(面白ネタnews)のBEリンクは今は使われていない模様。
http://be.2ch.net/test/read.cgi/be/1100983996/239-240

291 :名無しさん@勉強中 ★:05/10/04 21:10:19 ID:???
憧れのxreaにHPスペースを分けて頂いたので
とりあえずgeocitiesと同じファイルをアップしてみたんですが
何だか広告タグが邪魔をして、使えないです・・
<script>〜</script>をheadタグ内に移しても変わんないよーー。。

http://mirror.s151.xrea.com

とりあえず、同じファイルをiswebに上げてみましたが
問題無いみたいです

http://mirrorhenkan.hp.infoseek.co.jp/indextest.html

何が邪魔してるんだろうか・・


あ、別に引っ越しする訳じゃないです。
cgiやphp、pythonやrubyで遊んでみようかなー と思っただけなので。

292 :名無しさん@勉強中 ★:05/10/05 20:55:46 ID:???
#雑談スレのほうが適切な話題かもですが

http://ex13.2ch.net/test/read.cgi/gline/1120002213/494-497n

・・・。
まあ497さんが495を書いた人なのかどうか
これだけではわかりませんが。


思考停止してもしょうがないので遊んでみたですよ
ある特定の板だけ読み込まないようにしてあるだけで
他の板は普通に変換出来ます ↓

http://www.geocities.jp/mirrorhenkan/others/no-drama.html


さあ次いってみよう

(何か毎日書いてますが、でも そろそろほんとにネタ切れです)

293 :名無しさん@勉強中 ★:05/10/08 15:05:11 ID:???
メモ

javascriptの正規表現で先読みって出来るんでしょうか。
図書館で借りた正規表現の本の付録にある○×表だと「○」だったんですが。

具体的に書くと、
例えばPerlだと

my $str = "<aa>bb<cc>dd\n<ee>";
my @array = split(/(?=<)/,$str);
# 返るリスト
# <aa>bb
# <cc>dd
#
# <ee>
が可能なのですが
http://www.donzoko.net/cgi-bin/tdiary/20050730.html#p01

それをjavascriptで表現しようとして

<script>
var dat="<aa>bb<cc>dd\n<ee>";

lines = dat.split('?=<');
document.write(lines);
</script>

としても、結果は「undefined」になってしまいます。
(splitの書式が間違ってるかもしれない。いや多分そうだ そうなんだけど)

ちなみにこれの利点はというと、上の引用元(パクリ元?)にもある通り
splitで使ったデリミタ(この場合は「<」)を消さずにそのまま使える(!)という事です。

入力した正規表現そのままをデリミタにすれば、マッチしているものが幾つあるのか
ループでの表現をする際に抜け出すポイントがこれでわかるなー、と思ったのですが。。

294 :名無しさん@勉強中 ★:05/10/08 15:11:17 ID:???
と書いてからPerlの書式を真似したら
出来ました・・

<script>
var dat="#aabb#ccdd\n#ee";

lines = dat.split(/(?=#)/);

document.write(lines[0]+'<br>');
document.write(lines[1]+'<br>');
document.write(lines[2]+'<br>');
</script>

「document.write〜」の3行は
<br>を間に挟む為に分けてあるだけです。

295 :名無しさん@勉強中 ★:05/10/08 17:23:58 ID:???
さて
htmltodatに名前とメール欄を逆転する機能をつけて頂いたので
とりあえず>>287の正規表現を変えてみようとしたんですが
簡単な筈なのに、何だかうまくいかない。

何でだろう何でだろうとあれこれやって約30分。(そんなにかかってないか)

メール欄は名前の後に半角空欄一つのあとに「[]」で出てくるんですが
これがグループ化されていると誤認識されてるみたいなのが原因で
エスケープさせるとあら不思議 使えるようになりました。

m#<div class="day"><a.+?>([0-9]+)</a> 名前:(.*?) \[(.*?)\] 投稿日:(.*?)<br>
<div class="body"> (.*?) </div></div>(<div class="day">|[  ]+(?:<hr.*?>|<div align="center">))#mi

しかし
改行しないと投稿出来ないというのは何とも もどかしいなあ


296 :名無しさん@勉強中 ★:05/10/08 17:27:39 ID:???
本文前後の「?」を忘れてました

m#<div class="day"><a.+?>([0-9]+)</a> 名前:(.*?) ?\[(.*?)\] 投稿日:(.*?)<br>
<div class="body"> ?(.*?) ?</div></div>(<div class="day">|[  ]+(?:<hr.*?>|<div align="center">))#mi


297 :名無しさん@勉強中 ★:05/10/09 15:59:02 ID:???
とりあえず、makimo.toのhtmlに特化したものが
ここまで出来ました。

http://www.geocities.jp/mirrorhenkan/htmltodat/htmltodat-makimo-to.html

あと最低限やらなければならない問題点:
(1)html部分の残り(ヘッダ&フッタ)の除去
(2)1行目にスレッドタイトルを入れる
(3)レスアンカーの変更(前後の<a>タグの除去および「>」を「&gt;」に置換する)
(4)URLの前後の<a>タグの除去
(5)2ch内の別スレのリンク書き込みがmakimo.to内のリンクに変更されているので修正

考えつくのは、これくらいでしょうか。
簡易プレビューやリセットボタンとかはその次の段階という事で(簡単そうだけど)


298 :名無しさん@勉強中 ★:05/10/10 19:33:28 ID:???
数日前からwshスレの過去ログを見させて頂いているのですが
すごく参考になります。
こんな事もあんな事も出来るのか。
正規表現も可能みたいなので
勉強したら D&Dでdat→htmlやhtml→datの変換をするものとかも出来るかもしれません。

最新スレはこちらです
http://pc8.2ch.net/test/read.cgi/win/1126543183/

299 :名無しさん@勉強中 ★:05/10/10 19:39:34 ID:???
ちなみにどんな事が可能か というと
例えば クリップボードにあるテキストをそのままdat保存するスクリプト
(初代スレからのコピペですが)

−−−−−
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Dim fs
Dim f
Dim file_name

Set Ie = WScript.CreateObject("InternetExplorer.Application")
Ie.Navigate "about:blank"
Set oClip=Ie.Document.parentWindow.clipboardData
sData=oClip.getData("text")
If IsNull(sData) Then sData=""
file_name = InputBox("datファイルのキーNo.を入力してください")
Set fs = CreateObject("Scripting.FileSystemObject")
set f = fs.CreateTextFile(file_name+".dat", True)

f.Write sData
f.Close
−−−−−

上のをそのままメモ帳などにコピペして
例えば「clipボードのdatを保存.vbs」で保存して下さい(拡張子はvbs)
で、例えばdat2katjudatでの変換結果をクリップボードにコピーした後
上で保存したvbsファイルをダブルクリックすれば
メモ帳を開いてペーストして保存という作業が一発で完了します。

300 :名無しさん@勉強中 ★:05/10/10 19:52:52 ID:???
なぜここに書くかというと
geocitiesでは拡張子vbsのファイルのアップロードは許可されてないみたいだからです
上でうんともすんとも言わない方は
wshが入っていないのかもしれません。
それでもvbsが使えないPCの人は・・・どうしましょ

多分Windowsだけでしか使えないんでしょう
LinuxやMacでは同じ事出来るのだろうか
MacのAppleScripだと同じようなものがあるかもしれないなー
とふと思ったり。
http://pc8.2ch.net/test/read.cgi/jobs/1031756350/

301 :名無しさん@勉強中 ★:05/10/10 19:54:58 ID:???
>>300の書き忘れ
wshの導入方法のURLです
http://www.roy.hi-ho.ne.jp/mutaguchi/wsh/install.htm

302 :名無しさん@勉強中 ★:05/10/10 21:08:53 ID:???
脈絡の無い事ばかり書いてますが まあ自分用メモなので。

という事で、急ごしらえのwshスレの過去ログです
自分の検索用なので、別にそれだけですが
http://smile.poosan.net/mirrorhenkan/wsh/

で、色々見させてもらっています


http://smile.poosan.net/mirrorhenkan/wsh/read.php/1058829737/18-22n

↑これを流用させてもらって
html化スレのURLを入力→ソースをクリップボードにコピーとか出来たら
javascript版もそれなりに使えるものになるかもしれないですね


あと
先輩を発見しました
多分、同じような事をしようとされていたのでしょう
http://smile.poosan.net/mirrorhenkan/wsh/read.php/1058829737/961-967n

303 :名無しさん@勉強中 ★:05/10/11 20:25:01 ID:???
正規表現記入欄のスクロールをOFFにして
アンカータグ削除のチェックボックスもつけました。

http://www.geocities.jp/mirrorhenkan/htmltodat/

ヘッダとフッタの除去がなかなかうまくいきません。
ヘッダは何とかなりそうですが(それとてどうしたもんでしょ)
フッタは目印の記入欄をつけなきゃならないかも。

決め打ちだと汎用的なものにはならないですし。

304 :名無しさん@勉強中 ★:05/10/11 20:29:50 ID:???
投稿してから気付きましたが
タグ削除の所は ファイル内のテキストを一斉置換してるので
be欄とかにも影響するか と思ったんですが
・・えーと どうなるんでしょ



305 :名無しさん@勉強中 ★:05/10/12 19:15:33 ID:???
何とか形になったと思います。いやー、面白かったー。

http://www.geocities.jp/mirrorhenkan/htmltodat/

あとは、汎用的な正規表現を呼び出すことくらいでしょうか。

かちゅ〜しゃdatのコンバータのソースを見直してみましたが、
かちゅdatにダイレクトに変換するようなものも結構簡単にできそうです。
でも、・・・それはまた別の話。

306 : ◆/vmukiyuzw :05/10/13 00:25:52 ID:ZJxHEiAg
勝手にリンクしちゃいました。申し訳ない。
http://jbbs.livedoor.jp/bbs/read.cgi/computer/1929/1038409548/32
まあ読んでる人はあんまりいないだろうなとは思いますが。

307 :名無しさん@勉強中 ★:05/10/13 20:22:25 ID:???
さて
htmltoかちゅdatも簡単に出来ちゃったので
いよいよ神になれるでしょうか(はいそこ石投げない)
↑あんまり書くとイヤミみたいになっちゃうな・・。ごめんなさい

http://www.geocities.jp/mirrorhenkan/htmltodat/htmltokdat.html

昔とった篠塚とやらで
dat2katjudatを作る時 鬼のように悩んだ事が役立ったみたいで
実質 15分かそこらで完成しました。

ただし、スクリプトにも書きましたが問題点が二つ。
(1)名前やメール欄に入力されたURL等にもアンカーを施してしまう
(2)BEコードの挙動がhtmlによって様々なので、未実装である

(1)はスクリプト全体を変更しなければならない問題なので、私はやりません。
まあ仕様という事で。

(2)は本家のhtmltodatと同様という事で。


さーてと、もうやる事もなくなった感じだなー。

308 :名無しさん@勉強中 ★:05/10/13 21:01:58 ID:???
>>307は痛い事を書いてしまった・・猛反省)

>>306
いえいえです
でもこの掲示板、リンクする程の事も書いてないと思うのです・・。
特に何かをサポートしている訳でも無いですし
テーマも特になく 迷走しているだけのような

それはそうと、
今回のバージョンアップはすごいですね。
変換式のみならず前処理・後処理まで。

ところで、変換結果式指定で「<b>$3</b>,$2,$4,$5,」とやって変換してみたら
「no strings now」というエラーになりました。
「<b>$3<\/b>\,$2\,$4\,$5\,」とエスケープさせても同様です。
・・それだけの話なんですが。

309 : ◆/vmukiyuzw :05/10/13 21:56:32 ID:ZJxHEiAg
>>308
> ところで、変換結果式指定で「<b>$3</b>,$2,$4,$5,」とやって変換してみたら
> 「no strings now」というエラーになりました。

内部的に、変換結果式のセパレータは「<>」であることを前提に扱っている部分が
あって、そこを変更するのは無理っぽいです。

なので、こういうときこそ後処理を使っていただけたらと。

s#(.*?)<>(.*?)<>(.*?)<>(.*?)<>(.*?)#<b>$1</b>,$2,$3,$4,$5#

・・・と書いたところで、処理の順番上これでも対処できないことに気づきました。
急遽対処したバージョン(0.4.1)をUPしましたのでこれで試していただけないかと。

310 : ◆/vmukiyuzw :05/10/13 22:48:09 ID:ZJxHEiAg
> 内部的に、変換結果式のセパレータは「<>」であることを前提に扱っている部分が
> あって、そこを変更するのは無理っぽいです。

というのは、具体的にはプレビュー表示処理の部分です。
ここは非常に単純ですがDAT2HTML的な処理をしており、そこまでに出来ている
datが「<>」区切りであることを前提にしているので、ここに手を入れるのはまさに
車輪の再発明w、とまでは言いませんが結構手間だったりするのです。
プログラム全体から見てもそんなに力を入れたい部分でもありませんし。

311 :朝飯前@名無しさん@勉強中 ★:05/10/14 07:16:50 ID:???
おはようございます

>>309
バージョン(0.4.1)だと無問題でしたです。ありがとうございます。

せっかくなので、後処理で遊んでみました。

s#,#@`#
s#(.*?)<>(.*?)<>(.*?)<>(.*?)<>(.*?)#<b>$1</b>,$2,$3,$4,$5#
s#(h?t?tps?:\/\/)([\w\+\?\.\/\-~&=:@%;,\#]+)#<a href=\"http:\/\/$2\" target=\"_blank\">$1$2</a>#
s#([^h?ttps?:\/\/]|^)(www\.)([\w\+\?\.\/\-~&=:@%;,\#]+)#$1<a href=\"http:\/\/$2$3\" target=\"_blank\">$2$3</a>#
s#(>|>>|>|>>|≫)([0-9]+|[0-9]+)([^-−ー])#<a href="http://test.com/st=$2&to=$2" target="_blank">$1$2</a>$3#
s#(>|>>|>|>>|≫)([0-9]+|[0-9]+)([-−ー])([0-9]+|[0-9]+)#<a href="http://test.com/st=$2&to=$4" target="_blank">$1$2$3$4</a>#



312 :朝飯前@名無しさん@勉強中 ★:05/10/14 07:25:43 ID:???
# 途中で送信してしまった・・

上、穴だらけですが
このようにやるとレスアンカーも何とかなるようです。
ただ全角数字がやはりネックですが・・・。
(別にこういうのに対応して欲しいという訳でなく、ただ遊んでいるだけです・・)

ところで、regexp.txtのように
前処理・後処理・変換式等のファイルを呼び出し保存される予定はありますでしょうか。
(同じく 対応して欲しい という訳ではないです・・)


313 :さて行ってくるか@名無しさん@勉強中 ★:05/10/14 07:38:14 ID:???
(↑上 後半のは「できたら対応して頂けると嬉しいですが大変ならいいです」と差し替えさせて下さい)

>>311の変換式だと
本文以外の箇所にもアンカーをふってしまうので

s#(.*?),(.*?),(.*?),(.*?)(>|>>|>|>>|≫)([0-9]+|[0-9]+)([^-−ー])(.*?),(.*?)#$1,$2,$3,$4<a href="http://test.com/st=$6&to=$6">$6$7</a>$8,$9#

とかすれば解決するかもですね(上だと各行ひとつづつしかアンカー処理出来なさそうですが)



314 :本当に行ってくるか@名無しさん@勉強中 ★:05/10/14 07:45:50 ID:???
・・そうか、
javascript版のhtmltoかちゅdat も
後処理すれば本文以外の箇所のアンカーを取り除く事が出来るかもです。。

>>310
> ここは非常に単純ですがDAT2HTML的な処理をしており、そこまでに出来ている
> datが「<>」区切りであることを前提にしているので、ここに手を入れるのはまさに
> 車輪の再発明w、とまでは言いませんが結構手間だったりするのです。

javascript版のdat2htmlも同様みたいで、かちゅdat変換したdatをhtml変換しようとすると
エラーが出てしまいます。
dat2htmlに手を入れるのは何とも厄介で、たぶんこのままです・・


行ってきます


315 :名無しさん@勉強中 ★:05/10/14 19:03:48 ID:???
>>307
> (1)名前やメール欄に入力されたURL等にもアンカーを施してしまう
> (1)はスクリプト全体を変更しなければならない問題なので、私はやりません。

・・と書きましたが、mukiyuさんのhtmltodatの後処理にインスパイアw 
されましたので 対応してみました。
ただ、通常のかちゅdatの変換結果を 分割格納して ループ処理させて
その中でアンカーを外す処理をしている為、変換量が多ければ多いほど
時間がかかると思いますので(サンプルは短いのでそう変わらない感じですが)
チェックボックスにしてオンオフ出来るようにしました。

それと、これまた本家にインスパイアw されましたので
htmltodat・htmltoかちゅdat両方とも 読込行と変換行も表示するようにしました。
(変換後しか表示されないので あんまり意味ないけど)

それと、レスアンカー処理のコードを見ていて気付いたのですが
「&gt;」ではない「>」か「>>」+「数字」の箇所が かちゅdat変換時にアンカー処理されていなかったので
処理するようにしました。
ただhtmltoかちゅdatで「>1」とかをアンカー処理させるようにしようとすると
なんでだかスクリプトエラーが出るので、そこはまた仕様という事で。
(「>1-2」とかだと大丈夫なんだけどな)

という事で
htmltodat/htmltoかちゅdat/dat2katjudat
の3つを更新したという事で
今日はよくやったなあ。



316 : ◆/vmukiyuzw :05/10/14 19:43:17 ID:droaKKC2
>>312
> ただ全角数字がやはりネックですが・・・。

trコマンドを使えば出来るかなと思って調べてみましたが、trコマンドは
文字列単位ではなく文字単位で作用するので、特定の文字列パターン
での全角数字だけを変換する、というようなことは出来ないようです。
(&st=の後、&to=の後だけ変換する、ということが出来ず、全ての
全角数字が変換されてしまう)
地道にずらずらsコマンドを書き並べるしかないかもしれませんね。

> ところで、regexp.txtのように
> 前処理・後処理・変換式等のファイルを呼び出し保存される予定はありますでしょうか。

これは予定あります。ただ、どういう方式で呼び出し・保存するのがいいのか
考え中です。
・3つの組み合わせを1パターンとして保持するのか、それぞれを別物として
 保持・指定できるようにしたほうがいいのか
・上とも絡みますが1個のファイルで保持するのか、ファイルを分けたほうが
 いいのか
 特に、前処理・後処理は複数行の指定が可能なので、パターンごとにファイル
 分けるほうが簡単だよなあと思ったり。

317 : ◆/vmukiyuzw :05/10/14 20:26:52 ID:droaKKC2
>>313
> (上だと各行ひとつづつしかアンカー処理出来なさそうですが)
s#なんちゃら#かんちゃら#g
みたいにgスイッチつければいいのでは?

318 :名無しさん@勉強中 ★:05/10/14 21:11:49 ID:???
>>316-317
予定ありますか!
3つの組み合わせを1パターンでやった方が楽な感じもしますが、
複数行とか・・・ごめんなさい何とも。

ただ、後処理で かちゅdat変換出来るようになったとしても(何だかできそうです)
レスアンカーの箇所でスレッドのURLをつけなければならないので
一つ一つ違うものになってしまうですね。
後処理に使う正規表現を生成するjavascriptでも作ってみようかな・・
(でもやはり全角数字がネックです)

そうか、gスイッチか。すっかり忘れてました。

319 :名無しさん@勉強中 ★:05/10/15 19:03:57 ID:???
>>298でちょっと触れたwshですが

> 勉強したら D&Dでdat→htmlやhtml→datの
> 変換をするものとかも出来るかもしれません

単純なテキスト文字変換のサンプルが結構ありますが
複数のファイルをドラッグ&ドロップで一括変換出来るみたいだし。


やってみようかな
dat2htmlのwsh版 

(↑放言だけなら誰にでも出来ますよ)


320 :名無しさん@勉強中 ★:05/10/16 22:29:42 ID:???
さて
スレのURLを入力して 変換ボタンを押すと
>>311>>313で書いたような後処理の変換式が出てくるようなものができるかな と
まずは正規表現からやってみているのですが
なんーだかうまくいかんです。
「<a href="<a href=&gt;1云々」(うろ覚え)とか出てきて
ケアレスミスしてるんだなと思いますが 式も保存しなかったし
何だか疲れちゃった
画面を見過ぎて目がハリーポッター(←疲れてるんだな・・)

ハリーポッターといえば
同人板より
http://comic6.2ch.net/test/read.cgi/doujin/1118143339/698-702n
お役に立てたようで何よりです

321 :名無しさん@勉強中 ★:05/10/17 21:19:09 ID:???
htmltodatの度重なるバージョンアップがすごいですすごいです

という訳で、snapshotのdatへの変換式についてまた考え直してみました。

http://www.geocities.jp/mirrorhenkan/snapshot/

322 :名無しさん@勉強中 ★:05/10/17 21:39:59 ID:???
上ので
とりあえず判っている不具合が一つ。
→be処理がうまくいってません。

例えば
http://p2.chbox.jp/read.php?url=http://news19.2ch.net/test/read.cgi/newsplus/1126368731/all
だと、
290とか337とか344のbeコードのアンカーがそのまんまです。
「beコード削除」にチェックを入れればアンカータグは消せますが、
それだと、発言者のbeプロファイルが表示出来ません。
(上の例だと、発言者が本当にひろゆきさんかどうか
 プロファイルを見ないとわかんないです)
いちおう変換式つけたつもりだったんだけどなあ。


頭が朦朧としてますので、本日はここまでという事で。
宜しければ、何方か助言を頂きたく。

323 :名無しさん@勉強中 ★:05/10/17 22:00:07 ID:???
すまんです
gスイッチを忘れてました
s#\(<a href="http://be.2ch.net/test/p.php\?i=(\d+)&u=(.+?)\?(\#\#\#)</a></dt>#BE:$1-$3</dt>#g
とやったらOKでした
ページの直しは明日やりましょう。。

でもdatでのbeコードはこれでいいのでしょうか。確かめる気力がない。


あと、セパレータで「#」を使っている訳ですが
beのところで「#」が1〜3個出るのですが
これってどう書けばいいんでしょう? 「\#+」でいいのでしょうか?

今のところは「\#\#\#」と決め打ちしてますが。。


324 :名無しさん@勉強中 ★:05/10/17 22:08:37 ID:???
あと「http://〜」の前の「(p)」も消えてませんでしたか

http://jbbs.shitaraba.com/bbs/read.cgi/computer/1929/1038588508/212
とか、大層勉強になります

325 : ◆/vmukiyuzw :05/10/18 01:30:21 ID:htuWOS9C
>>323
> あと、セパレータで「#」を使っている訳ですが
> beのところで「#」が1〜3個出るのですが
> これってどう書けばいいんでしょう? 「\#+」でいいのでしょうか?
> 今のところは「\#\#\#」と決め打ちしてますが。。

セパレータは必ずしも「#」である必要はないんですよ。単にHTML中では「/」が
多用されるからエスケープする手間を省くため「#」を推奨しているだけです。
でもセパレータ自体をエスケープしてかつ*や+をつけるにはどうすればいいんで
しょうね。調べてみたけどはっきりとはわかりませんでした。試してみればいいだけ
かもしれませんが。
おそらく「\#+」でも大丈夫だと思いますが「[#]+」みたいに[]で括る方法もあるかと
思います。

326 :名無しさん@勉強中 ★:05/10/19 19:34:17 ID:???
>>325
・・すみません、モチベーションが上がったら やってみます。

327 :名無しさん@勉強中 ★:05/10/21 17:56:00 ID:???
とりあえずgスイッチを入れました。

で、セパレータの件は またという事で・・・。

328 :名無しさん@勉強中 ★:05/10/21 18:34:52 ID:???
ところで
えまのん って レジストリをいじらないというので DLしてやってみました。

http://www.emanong.net/

Janeより軽いです。
で、えまのんスレを1〜3までDLして読ませて頂いたのですが
これまた興奮(っていうのもおかしいな)しました。
作者さんと使っている方々との掛け合いがこれまた面白いー。

そして、datのえまのんdatへのコンバータなのですが・・・まだ無いようです。
パート2の547で作者さんが提示されているのですが
それっきりみたいだし。

http://www.emanong.net/1053267862.html
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−
547 :おりび ◆is.EManoNg :03/11/20 00:55 ID:T02WaiEW
>>542 えまのんに内蔵されるってだけで「datファイルをえまのんの.2CD
ファイルに変換するツール」そのものなんすけどね。>インポート機能。
あまり需要が無いなら後回しかな、めんどくさいので(w。
−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

よし、それなら・・と一瞬思ったのですが
作者さんがまだお元気(と書くと失礼ですが)ですし
そんなのやっても失礼なだけでしょう。。

ただ、色々やってみると
スレを読み込んだ後 そのタブを右クリックすると
「HTMLファイルを読み込む」というのがあり、
あれこれ試してみると、
2chのhtml化済み過去ログ(この場合、htmltodatのsample.html)と
現役スレのhtmlが読み込めました。
(いずれもローカル保存したものですが)
レスアンカーのポップアップやツリー表示等も出来ましたので
これで充分みたいです。

という訳で、もしやるとしたら
htmltodatの「sample」か「read.cgi?7.00」でdat化出来るようなhtmlを出力する
dat2htmlを作れば、えまのんのdat(というか2CD)にも対処出来そうです。
その場合、index2.2CI(←subject.txtの えまのん版)に加えたいスレのキーと
題名を追記して えまのんを起動して・・という流れでしょうか。

2chに完全に準拠するhtmlを出力するdat2htmlですが
・・この場合は、本家dat2htmlの作者さんにお願いしたほうがいいかも・・。
何だか今、緻密に考えられないです自分。。

500KB
続きを読む

掲示板に戻る 全部 前100 次100 最新50
名前: E-mail(省略可)

0ch BBS 2006-02-27