[PR]生年月日で2010年占い鑑定:初回無料!貴女の運命運勢を占う

~katsuhiko メッセージボード

back 1501-1550

1551-1600

1601-1650


1600 Re^15: もう一つ質問 コメント数:  10件
  みずほちゃん  | 2001/09/09 (日) 21:50
 http://www.portnet.ne.jp/~mzh/
> # リテラルの最終行が空白とデリミッターだけの時に
> # おかしくなりますが、これは自分でなんとかしたいと思います。
LiteralStringProc にある

if not FIsStartToken then
Inc(FP);

のせいでした。
PercentProcの方であらかじめinc(FP)して対処しました。


本田さんにはかなり迷惑をかけましたが、
今のRubyFountainでほぼ完成のレベルに達したと思います。
後はヒアドキュメントですが、これはちょっと無理な気がします。
ヒアドキュメントは

str = <<EOF
リテラル

ほげ
EOF

のようなもので、最初のEOFから次のEOFまでが文字列の
リテラルになります(EOFの部分には任意の文字列を使うことができます)。

# ヒアドキュメントはPerlにもあるリテラルなので、
# PerlFountainに実装されるのを待つつもりですが(^^;



1599 Re^14: もう一つ質問 コメント数:  12件
  みずほちゃん  | 2001/09/09 (日) 21:19
 http://www.portnet.ne.jp/~mzh/
うう。結局、本田さんに頼りきってしまってすいませんでした。
私の勘違いしていたところもあって、
少し修正しないといけませんが、頂いたRubyFountain.pas
でほぼいけそうです。

# リテラルの最終行が空白とデリミッターだけの時に
# おかしくなりますが、これは自分でなんとかしたいと思います。

あと、二つほど質問。

一つ目
元の版の SlashProc では「/」の扱いを決定するために
「/」の直後に空白があるか無いかを調べています。
本田さんの版で FP^ を (FP + 1)^ にしているということは
私のコードが間違えてます?

二つ目
PercentProc の最初に (FP + 1)^ in ['q', 'Q', 'r', 'x']
で判定しているのはこれの方が処理が速いからですか?

# ところで、定数の「=」を揃えているのって趣味ですか。



1598 引用行の強調表示 コメント数:  4件
  DR-X   | 2001/09/09 (日) 16:52
 本田さん、こんにちは。DR-Xです。

少し前にも話題になっていたのですが、引用行の強調表示に
チャレンジしています。

 先頭が設定した記号だと引用行になるというものなのですが、
パーサーを拡張してSourcePosが0のときに記号があるかを
判別すると、折り返しされた2行目の先頭に記号があっても
引用になってしまいます。

 論理行の先頭だということがわかればいいのですが、なにか
方法はないでしょうか。
 よろしくお願いします。





1597 Re: TEditorのCBC5へのインストール コメント数:  0件
  本田勝彦  |  2001/09/09 (日) 10:58
添付のヘルプファイルに 「C++Builder での利用」というトピックが
ありますので、一度見てやって下さい。

最新版のヘルプファイル hehlp232.lzh にある記述の方が内容が濃かった
かもしれません。



1596 TEditorのCBC5へのインストール コメント数:  1件
  笹川 賢一  | 2001/09/09 (日) 07:42
 http://www5a.biglobe.ne.jp/~sasagawa/MLEdit/
TEditorのC++Biulder5(以下BCB5)へのインストールがうまくいきません。
ご教示ください。

(1)hedit169.lzhをダウンロードし同名のフォルダーに解凍して、bcb5のLIBフォルダーに置きました。

(2)DSGNINTF.pasというファイル探して、(1)のフォルダーにコピーしました。このファイルはCBC4(5ではなくて)に入っていました。

(3)CBC5でコンポーネントのインストール->新規パッケージに追加を選択、ユニットファイル名はhedit169のHEDITREG.PASを入れました。パッケージ名はHeditと入れました。

(4)OKにするとコンパイルする必要がある旨のメッセージがでます。
エラーが24個でます。DsgnIntfが問題のようです。



1595 Re^13: もう一つ質問 コメント数:  13件
  本田勝彦  |  2001/09/09 (日) 02:50
最新版はまだ見せて頂いておりませんが、PrevToken データフィールドが
あることに気が付きました。使えるようです。

取りあえずアップロードしましたので、試して見て頂けますでしょうか?
SlashProc, PercentProc 回りを勝手にいじらせて頂きました。

http://compodev.at.infoseek.co.jp/arc/rubyfountain_kb1.lzh

おまけで、Imagebar に対応した TDebugEditor も更新しました。

http://compodev.at.infoseek.co.jp/arc/debugeditor.lzh




1594 Re^3: Pentium 75MHz コメント数:  0件
  本田勝彦  |  2001/09/09 (日) 02:45
yahoo オークション(要するに中古品)にしては、かなりの美品をげっと
出来たので、ちょっと嬉しい気分です。足りなかったお脳もげっと出来たし
(32M2,000円)メモリが届いたら、ノートの復活です。

古いデータは夜ゲイツさんのおかげで何とかなりそうだし。

皆さんのご厚情に多謝。



1593 Re^5: Pentium 75MHz コメント数:  0件
  本田勝彦  |  2001/09/09 (日) 02:42
> 来週送りますので、送り先のメールお願いします。

会社の住所をメール致しました。お手数をお掛けいたしますが、
よろしくお願い致します。





1592 Re^4: Pentium 75MHz コメント数:  1件
  夜ゲイツ  | 2001/09/08 (土) 09:20
> よろしかったら、お譲りくださいませんでしょうか?実は諦めていたデータが
> まだ少しあるので、取り出すことが出来ると有り難いんですよね。
> ってHD合わなかったりして(^^; Ne <> Ns

来週送りますので、送り先のメールお願いします。



1591 Re^12: もう一つ質問 コメント数:  14件
  みずほちゃん  | 2001/09/08 (土) 01:57
 http://www.portnet.ne.jp/~mzh/
うーん。手もとRubyFountainは
ほとんどこれと同じことをしています。

FElementIndex を使ったメソッドテーブルを使用する場合、
それぞれの数字に対して、メソッドテーブルに登録できるメソッドは
当然、一つのメソッドだけです。
%Qと%rのようなほとんど同じリテラルを扱う場合、
区切り文字を探す処理は同一メソッドで構わないのですが、
上の二つではトークンが違うためどのリテラルの続きになっているか
確認する必要があります。そのためトークン
の情報を保持する新しいフィールドが欲しいという要望を出しました。

本田さんが提案された方法は%Qのようなリテラルの
トークンの種類が一つの時(%Q、%q、%xは表現の仕方は違いますが、
トークンとしては一種類です)には良いのですが、
Rubyのような文法ではちょっと無理があります。

# 日本語が下手なので、あまり上手く表現できません。

とりあえず最新版を

http://www.portnet.ne.jp/~mzh/archive/rbft-test.zip

に置いておきます。

# メソッド名とか滅茶苦茶ですが

TRubyFountainParser.NormalTokenProc で FElementIndex の値を
参照して、FTempMethodTableのメソッドテーブルで処理しています。
登録してあるメソッドは TmpMethod です。



1590 Re^2: Pentium 75MHz コメント数:  1件
  ゆうきひろ  | 2001/09/08 (土) 00:48
 http://homepage2.nifty.com/ultla7/mozart/_start.htm
> 5,000円でっせ。Ns 買った頃の Pentium ノートって百万してたような(^^;
 うーむ、すごい。ただひたすらすごい(^^;)。
http://www.u-comnet.com/
↑でPentium 75MHzクラスのノートPCを探してみましたが、さすがに5千円というのはないでした。7千800円くらいが最低だったような。詳細を見てないのでマシンの程度がわかりませんが。

> なまくらなコードは絶対に許してくれない DX2 50Mhz は重宝してたのですがね。
> Pentium75 はかなり高速に描画してくれるので、TEditor のソースコードが
> 少し「だる」になるかもしれませんが、勘弁してね。
 なるほど。TEditor の軽快さはここに原因があったのか。思わず拝みたくなります(^^;)。



1589 Re: TStringsPrinter コメント数:  0件
  本田勝彦  |  2001/09/08 (土) 00:30
> はじめまして。

どうもです。ようこそ。

> このたびDelphi6でTStringsPrinterを使ってみようと思ったのですが、
> インストールが上手く行かず困っています。

ここのログを少し遡ったところに Kobayashi さんの発言がありましたので、
以下に引用します。

>TStringPrinterでも コメント数:  1件
>  Kobayashi   | gs_kobayashi@anet.ne.jp 2001/07/31 (火) 02:18
>TStringPrinterも同様の対処が必要でした。一応ご報告(^^;
>
>ちなみに、新規パッケージとしてインストールする場合には、
>requireにdesignide.dcpを追加しないと「proxies.dcuが見つからない」とエラー
>がでます。
>思いっきりヘルプに書いてあったのに気づかずに探し回ってました・・・

ということだそうです。試して見て下さいね。



1588 Re^3: Pentium 75MHz コメント数:  0件
  本田勝彦  |  2001/09/08 (土) 00:24
> 5,000円といえば今はスイッチングハブ1台分位の値段ですね。

それは、高級な部類のでわ?

> Pentium75MHzはテスト用なんですか?それとも主力開発マシン?

テスト用のような、そうでないような・・・会社にいて思いついた時に試せるので、
便利なんですよね。

> どっちにしろGHzが主流の昨今、凄い話です。私も改めて自分の
> PCを大切にしようと思いました。

PC9801F2もまだ家にはあったりします。初めて買ったヤツなので
捨てられないだけなのですが。



1587 Re^3: Pentium 75MHz コメント数:  2件
  本田勝彦  |  2001/09/08 (土) 00:19
> それと、元祖Ne(486SX33)をオプションCPU(DX2 50Mhz 当時11万)に換装
> した物を持っていますが、なんならプレゼントしましょうか?

よろしかったら、お譲りくださいませんでしょうか?実は諦めていたデータが
まだ少しあるので、取り出すことが出来ると有り難いんですよね。
ってHD合わなかったりして(^^; Ne <> Ns

> 当時カラーノートがやっと100万切ったので飛びついて買った物ですが、あまり
> 高かったので、捨てられなかったんですが、使う事もないので活躍の場があれば
> Neも喜ぶ事でしょう。

そそ、昔は高かった。逝ったヤツも70万程度だったような・・・



1586 Re^3: Pentium 75MHz コメント数:  0件
  本田勝彦  |  2001/09/08 (土) 00:16
> うちでは PC9821Ne3(i486DX2 50MHz) に
> Linux を入れて、サーバーとして活躍してもらっています。

おぉ、ここにも98ユーザーが(^^)

> Pentium 75MHzくらいで5000円くらいなんですね。
> 一度安いノートを探してみようかな。

あの出品量を見ると、よくまぁ売れたモンだなぁなどと思ってしまいますね。



1585 Re^11: もう一つ質問 コメント数:  15件
  本田勝彦  |  2001/09/08 (土) 00:14
> うーん。多分、まずいです。
>
> %rも
>
> %r|^hoge
>
> |
>
> のようなリテラルをとりますから。

toQliteral, toQQliteral, toXLiteral, toRLiteral トークンを用意する。
これらを取得するためのメソッドに入るのは簡単だけど、抜ける時が困る
ということですよね。で ElementIndex ということなのですが。

PluralLinesLiteralProc で、

var
 C: Char;
begin
 FToken := FTokenOfPluralLines;
 C := Chr(Byte(FElementIndex));
 while not (FP^ in [#0, #10, #13]) do
 begin
  if FP^ = C then
begin

としてもダメっすか?余所で FElementIndex を参照するときは、例えば
if FElementIndex > 10 then
 リテラル処理
else
 case FElementIndex of
  トークンの処理
な感じで行けません?

> リテラルに関しては

見ましたが、入り組んでますね(^^;
PerlFountain が遠のくのを感じます(^^;;;



1584 TStringsPrinter コメント数:  1件
  meso   | 2001/09/07 (金) 19:30
はじめまして。
このたびDelphi6でTStringsPrinterを使ってみようと思ったのですが、
インストールが上手く行かず困っています。

新規パッケージの「StringPrinter.dpk」にインストールしようとしたのですが
そのパッケージのrequires部のdclusr(自動的に書かれた)の部分で
[致命的エラー]'C:\・・・\delphi6\Projects\Bpl\dclusr60.bpl'を作成できません
と出てコンパイルできません。

パッケージの仕組みがイマイチ良く分かっていないのですが・・
ぜひこのコンポーネントを使ってみたいので、お分かりでしたら教えてください。



1583 Re^2: Pentium 75MHz コメント数:  1件
  Km   | 2001/09/07 (金) 08:21
> 5,000円でっせ。Ns 買った頃の Pentium ノートって百万してたような(^^;
>
> なまくらなコードは絶対に許してくれない DX2 50Mhz は重宝してたのですがね。
> Pentium75 はかなり高速に描画してくれるので、TEditor のソースコードが
> 少し「だる」になるかもしれませんが、勘弁してね。

5,000円といえば今はスイッチングハブ1台分位の値段ですね。
Pentium75MHzはテスト用なんですか?それとも主力開発マシン?
どっちにしろGHzが主流の昨今、凄い話です。私も改めて自分の
PCを大切にしようと思いました。



1582 Re^2: Pentium 75MHz コメント数:  3件
  夜ゲイツ  | 2001/09/07 (金) 06:37
こんにちは。

> なまくらなコードは絶対に許してくれない DX2 50Mhz は重宝してたのですがね。
> Pentium75 はかなり高速に描画してくれるので、TEditor のソースコードが
> 少し「だる」になるかもしれませんが、勘弁してね。
>
> #Ns も出物があったけど、やっぱり買う気にはならなかったりして(^^;

最近うちのBBSにDX4−100で軽快に動きますとお便りがありましたが、
理由が解りました。
それと、元祖Ne(486SX33)をオプションCPU(DX2 50Mhz 当時11万)に換装
した物を持っていますが、なんならプレゼントしましょうか?
当時カラーノートがやっと100万切ったので飛びついて買った物ですが、あまり
高かったので、捨てられなかったんですが、使う事もないので活躍の場があれば
Neも喜ぶ事でしょう。



1581 Re^2: Pentium 75MHz コメント数:  1件
  みずほちゃん  | 2001/09/07 (金) 02:19
 http://www.portnet.ne.jp/~mzh/
うちでは PC9821Ne3(i486DX2 50MHz) に
Linux を入れて、サーバーとして活躍してもらっています。

> > でもその次のPCがPentium75MHzって(^^;;;
>
> 5,000円でっせ。Ns 買った頃の Pentium ノートって百万してたような(^^;
>
> なまくらなコードは絶対に許してくれない DX2 50Mhz は重宝してたのですがね。
> Pentium75 はかなり高速に描画してくれるので、TEditor のソースコードが
> 少し「だる」になるかもしれませんが、勘弁してね。
>
> #Ns も出物があったけど、やっぱり買う気にはならなかったりして(^^;
Pentium 75MHzくらいで5000円くらいなんですね。
一度安いノートを探してみようかな。



1580 Re^10: もう一つ質問 コメント数:  16件
  みずほちゃん  | 2001/09/07 (金) 02:13
 http://www.portnet.ne.jp/~mzh/
説明が下手で、すいません。

> まず % を検知してから q, Q, x を判別してその次にある文字の Ord 値を
> FElementIndex へ保持して、後は SingleQuotationProc のような処理。
> r の場合は、Element は関係なく RegExpProc へ分岐。
>
> で、まずいのですか?
うーん。多分、まずいです。

%rも

%r|^hoge

|

のようなリテラルをとりますから。

> この辺の Ruby の仕様がわかるドキュメントを紹介していただけますでしょうか?
> マニュアル全部読んでねは勘弁して欲しいですが(^^;

リテラルに関しては

http://www.ruby-lang.org/ja/man-1.6/?cmd=view;name=%A5%EA%A5%C6%A5%E9%A5%EB

擬似BNFが

http://www.ruby-lang.org/ja/man-1.6/?cmd=view;name=%B5%BF%BB%F7BNF%A4%CB%A4%E8%A4%EBRuby%A4%CE%CA%B8%CB%A1

にあります。TRubyFountainParserでは字句解析器レベル程度の
解析はしたいとおもっています。



1579 Re: Pentium 75MHz コメント数:  10件
  本田勝彦  |  2001/09/07 (金) 00:50
> 日記読みました。

を、ばれました?(^^;

> ついに486DX2が逝ってしまったのですね。

逝ったんです。

> でもその次のPCがPentium75MHzって(^^;;;

5,000円でっせ。Ns 買った頃の Pentium ノートって百万してたような(^^;

なまくらなコードは絶対に許してくれない DX2 50Mhz は重宝してたのですがね。
Pentium75 はかなり高速に描画してくれるので、TEditor のソースコードが
少し「だる」になるかもしれませんが、勘弁してね。

#Ns も出物があったけど、やっぱり買う気にはならなかったりして(^^;




1578 Re^9: もう一つ質問 コメント数:  17件
  本田勝彦  |  2001/09/07 (金) 00:42
まず % を検知してから q, Q, x を判別してその次にある文字の Ord 値を
FElementIndex へ保持して、後は SingleQuotationProc のような処理。
r の場合は、Element は関係なく RegExpProc へ分岐。

で、まずいのですか?

この辺の Ruby の仕様がわかるドキュメントを紹介していただけますでしょうか?
マニュアル全部読んでねは勘弁して欲しいですが(^^;



1577 Re^4: 行全体の描き分け コメント数:  0件
  shinw   | 2001/09/06 (木) 23:26
お世話になっています。

> そうですねぇ。Brackets を使わないで、Elements で { } などを判別して、
> 該当 Elements 内では、それが url でない限りコメントと同じ色で描画される
> トークンとして扱えば出来そうですね。挑戦してみて下さい。

は、はい。挑戦してみます。(^^;)

> アップロードしましたので、色々発言の方からダウンロードして下さい。

ありがとうございます。いただきました。



1576 Pentium 75MHz コメント数:  11件
  Km   | 2001/09/06 (木) 03:15
日記読みました。
ついに486DX2が逝ってしまったのですね。
でもその次のPCがPentium75MHzって(^^;;;



1575 Re^8: もう一つ質問 コメント数:  18件
  みずほちゃん  | 2001/09/06 (木) 02:59
 http://www.portnet.ne.jp/~mzh/
試してみたんですが、ちょっと不具合があるみたいです。

本田さんの指摘に従って、
FTmpMethodTable(本田さんの %Q's proc ) を
作り、それに加えて FElementIndex を区切り文字に変換する
FDelimitterList を用意したところ、
%q、%Q、%x については上手くいきました。

問題は正規表現を表すリテラルの %r です。
これはリテラルとしては上の三つと同じなのですが、
トークンとして別のものになるため、
どうしてももう一つ情報を保持する
フィールドが必要になります。

# 良い方法が思い浮かばないだけかもしれませんが。

Rubyのリテラルにはヒアドキュメントというリテラルがあるため
出きれば情報を保持するフィールドを二つ追加して欲しいのですが、
ちょっと無理でしょうか?

# フィールドを追加するとパースの処理が遅くなるので、
# あまり強く要望することは出来ないんですよねえ。



1574 Re^3: 要望 コメント数:  0件
  本田勝彦  |  2001/09/05 (水) 23:23
> Synedit は一度ソースを眺めたことがあります。
> ざっとしか見ていなかったのですが、
> lex もどきをベースにしていたんですね。
> 時間があったらもう一度のぞいてみようと思います。

SynGen フォルダがそれなのですが、mwEdit の時にあった文法サンプルファイル
が見あたらないので、仕様が変わっているのかもしれません。

> yacc には一度挫折してます(苦笑)

そりゃぁあなた、私だって(笑)



1573 Re^7: もう一つ質問 コメント数:  19件
  みずほちゃん  | 2001/09/05 (水) 20:20
 http://www.portnet.ne.jp/~mzh/
> ネストに対応するのは、今の仕様では無理です。デフォルトにたどり着くためには、
> 各行が状態のリストデータを保持せなあかんでっしゃろ。
> パースする処理に加えて、状態のスタックを準備する必要があります。
> コンパイラはそれをやってるワケで、この簡易(1段のスタック)版が、
> THTMLFountain で利用している PrevToken データです。
えーと、別にネストに対応したいわけではなくて、
境界部分をきっちり認識できるかなというのが
気になっているんです。

思考実験では上手くいきそうな気はしているのですが。

> アップロードしましたので試して見て下さい。 cf 色々発言
ありがとうございます。
あとで試してみます。



1572 Re^2: 要望 コメント数:  1件
  みずほちゃん  | 2001/09/05 (水) 20:18
 http://www.portnet.ne.jp/~mzh/
> 使って出来上がるスキャナーはポインタベタベタの拡張機能無し状態になると
> 思いますが(^^; 正規表現は、DFA に変換された状態で実装コードが吐かれる
> ことになるので、やっぱり case P^ of になると思いますよ。
それはそうでしょうが、lexにかける前のコードが
シンプルになるかなと思いまして。

> mwEdit(現 SynEdit http://synedit.sourceforge.net/)がまさにこの
> アーキテクチャを導入しています。作者の方は Delphi 用 yacc/lex を作って
> いるので、お手の物なのかもしれません。純正 lex ではなく、コンポの
> (Highlighter という)ソースを吐くアプリをコンポに同梱してあって、
> パース部分は、どのコンポもイチから作られます。TEditor の Bracket に該当
> する機能は実現されていますが、PrevToken や Element のように状態を扱う
> 機能はありません。
Synedit は一度ソースを眺めたことがあります。
ざっとしか見ていなかったのですが、
lex もどきをベースにしていたんですね。
時間があったらもう一度のぞいてみようと思います。

> コンパイラの本を一冊読まれると良いかも。
yacc には一度挫折してます(苦笑)



1571 Re: 要望 コメント数:  2件
  本田勝彦  |  2001/09/04 (火) 23:57
> http://www2.big.or.jp/~osamu/Delphi/MyLibrary.htm
>
> にはDelphi用のlexがあるので、
> これを使って、正規表現を使ってパーサー(というよりスキャナー?)
> を作ることができるようにして欲しいです。
>
> # 滅茶苦茶なことを言っています。

使って出来上がるスキャナーはポインタベタベタの拡張機能無し状態になると
思いますが(^^; 正規表現は、DFA に変換された状態で実装コードが吐かれる
ことになるので、やっぱり case P^ of になると思いますよ。

mwEdit(現 SynEdit http://synedit.sourceforge.net/)がまさにこの
アーキテクチャを導入しています。作者の方は Delphi 用 yacc/lex を作って
いるので、お手の物なのかもしれません。純正 lex ではなく、コンポの
(Highlighter という)ソースを吐くアプリをコンポに同梱してあって、
パース部分は、どのコンポもイチから作られます。TEditor の Bracket に該当
する機能は実現されていますが、PrevToken や Element のように状態を扱う
機能はありません。

コンパイラの本を一冊読まれると良いかも。




1570 Re^3: 行全体の描き分け コメント数:  1件
  本田勝彦  |  2001/09/04 (火) 23:45
> できました!ありがとうございます。
>
> TEditorFountainを拡張して、Commenterを複数もてるようにし、SourcePosを参照するようにしました。これだけでできるなんて感動。やっぱりTEditorはすごいです。

すごいですって、shinw さんもすごいと思いますが(^^;

> でも、新たな問題が。コメントブロック内でURL等を認識してくれない...
> これはやっぱりDelphiFountainみたいに構文要素処理をする必要があるんでしょうか。

そうですねぇ。Brackets を使わないで、Elements で { } などを判別して、
該当 Elements 内では、それが url でない限りコメントと同じ色で描画される
トークンとして扱えば出来そうですね。挑戦してみて下さい。

> もしわがままをお許しいただけるならぜひ送っていただきたいです。
> コードを参考にして勉強させていただきたいと思います。

アップロードしましたので、色々発言の方からダウンロードして下さい。



1569 Re^6: もう一つ質問 コメント数:  20件
  本田勝彦  |  2001/09/04 (火) 23:40
> %Qの直後の文字にはほぼ任意の文字が使えるので、

うぅむ。

> %x|
>
> %Q(ほげ
>
> )
>
> %r(^hoge$
> )|
>
> 上みたいな例は極端ですが、こういった場合に
> ElementIndex で上手く対処できるかちょっと?な気がします。

ネストに対応するのは、今の仕様では無理です。デフォルトにたどり着くためには、
各行が状態のリストデータを保持せなあかんでっしゃろ。
パースする処理に加えて、状態のスタックを準備する必要があります。
コンパイラはそれをやってるワケで、この簡易(1段のスタック)版が、
THTMLFountain で利用している PrevToken データです。

> とりあえず試してみないと分からないので、一度ElementIndexを
> 8ビットにしてみようと思います。
> で、すいませんが、どの辺をいじれば良いか教えてもらえませんか。

アップロードしましたので試して見て下さい。 cf 色々発言




1568 色々 コメント数:  0件
  本田勝彦  |  2001/09/04 (火) 23:30
Elements を8ビット化した heRaStrings.pas
http://compodev.at.infoseek.co.jp/arc/herastrings233.lzh

先頭が '>' など、指定した文字だとその行をワードラップしない TResEditor
http://compodev.at.infoseek.co.jp/arc/resedt.lzh

おまけで、内部文字列オブジェクトが保持する Brackets, Elements などの
情報を表示する TDebugEditor
http://compodev.at.infoseek.co.jp/arc/debugeditor.lzh

よろしかったらお試し下さい。



1567 Re^4: バージョン管理 コメント数:  0件
  sakazuki   | 2001/09/04 (火) 08:09
 http://homepage2.nifty.com/sakazuki/rde.html
> えとね(^^; バージョンアップの場合は、ご指摘のエラーは出ないと思うんですよね。
>
> ツリーの最初で EditProp1.SearchOptions と書かれていらっしゃったので、
> sakazuki さんが独自に追加したプロパティがあるか、又は、EditorProp1.ReadReg を実行しているメソッドの中で、独自のレジストリ読み込み処理をされていてそちらでエラーが出ているのではと思いました。SearchOptions という published プロパティは今のところ無いし・・・

なるほど、そうですか。Editorのレジストリ周りでは独自の処理を追加してはいないので、EditorExか他の部分が怪しそうですね。再度調べてみます。また質問させていただきます。ありがとうございました。



1566 要望 コメント数:  3件
  みずほちゃん  | 2001/09/04 (火) 02:21
 http://www.portnet.ne.jp/~mzh/
たわ言です。無視してもらっても結構です。

今のFountainParserはすべて自前でポインターを動かして
パースを行っています。これの方がスピードはでますが、
ちょっとした処理を行う場合には少々面倒です。

http://www2.big.or.jp/~osamu/Delphi/MyLibrary.htm

にはDelphi用のlexがあるので、
これを使って、正規表現を使ってパーサー(というよりスキャナー?)
を作ることができるようにして欲しいです。

# 滅茶苦茶なことを言っています。



1565 Re^2: 行全体の描き分け コメント数:  2件
  shinw   | 2001/09/04 (火) 02:07
> 先頭で '>' を見つけたら、文末までを toComment にするような Parser を
> 書きましょう。toComment と同じ働きをする新しいトークンを追加出来るような
> 仕組みを今度のバージョンで追加するつもりです。

できました!ありがとうございます。

TEditorFountainを拡張して、Commenterを複数もてるようにし、SourcePosを参照するようにしました。これだけでできるなんて感動。やっぱりTEditorはすごいです。

でも、新たな問題が。コメントブロック内でURL等を認識してくれない...
これはやっぱりDelphiFountainみたいに構文要素処理をする必要があるんでしょうか。
まあ、気長に取り組むようにします。

> 私が個人的に使っているエディタは、'>' が先頭にあると折り返しをしなくなる
> ような拡張がされています。(色は変わりませんが)よろしかったらお送りしましょうか?

もしわがままをお許しいただけるならぜひ送っていただきたいです。
コードを参考にして勉強させていただきたいと思います。




1564 Re^3: 折り返しの問題 コメント数:  0件
  みずほちゃん  | 2001/09/04 (火) 01:32
 http://www.portnet.ne.jp/~mzh/
> 原因が判明致しました。ver 2.26 でバグを仕込んでしまっていました。
> ver 2.32 でいうと、heFountain.pas の706行目からの2行を740行目に移動して下さい。
>
> Data.WrappedByte := 0;
> Data.StartToken := toEof;
>
> こいつを、パーサーに渡す前にやってしまっていたという・・・
>
> レポートに感謝です。
迅速な対応どうもです。

とりあえず私のところはすぐに動かなくても問題ないので、
TEditor本体がバージョンアップされるまで
待とうと思います。



1563 Re^5: もう一つ質問 コメント数:  21件
  みずほちゃん  | 2001/09/04 (火) 01:29
 http://www.portnet.ne.jp/~mzh/
> %Q の後に許される文字は何種類程度あるのでしょうね。
> 一番確実なのは、それぞれにトークンを用意し、パースメソッドを用意することです。
%Qの直後の文字にはほぼ任意の文字が使えるので、
専用のパースメソッドを用意するのはちょっと…。

> Items はまだ12ビット余ってますから、次のバージョンで8ビットにすることも出来ますが、どうでしょ?
これも考えたのですが、Rubyには %Q 以外にも %q、%x、%r と
ヒアドキュメント(Perlのものと同じ)が使えるので、
ごちゃごちゃにならないか心配です。

%x|

%Q(ほげ

)

%r(^hoge$
)|

上みたいな例は極端ですが、こういった場合に
ElementIndex で上手く対処できるかちょっと?な気がします。

とりあえず試してみないと分からないので、一度ElementIndexを
8ビットにしてみようと思います。
で、すいませんが、どの辺をいじれば良いか教えてもらえませんか。
斜め読みしただけだと、どこでビット数を決めているのか
よく分かりません。

# heRaStrings.pas を見てたら、TRowAttributeData って
# レコード型ですね。クラスだと思ってました。



1562 Re: 行全体の描き分け コメント数:  3件
  本田勝彦  |  2001/09/03 (月) 23:50
> ある特定のキャラクタが行頭にあるときに、行全体をスタイルを変えて描画したいと
> 思っています。(メーラなどで、引用行に別のスタイルを設定するのと同様です)
>
> OnDrawLineでは、WordWrapしているときに表示する分だけの一行文字列が渡される
> みたいで、出来ませんでした。
> すみませんが、ParserとかFountainとかはまだよくわかっていません。

先頭で '>' を見つけたら、文末までを toComment にするような Parser を
書きましょう。toComment と同じ働きをする新しいトークンを追加出来るような
仕組みを今度のバージョンで追加するつもりです。

私が個人的に使っているエディタは、'>' が先頭にあると折り返しをしなくなる
ような拡張がされています。(色は変わりませんが)よろしかったらお送りしましょうか?




1561 Re: TEditorとTRichEditの入れ替えは? コメント数:  0件
  本田勝彦  |  2001/09/03 (月) 23:46
> TRicheditから乗り換える場合の注意点などありましたらご教示ください。

すんません。 TRichEdit は使ったことがなかったりしたりして(^^;
D2のサンプルがあまりに重くてそのままになった記憶があります。

サンプルプロジェクトの実行ファイルがアップロードされてますので、
弄り倒して見て下さい。

>変数や特殊形式の色分けをしたいのですが

ということは、それ用の TFountain を作られるのが一番手っ取り早いですね。
もう少し落ち着いたら、TFountain の拡張コンポサンプルをここでたくさん
公開したいと思います。

要望などがありましたら、皆さんもふるって出して見て頂けますでしょうか。
なるべく具体的な方が実装が楽なので、よろしくお願い致します。



1560 Re^3: バージョン管理 コメント数:  1件
  本田勝彦  |  2001/09/03 (月) 23:40
えとね(^^; バージョンアップの場合は、ご指摘のエラーは出ないと思うんですよね。

ツリーの最初で EditProp1.SearchOptions と書かれていらっしゃったので、
sakazuki さんが独自に追加したプロパティがあるか、又は、EditorProp1.ReadReg を実行しているメソッドの中で、独自のレジストリ読み込み処理をされていてそちらでエラーが出ているのではと思いました。SearchOptions という published プロパティは今のところ無いし・・・




1559 行全体の描き分け コメント数:  4件
  shinw   | 2001/09/03 (月) 20:22
ある特定のキャラクタが行頭にあるときに、行全体をスタイルを変えて描画したいと
思っています。(メーラなどで、引用行に別のスタイルを設定するのと同様です)

OnDrawLineでは、WordWrapしているときに表示する分だけの一行文字列が渡される
みたいで、出来ませんでした。
すみませんが、ParserとかFountainとかはまだよくわかっていません。
(難しい^^;;;)

こういう風に考えてみたらというようなヒントで結構ですので、教えていただけない
でしょうか。よろしくお願いいたします。



1558 TEditorとTRichEditの入れ替えは? コメント数:  1件
  笹川 賢一  | 2001/09/03 (月) 17:55
 http://www5a.biglobe.ne.jp/~sasagawa/MLEdit/
こんにちは

私はSML/NJとScheme処理系のためのGUI環境を作成し、フリーソフトとして公開している者です。変数や特殊形式の色分けをしたいのですが、方法がわからず投げ出していました。TEditorのことを知り、やっと目的を達成することができるのではと喜んでいます。
ところで、今までは単純にTRicheditを利用してきました。TEditorに変更するとコードも直さなくてはならないと思うのですが、置き換えることは基本的に可能でしょうか?
サンプルプロジェクトを読もうと思いますが、私はC++Builderなものですからどうしようかと思っています。
TRicheditから乗り換える場合の注意点などありましたらご教示ください。



1557 Re^2: バージョン管理 コメント数:  2件
  sakazuki   | 2001/09/03 (月) 09:30
 http://homepage2.nifty.com/sakazuki/rde.html
>
> Delphi のストリームシステムを利用する限り避けられません。
> 回避方法としては、プロパティを削除してしまった場合、レジストリに保存データが
> あれば初期化してしまえば「エラー」は出なくなります。
>
> 利用する TEditor のバージョンを下げたときも同様の現象が出ますので、
> ご注意下さい。

なるほど、了解しました。ちなみに、今回のケースは2.11から2.32へのアップ時の事象です。現在の配布アプリのユーザ側のレジストリには、2.11でWriteRegされており、今度2.32の使ったアプリを配布した際の初回のReadRegでのエラーをプログラムでなんとかしたかったのですが、Readmeや、注意書きで対応するようにしようと思います。
有り難うございました。



1556 Re^4: もう一つ質問 コメント数:  22件
  本田勝彦  |  2001/09/03 (月) 01:56
%Q の後に許される文字は何種類程度あるのでしょうね。
一番確実なのは、それぞれにトークンを用意し、パースメソッドを用意することです。
プロパティはご指摘の通り保存されません。%Q の後に総ての文字が許される場合は、ElementIndex にその文字の Ord 値を保持させると良いかもしれません。32 より大きい値になるでしょ?

if ElementIndex > 32 then %Q's proc[Char(ElementIndex)];

が、ElementIndex は4ビットにケチってあるんですよね(^^;
Items はまだ12ビット余ってますから、次のバージョンで8ビットにすることも出来ますが、どうでしょ?



1555 Re^2: 折り返しの問題 コメント数:  1件
  本田勝彦  |  2001/09/03 (月) 01:46
原因が判明致しました。ver 2.26 でバグを仕込んでしまっていました。
ver 2.32 でいうと、heFountain.pas の706行目からの2行を740行目に移動して下さい。

Data.WrappedByte := 0;
Data.StartToken := toEof;

こいつを、パーサーに渡す前にやってしまっていたという・・・

レポートに感謝です。




1554 Re^3: もう一つ質問 コメント数:  23件
  みずほちゃん  | 2001/09/03 (月) 00:08
 http://www.portnet.ne.jp/~mzh/
> rbft-test.zip をダウンロードしました。
> 見せて頂きますね。
すいません。よろしく御願いします。

# うー他力本願だ



1553 Re: バージョン管理 コメント数:  3件
  本田勝彦  |  2001/09/02 (日) 18:15
> バージョン違いによる、このあたりのうまい処理の方法ってありますでしょうか?

D4で作ったフォームをD2で開くとご指摘のエラーが出ますが、逆は
無いんですよね。

ですから、published なプロパティを公開するときは、今後絶対に名前も変えない。
削除もしない。という不退転の(笑)決意が必要だったりします。read write での
アクセスメソッドの実装を変えて殺してしまうことは可能ですが。

Delphi のストリームシステムを利用する限り避けられません。
回避方法としては、プロパティを削除してしまった場合、レジストリに保存データが
あれば初期化してしまえば「エラー」は出なくなります。

利用する TEditor のバージョンを下げたときも同様の現象が出ますので、
ご注意下さい。



1552 Re^2: もう一つ質問 コメント数:  24件
  本田勝彦  |  2001/09/02 (日) 18:08
rbft-test.zip をダウンロードしました。
見せて頂きますね。



1551 Re: 折り返しの問題 コメント数:  2件
  本田勝彦  |  2001/09/02 (日) 18:05
> /\s <
> hoge<
> /
>
> のような場合に 二つ目の「/」が処理がおかしくなります。
>
> TRubyFountainParser.SlashProc は SingleQuotation と
> ほとんど同じ処理をしているので、同じようにバグがでるのでは
> ないかと思うのですが、いかがでしょうか?

TDelphiFountain で確認出来ました。3行以上に渡る toSingleQuotation で
不具合が出ます。Tokens プロパティを導入したときはウマく行ってたのですが、
変にしてしまったようです。

調べてみますので、少し時間を下さい。




[PR]解禁!サクラのいない直メなび:※男女タダで遊べる、大人のためのコミュ