HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2007
0508
NeetHSP内でHtmlタグ6未解決


Neet

リンク

2007/5/8(Tue) 23:05:42|NO.8145

HSP内でHtmlタグをしようすることは可能でしょうか?
できるならば方法を教えてください。
お願いします。



この記事に返信する


f

リンク

2007/5/8(Tue) 23:10:01|NO.8146

・・・・HSP内で、HTMLタグ書いても、意味無いんでね?
そう言うファイルにして出力すると言うならともかく。



eller

リンク

2007/5/9(Wed) 06:48:29|NO.8149

はじめまして、ellerと申します。
HTMLタグの何を利用されたいのかはよく分かりませんが、HSP上での描画に
HTMLタグを使おうとしていらっしゃるのだろうと思ったので、その前提で書いてみます。

HTMLタグの動作はそれぞれ
<font><i><b><s><big><small>などフォント関連
 → font 命令, color 命令
<a>
 → リンク先を開くには exec 命令
<img>
 → picload 命令, gcopy 命令
その他<table><ul><ol>など
 → line や circle, mes などの組み合わせ?

とかで似せられる思います。
さらにHTMLを解析して表現したい…となると、その「解析」はHSPが勝手にやってはくれない
(少なくとも標準命令では)ので、自分で考える必要があります。
getstr 命令とかに慣れていないと、少し難しいかも知れません。

参考までに、b, i, brタグだけを解析できるスクリプトを考えてみました。
    html = "<b>太字</b>とか<i>斜体</i>とか<br>改行とか"
len = strlen(html) x = 0 : y = 0 // 描画位置 bold = 0 // 太字にするか? italic = 0 // 斜体にするか? fontSize = 24 // フォントのサイズ(HTMLのそれとは異なる) repeat len font msgothic, fontSize, bold + italic * 2 getstr sTmp, html, cnt, '<' size = strsize if size > 1 { // 空っぽのときは描画する必要はありません pos x, y mes sTmp x += ginfo_mesx // 描画した文字の幅だけ描画位置を移動 } if cnt + size >= len : break getstr sTmp, html, cnt + size, '>' // この時点でsTmpにはタグの中身が格納されているはず size += strsize sTmp = getpath(sTmp, 16) // 小文字に変換すれば大文字が混ざっててもOK if sTmp == "br" { x = 0 y += ginfo_mesy } if sTmp == "b" : bold = 1 if sTmp == "/b" : bold = 0 if sTmp == "i" : italic = 1 if sTmp == "/i" : italic = 0 wait 1 continue cnt + size loop stop
getstr 命令で < までの文字列を取り出して描画し、
もう一度getstr 命令で > までの文字列を取り出して(このときタグ内部の文字列が格納されて
いるはずです)、タグの種類に沿った処理をしています。

入れ子は考えていませんし完全にブラウザと同じ動作をするわけではありませんが、
解析方法の参考にはなると思います。がんばってくださいね。



eller

リンク

2007/5/9(Wed) 07:48:27|NO.8150

1点だけ補足を。

「タグの中身」「タグ内部の文字列」とは、この場合
<と>の間に挟まれた文字列のことを表しています。

タグで挟まれた文字列のことではないので、注意してください。



axobj

リンク

2007/5/9(Wed) 20:59:07|NO.8168

サンプルビューアー → NEW → web.hsp

に、載っています。



eller

リンク

2007/5/10(Thu) 06:35:58|NO.8169

> axobj さん
HTML「タグ」をしたいと仰っていたのでHTML「文書」を表示させたいのではないと思っていましたが、
考え直してみればそこまで書き分けていらっしゃるとは限りませんね。
その方法も併記するべきでした。

勉強になりました。そして、フォローありがとうございました。



f

リンク

2007/7/7(Sat) 02:36:15|NO.9340

age



ONION software Copyright 1997-2023(c) All rights reserved.