[HOME] [リストへもどる.] [新着50]  [最新100]  [全部表示 会議室風]  [全部表示 保存用]

新着記事 30


11547Re: ClpPst.def v05e7 24-10-17版 投稿者:shadow   2024/10/18(金) 08:37
  11546 番 konno さんへのコメント

コピー&ペーストをくり返してpaste.tmpのサイズが50306の時にペースト
できない時がありましたがそれ以外は問題なさそうです。
カットはクリップボードにコピーできますがカットできずに残ります。
今のところそれぐらいです。

    - No.11547 -   [コメント元:11546]    [リストへもどる.]
soft

11546ClpPst.def v05e7 24-10-17版 投稿者:konno   2024/10/17(木) 20:09
  11537 番 konno さんへのコメント    コメント数 1

ClpPst.def v05e7 24-10-17版を VZマクロの部屋にUPしました。

paste.zip 24-10-17 new!
・寅次氏作のクリップボードマクロの改造版。DOSVAXJ3に仮対応。あまりテストしてません。
・DOSVAXJ3は INT2F のFコール使用、それ以外は 従来どおりCLPPST.EXE 使用します。
・INT2F 使用時は、コピー64k以内、ペースト32k以内の制限があります。v05e7
・若干のバグ修正と一時ファイルでペースト速度アップ
・VZ1.6用 オリジナルVZでも動くと思います。
・paste.com 使用で 32kまでペースト出来るようになりました。 v05e7


以下 同梱の paste.txt の内容です。

paste.com   2024-10-17版

paste.com はクリップボードから C:\TMP\PASTE.TMP に内容をペーストするプログラムです。
ペーストできる容量は32k程度までです。それ以上ではエラー終了します。
PASTE.TMP の内容はデータの最後にヌルがあり、その後ろはゴミがあります。
データがあふれるとヌルが無くなるのでそれでエラー判定します。
同梱の改造した ClpPst.def で必要なデータを取り出して ClpPst.tmp とテキストに書き出します。


■ 使い方
 paste.com をパスの通ったフォルダに置きます。
 あとは ClpPst.def のペーストモードで自動的に呼び出されます。


■ paste.com を単独で使う場合

paste.com >nul

 このように NUL にリダイレクトさせないと コマンドラインにクリップボードの内容を吐き出してしまいます。


■ PASTE.TMP が生成されるフォルダは C:\TMP\ に固定されています。
 ファルダを変更したい時は paste.com を VZで開いて 該当箇所を直接変更してください。
 ファイルサイズが変わらないように、後ろのヌルを削除します。


#txt:paste.zip  ここから落とせるかな?

少し前に一旦UPしましたが 19時40分マクロを差し替えたので、よろしくね。(^^;


    - No.11546 -   [コメント元:11537]    [リストへもどる.]
pre

11545Re^2: ClpPst.def DOSVAXJ3対応 10/15版 投稿者:konno   2024/10/16(水) 16:27
  11544 番 shadow さんへのコメント

> buf err!! 3で終了してます

やはりこれが原因のようですね。ラインバッファ使用はBLの半分が限界かもしれません。
掲示板の記事のコピペ程度なら問題ないと思いますが、ちょっと大きなファイルは厳しいようです。
スタックを使えば良さそうですが私はその辺の知識が無いのです。

マクロは難しいのでアセンブラでやってみたら出来ました。
32k程度ですが一応動くようになったので動作チェックしてみます。
64kまで出来ると思ったのですが、どうもINT2Fでは半分しか使えないような感じですね。

    - No.11545 -   [コメント元:11544]    [リストへもどる.]
soft

11544Re: ClpPst.def DOSVAXJ3対応 10/15版 投稿者:shadow   2024/10/16(水) 08:23
  11542 番 konno さんへのコメント    コメント数 1

環境変数TMPはE:\TMP¥に設定してます
buf err!! 3で終了してます

    - No.11544 -   [コメント元:11542]    [リストへもどる.]
soft

11543Re^3: ClpPst.def DOSVAXJ3対応 10/11版 投稿者:shadow   2024/10/15(火) 19:08
  11541 番 konno さんへのコメント

> OPT_LST.DEF の結果を教えてもらえますか。
いろいろ試して純正vzibmj.defに組み込んでも同じでした。
10/15版はこれから試します。

    - No.11543 -   [コメント元:11541]    [リストへもどる.]
soft

11542ClpPst.def DOSVAXJ3対応 10/15版 投稿者:konno   2024/10/15(火) 17:27
  11541 番 konno さんへのコメント    コメント数 1

BLの半分ほどでも失敗する場合がありました。原因は不明です。
その場合ヌルが出力されないので buf err!! 3  で終了するようにしました。

;	(r)?{#] &d #b ps], #W sn[+, #C (s)? 'n' &m("buf err!! 3") sn], .}	;err! ★★★

このコメント行を有効にすれば、TMPの内容を残して終了します。

これで確認してもらえるでしょうか。

#txt:ClpPst.def  2024/10/15版

    - No.11542 -   [コメント元:11541]    [リストへもどる.]
pre

11541Re^2: ClpPst.def DOSVAXJ3対応 10/11版 投稿者:konno   2024/10/15(火) 15:52
  11540 番 shadow さんへのコメント    コメント数 2

> コピーは問題ないですがペーストでclip.tmp、clppest.tmpを開いたところで止まります。
> 内容は空だったりスペースだったりテンポラリーファイルエラーだったりさまざまです。

うちの環境では問題なく動いているので、環境の違いでしょうか。
Sn+ 新規ファイルの確認かと思いましたが違うみたいですね。
環境変数 TMP は設定してますよね。 \user\TMP\ など長すぎると誤動作するかも。
うちは C:\TMP\ にしています。

OPT_LST.DEF の結果を教えてもらえますか。
ちなみにこの文章は DOSVAXJ3 でコピペして書いています。

    - No.11541 -   [コメント元:11540]    [リストへもどる.]
soft

11540Re: ClpPst.def DOSVAXJ3対応 10/11版 投稿者:shadow   2024/10/15(火) 08:28
  11539 番 konno さんへのコメント    コメント数 1

コピーは問題ないですがペーストでclip.tmp、clppest.tmpを開いたところで止まります。
内容は空だったりスペースだったりテンポラリーファイルエラーだったりさまざまです。

    - No.11540 -   [コメント元:11539]    [リストへもどる.]
soft

11539ClpPst.def DOSVAXJ3対応 10/11版 投稿者:konno   2024/10/11(金) 23:53
  11537 番 konno さんへのコメント    コメント数 1

ClpPst.def DOSVAXJ3対応 10/11版です。

  ClpPst.def v05e5 24-10-11 new!
・寅次氏作のクリップボードマクロの改造版。DOSVAXJ3に仮対応。あまりテストしてません。
・DOSVAXJ3は INT2F のFコール使用、それ以外は 従来どおりCLPPST.EXE 使用します。
・INT2F 使用時は、コピー64k以内、ペーストBL(8192)以内の制限があります。
・若干のバグ修正と一時ファイルでペースト速度アップ
・VZ1.6用 オリジナルVZでも動くと思います。

※ DOSVAXJ3以外で INT2F モードを試す時は、★印の行2か所をコメントにします。

#txt:ClpPst.def

    - No.11539 -   [コメント元:11537]    [リストへもどる.]
soft

11538DOSVAXJ3 (2024/10/11)版 投稿者:konno   2024/10/11(金) 20:11


DOSVAXJ3 (2024/10/11)版が公開されました。
内容は

-----------------------------------------------------------
build JP241011 (2024/10/11)
int 2Fh ax=1703h のクリップボードセットで文字列末尾が欠けるのを修正しました。

-----------------------------------------------------------

これで DOSVAXJ3 でもクリップボードが使えるようになりました。
ありがたいです。

ClpPst.def の INT2Fペーストで末尾に ^A が出る場合があったのでこの後修正します。

    - No.11538 -            [リストへもどる.]
soft

11537ClpPst.def DOSVAXJ3対応 10/10版 投稿者:konno   2024/10/10(木) 23:17
   コメント数 2

ClpPst.def DOSVAXJ3対応 10/10版です。
クリップボードへのコピー、ペーストに仮対応しました。

  ClpPst.def v05e4 24-10-10 new!
・寅次氏作のクリップボードマクロの改造版。DOSVAXJ3に仮対応。あまりテストしてません。
・DOSVAXJ3は INT2F のFコール使用、それ以外は 従来どおりCLPPST.EXE 使用します。
・INT2F 使用時は、コピー64k以内、ペーストBL(8192)以内の制限があります。
・VZ1.6用 オリジナルVZでも動くと思います。

※ DOSVAXJ3以外で INT2F モードを試す時は、★印の行2か所をコメントにします。

#txt:ClpPst.def

INT2F 使用時は、コピー64k以内、ペーストBL(8192)以内の制限があります。
特にペーストは私の脳力不足でラインバッファ使用が精いっぱいでした。(;_;)
以下にペーストのソースを張りますのでどなたか64k対応とかお願いします。m(__)m

=== paste.def ===
*m
62 ^V	"ペースト"
	?. 
;	&02	;-------------------------------------	;機種チェック  #05e
;	(c<2)?>A					;★ DOSVAXJ3以外なら >a
	&s &04 #^ #< #b #_ #> ux[+, 			;CLPPST.TMP open
:b	#y (mb)?>b ux], d-,				;内容をクリア
	ax$1701, &i($2F)				;Open Clipboard
	ax$1704, dx+, &i($2F)				;GET Clipboard DATA SIZE
	&m(" ax:%x dx:%x ",ax,dx) 
	(dx)?{ #C (s)? 'n' &m("%x:%d   buf over!",dx,cx) .} ;65535 over!
	cx=ax, &s
	(cx>=bl)?{ #C (s)? 'n' &m("%d   buf over!",cx) .}   ;bl 8192 over!
	&m(" ax:%x dx:%x ",ax,dx) 
	(ax>4096 && d==0)?{&s (4096){" "}  #] &d #b #^ #k ax=ax-4096, d+, } ;4096埋める
	&s
:d 	&m(" ax:%x ",ax) 
	(ax<0 && d>0)?{#p ax=ax-4096, >d }		;4096分スペースで埋める
	(ax>4096 && d>0)?{#p ax=ax-4096, >d }		;4096分スペースで埋める
:e	(ax)?{ &?(" ") ax--, >e }			;残り分スペースで埋める
	&m(" ax:%x ",ax) 
	#^ #< #28 bx=cp,
	ax$1705, dx+, si-, di=gz,    ;8ec7 mov es,di	;Set Clipboard Data
	&i("$(8E,C7,CD,2F,C3)")      ;cd2f int 2fh	;Set Clipboard Data
	ax$1708, &i($2F)	     ;c3   ret		;Close Clipboard
	#] &d #^ #<
	ps[=pa, #F &o(0) #m #c ps], (r)?>K		;ヌルがあれば検索
	#b #_ #> ux[+, #y ux],				;ヌル以降削除
	(mb)?#b
:K	#_ #> #b #^ #< #k 
	#C (s)? 'y' 					;クローズ
	#i &d &m("INT2F: ClipBoard >> Text!")
	.

02:	c-,					;--- int2f frag  check ---
	ax=$1700, &i($2F)			;IDENTIFY WinOldAp VERSIO
	( ax == $1700 )??c++,			; WinOldAp サポートなら c+1
	ax=$7476,bx=$0000,cx=$6F64,		;VTDOS:0  MSP:1  DOSVAXJ3:7476
	&i($2F)					;VTDOS check $7476なら DOSVAXJ3
	( ax == $7476 )? c=c+2,			;DOSVAXJ3なら c+2
;	&m("7476   ax:%x c:%d",ax,c)		;ax=7476 なら未サポート 

04:	a-, mx[+, sn[-, #O &?("%sCLPPST.TMP",pi) #m	;--- CLPPST.TMP ---
		(s)?{ #[ #[ a+, } sn], mx],
	(a)?{ &m("クリップボードがカラかテキスト以外です") &d . }

*
; a,b,c,d,f,p 使用
;8ec7	mov	ES,BX
;cd2f	int	2Fh
;c3	ret

追記 
DOSVAXJ3は新版がまだ正式公開されていませんでした。
旧版用に ★★印の cx+, を活かしてあります。
メールでいただいたテスト版のURLを張り付けておきます。

>  1 バイト欠けですが、修正してみました。
>  下記よりテスト版をダウンロードしてください。64bit 版です。
> https://www.nanshiki.co.jp/test/dosboxj_test.zip

    - No.11537 -            [リストへもどる.]
pre

11536Re^9: DOSVAXJ3 でクリップボードは 投稿者:konno   2024/10/08(火) 19:17
  11535 番 たけだ さんへのコメント

クリップボードからペーストも正常動作を確認できました。
マクロが上手く動かないので時間が掛かりました。m(__)m

メモリにペーストするところをファイルに入れようとして躓いていました。
張り付けるサイズ分を事前に確保しておかないと駄目なんですね。
DOSエミュ3種とも同じ動作になるので、仕様どおりなのだと思います。
・・・と思ったけど、VTDOSはヌルが残る場合が有りますね。

マクロはもう少し整理してから公開します。
ありがとうございました。

    - No.11536 -   [コメント元:11535]    [リストへもどる.]
soft

11535Re^8: DOSVAXJ3 でクリップボードは 投稿者:たけだ   2024/10/07(月) 00:56
  11534 番 konno さんへのコメント    コメント数 1

> いただきました。テストマクロは正常に動作しているようです。

ご確認ありがとうございます。
正常に動作して安心しました。
バグのせいで不必要な検証をしていただいて申し訳ないです。

    - No.11535 -   [コメント元:11534]    [リストへもどる.]
soft

11534Re^7: DOSVAXJ3 でクリップボードは 投稿者:konno   2024/10/06(日) 22:46
  11533 番 たけだ さんへのコメント    コメント数 1

> すみません、コピーするデータ長は、SI:DIでなくSI:CXでした。

ありがとうございます。

> 先ほど修正したバージョンをリリースしています。

いただきました。テストマクロは正常に動作しているようです。

    - No.11534 -   [コメント元:11533]    [リストへもどる.]
soft

11533Re^6: DOSVAXJ3 でクリップボードは 投稿者:たけだ   2024/10/06(日) 22:05
  11532 番 konno さんへのコメント    コメント数 1

すみません、コピーするデータ長は、SI:DIでなくSI:CXでした。
先ほど修正したバージョンをリリースしています。

    - No.11533 -   [コメント元:11532]    [リストへもどる.]
soft

11532Re^5: DOSVAXJ3 でクリップボードは 投稿者:konno   2024/10/06(日) 22:03
  11529 番 たけだ さんへのコメント    コメント数 1

> MS-DOS Player内のコードで、以下のような処理で検証をしています。

わかりやすいソースをありがとうございます。
なんとか出来そうな気がしてきたのでこれを参考に試行錯誤してみます。
m(__)m

    - No.11532 -   [コメント元:11529]    [リストへもどる.]
soft

11531Re^6: DOSVAXJ3 でクリップボードは 投稿者:たけだ   2024/10/06(日) 22:03
  11530 番 たけだ さんへのコメント

もうちょっと色々修正してみました。
最新版だと如何でしょうか?

    - No.11531 -   [コメント元:11530]    [リストへもどる.]
soft

11530Re^5: DOSVAXJ3 でクリップボードは 投稿者:たけだ   2024/10/06(日) 19:00
  11529 番 たけだ さんへのコメント    コメント数 1

INT 2Fh, AX=1704hでクリップボード内のデータのサイズを取得できなかったときに、
DX=0にならない問題もありました。
これも次のリリースで直しておきます。

    - No.11530 -   [コメント元:11529]    [リストへもどる.]
soft

11529Re^4: DOSVAXJ3 でクリップボードは 投稿者:たけだ   2024/10/06(日) 16:26
  11528 番 konno さんへのコメント    コメント数 2

MS-DOS Player内のコードで、以下のような処理で検証をしています。

const char hoge[]="あいうえおかきくけこ";

// ES:BX = 0000:0000
CPU_LOAD_SREG(CPU_ES_INDEX, 0);
CPU_BX=0;
memcpy(mem + CPU_ES_BASE + CPU_BX, hoge, sizeof(hoge));

// クリップボードを開く
CPU_AX=0x1701;
msdos_int_2fh_17h();
// クリップボードを空にする
CPU_AX=0x1702;
msdos_int_2fh_17h();
// ES:BXからSI:DIだけクリップボードにコピーする
// 10バイトなので「あいうえお」だけコピーする
// ※ お尻にnull-terminatorを追加してコピーされる
CPU_SI=0;
CPU_DI=10;
CPU_DX=1;
CPU_AX=0x1703;
msdos_int_2fh_17h();
// クリップボードを閉じる
CPU_AX=0x1708;
msdos_int_2fh_17h();

// クリップボードを開く
CPU_AX=0x1701;
msdos_int_2fh_17h();
// クリップボード内のデータのサイズを取得
CPU_DX=1;
CPU_AX=0x1704;
msdos_int_2fh_17h();
// クリップボード内のデータをES:BXに取得
CPU_DX=1;
CPU_AX=0x1705;
msdos_int_2fh_17h();
// クリップボードを閉じる
CPU_AX=0x1708;
msdos_int_2fh_17h();

クリップボード内のデータサイズの取得は、GlobalSize()を使うよりも、
strlen()でデータの文字列長を取得するほうが良さげっぽいですね。
次のリリースで変更しておきます。

    - No.11529 -   [コメント元:11528]    [リストへもどる.]
soft

11528Re^3: DOSVAXJ3 でクリップボードは 投稿者:konno   2024/10/06(日) 15:07
  11527 番 たけだ さんへのコメント    コメント数 1

> MS-DOS Playerでも、INT 2Fh, AH=17hを一部サポートしてみました。

武田さん、ありがとうございます。
古い版の MS-DOS Player は INT2F 1700h 不可でしたが、CLPPST.EXEが使えるので問題ありませんでした。
新しい版を VZマクロで試してみました。

=== INT2F_17.DEF ===
* M
80 ^\ "INT2F 1700"
	?.
	ax=$1700, &i($2F)		;IDENTIFY WinOldAp VERSION
	&m("1700   ax:%x dx:%x",ax,dx) 
	(ax==$1700)?.			; ax$1700 なら未サポート
*

このマクロでは、ax101h とか出るのでインストチェックはOKです。
次に文太さんのコピーチェックマクロでは

=== Macrotmp by B ===;
* M
50 ^\ "Macrotmp"
;	p="0123456789", 
	p="あいうえおかきくけこ", 
	&Sn(p) cx=r, si-,	;size etc  for SET func
	ax=gz, bx=p,		;ptr (ax->es)
	dx=1,			;type
	&> a=r,
	&m("finished %d %s",a,p).

0:	&i(3+$)."$
	$(50,B8,01,17,CD,2F,B8,02,17,CD,2F,07,B8,03,17,CD)$
	$(2F,B8,08,17,CD,2F,C3)$"

;	push ax
;	mov ax,1701h	;open
;	int 2Fh
;	mov ax,1702h	;clear
;	int 2Fh
;	pop es
;	mov ax,1703h	;set
;	int 2Fh
;	mov ax,1708h	;close
;	int 2Fh
;	ret
*

これは MSDOS.EXE 起動直後に実行するとコピー出来ていないようです。
下のマクロを実行後はキチンとコピー出来たようです。
テストマクロでは何か初期化かパラメータが足りないのでしょうか。
 
次に H岡さんのマクロでは

=== cliput.def ===
*m
89 ^\ "ブロック箇所をテキストスタックとクリップボードへコピー"
    ?. (mb)??{ #> #b #< }		; ★ 非ブロックモードは1行コピー  追加
    #k dz[=kz, cx=kp..-1, bx=kp-3-cx, dz],
;   cx++,				; ★ 1バイト補完
;-- テキストスタック格納データをクリップボードへコピー
    ax$1701, &i($2F)                                    ;Open Clipboard
    ax$1702, &i($2F)                                    ;Empty Clipboard
    ax$1703, dx+, si-, di=kz, &i("$(8E,C7,CD,2F,C3)")   ;Set Clipboard Data
;E8FF:0000 8EC7           MOV    ES,DI
;E8FF:0002 CD2F           INT    2F
;E8FF:0004 C3             RET    
    ;DX=1:text
    ;ES:BX = data source ->di:bx
    ;SI:CX = data size   ->00:cx
    ax$1708, &i($2F)                                    ;Close Clipboard
*

コピーは出来ますが、文字列の最後に 02h+12h の文字コードが出ています。
これらのマクロは VTDOSや DOSVAXJ3テスト版では正常に動作しています。
よろしくお願いします。

コピーは出来たのですが、ペーストで躓いています。
ペーストのアセンブラプログラムなど教えてもらえないでしょうか。
今の私は頭が働かなくて、(;_;)

※ これは DOSVAXJ3 でコピーしてみました。あれ?最後に全角文字がある??
 と思ったら、01h が出ていました。
 cx++, の1バイト補完したままが原因でした。m(__)m

    - No.11528 -   [コメント元:11527]    [リストへもどる.]
pre

11527Re^2: DOSVAXJ3 でクリップボードは 投稿者:たけだ   2024/10/06(日) 11:15
  11526 番 konno さんへのコメント    コメント数 1

MS-DOS Playerでも、INT 2Fh, AH=17hを一部サポートしてみました。

ちょうど本業で、クリップボードを操作する処理を書いてまして(苦笑)
実にタイミングが良かったです。

#古いVB6のアプリで、UNICODEなファイルパスをテキストボックスにコピペする、
#みたいな処理を書いてました。

    - No.11527 -   [コメント元:11526]    [リストへもどる.]
soft

11526Re: DOSVAXJ3 でクリップボードは 投稿者:konno   2024/10/05(土) 16:09
  11524 番 konno さんへのコメント    コメント数 1

軟式さんにメールしたところ、対応テスト版をいただきました。
クリップボードへコピーは正常にできました。
ありがとうございます。

> この機能ですが、本家 DOSBox では実装されておらず、DOSVAXJ3 では
>Wengier 氏が作成した LFN とクリップボード対応 DOSBox からいろいろ
>移植した際に追加されたと思われます。その時点で 1 バイト欠けのバグ
>はあったようです。

ということのようです。
ClpPst.EXE が使えなくて困っていたので助かりました。
今ペーストの方を試行錯誤していますが、なかなか難しいです。

とりあえず @[F10] でペーストは出来るのですが、VZのインデントが効いてしまいます。

    ax$1705, cx=ax, dx+, &i($2F)	    ;GET Clipboard DATA

この実装がわからなくて頓挫しています。
どなたかお知恵を〜  m(__)m

    - No.11526 -   [コメント元:11524]    [リストへもどる.]
pre

11525ClpPst.def 改 DOSVAXJ3に仮対応 投稿者:konno   2024/10/04(金) 01:32
  11524 番 konno さんへのコメント    コメント数 1

OSVAXJ3でも Fコールでクリップボードコピーが出来るのが分かったのでやってみました。
#1141 の H岡さんのマクロと文太さん情報で実現できました。\(^^)/ ヤッタ-

一応VZマクロの部屋に置きました。

  ClpPst.def 24-10-04
・寅次氏作のクリップボードマクロの改造版。DOSVAXJ3に仮対応。ほとんどテストしてません。
・環境変数 VZSYM に AXJ3 が必要です。 ※高橋版VZ以降が必要
 SET VZSYM = AXJ3

人柱^H 動作報告お待ちしてます。(^^;


ここにも置いておきますね。
#txt:ClpPst.def

    - No.11525 -   [コメント元:11524]    [リストへもどる.]
soft

11524DOSVAXJ3 でクリップボードは 投稿者:konno   2024/10/03(木) 20:02
   コメント数 2

DOSVAXJ3 で CLPPST.DEF が使えなくてクリップボードのやり取りに悩んでいたのですが
最近過去ログ整理で読み直していたら、ファンクションコールで実現する記事がありました。
全文引用します。
-----------------------------------------------------------

#4898:Re^2: VTDOSインストチェック  投稿者: 文太   2010/01/21(木) 12:26

 1文字欠ける?

=== Macrotmp by B ===;
* M
50 ^^ "Macrotmp"
;	p="0123456789", 
	p="あいうえおかきくけこ", 
	&Sn(p) cx=r, si-,	;size etc  for SET func
	ax=gz, bx=p,		;ptr (ax->es)
	dx=1,			;type
	&>
	&m("finished").

0:	&i(3+$)."$
	$(50,B8,01,17,CD,2F,B8,02,17,CD,2F,07,B8,03,17,CD)$
	$(2F,B8,08,17,CD,2F,C3)$"

;	push ax
;	mov ax,1701h	;open
;	int 2Fh
;	mov ax,1702h	;clear
;	int 2Fh
;	pop es
;	mov ax,1703h	;set
;	int 2Fh
;	mov ax,1708h	;close
;	int 2Fh
;	ret

*
-----------------------------------------------------------

これをVTDOSで実行するとクリップボードにコピーできました。\(^^)/ ヤッタ-
本来 XP ではこのファンクションは使えないはずですが、10#さんが対応してくれたんですね。
で、1文字欠ける? というのは、XPの仕様どおりだと文字列の最後の1バイトが欠けるのですね。
それにも10#さんは対応してくれました。m(__)m

それで、ダメもとでこのマクロを DOSVAXJ3 で実行させたら、なんと! 動くではありませんか!!
おお!!!! と思いましたが、最後の1文字が欠けています。
これは、軟式さんに報告して直してもらおうと思います。
キーボードでコピーするのもうまく動かないのでそれも聞いてみます。

お忙しいでしょうから、返事がもらえるかわかりませんが、メールしてみますね。

    - No.11524 -            [リストへもどる.]
pre

11523Re^10: 野ざらし言と板塀に全ログ検索を 投稿者:konno   2024/10/03(木) 17:54
  11522 番 としき さんへのコメント

> > もうスパゲッてわけわからん状態なので、修正が大変でした。(>_<)
> これは、比喩に比喩を重ねた表現、ということでいいのですよね。

いやあ、増築に増築を重ねた結果、だと思います。
#11519 で書いたように

> うう、デグレというか、ログ0番検索対応のバグでした。(>_<)

これは本来1番から始まる過去ログにゼロ番を無理やりねじ込んだせいなのです。
私の力量では条件分岐とループだけでは実現できなかったのでフラグなど使ったのですが
やはり見落としが有りましたね。

#			if ($in{'pastlog'} >= 0) {
#			if ($mode eq "past") {
			if ($in{'act'} eq "past") {

おそらくここが原因だったかと思いますが、コメントで試行錯誤の痕跡がわかりますね。

> まさかと思いますが、不要なコメントが大量にあった、とかいうことではないですよね。

私にとっては有用なコメントもあると思っています。
そういえば他にも、過去ログで返信ボタンを表示していたバグも発覚しました。(>_<)

		if ($mode ne "past") {
#		if ($in{'act'} ne "past") {

過去ログにゼロ番を無理やりねじ込むためこう変更したのですが、効いていませんでした。(>_<)
しかたないので、コメントを戻して両方効くようにしたら直りました。泥縄だぁ〜 (^^;

		if ($mode ne "past") {
			if ($in{'act'} ne "past") {

> まじめな話、これからの人生で少しでも楽をするために、上っ面でもいいですから
> konnoさんはソフトウェア工学の基礎を学んだほうがいいかもしれない。
> 人生は有限ですから。

それが頭に入らない、理解できないからここまでズルズルきたのではないかなぁ。(;_;)

    - No.11523 -   [コメント元:11522]    [リストへもどる.]
pre

11522Re^9: 野ざらし言と板塀に全ログ検索を 投稿者:としき   2024/10/02(水) 23:05
参照先:http://toshiki.la.coocan.jp/
  11521 番 konno さんへのコメント    コメント数 1

> もうスパゲッてわけわからん状態なので、修正が大変でした。(>_<)

これは、比喩に比喩を重ねた表現、ということでいいのですよね。
もともとのプログラム用語で言うところのスパゲッティ、からみあっているという
比喩的表現なわけですが、これって基本的にgotoであちこち飛ばしまくっていること
を意味しているわけですよ。つまり、条件分岐とループだけでプログラムを構成して
いるならスパゲッティにはならない、というのがソフトウェア工学の理屈。
もちろん世の中、そう完璧に理屈どおりにはならない、というのはさておき。
perlで、本来的な意味でのスパゲッティなプログラム、作ろうと思えば作れるでしょう
けど、本当にそういうプログラムが作れる人は、逆説的な意味で天才。
ということで、あたかもスパゲッティなプログラムであった、と仮定して。
まさかと思いますが、不要なコメントが大量にあった、とかいうことではないです
よね。何回も私が口を酸っぱくして、取れ〜、取り除け〜、と呪いの言葉のごとく
ほざいていたわけですから。
まじめな話、これからの人生で少しでも楽をするために、上っ面でもいいですから
konnoさんはソフトウェア工学の基礎を学んだほうがいいかもしれない。
人生は有限ですから。

    - No.11522 -   [コメント元:11521]    [リストへもどる.]
soft

11521Re^8: 野ざらし言と板塀に全ログ検索を 投稿者:konno   2024/09/29(日) 23:15
  11520 番 としき さんへのコメント    コメント数 1

> 直っていますね。よかったよかった。

もうスパゲッてわけわからん状態なので、修正が大変でした。(>_<)
問題なさそうでホッとしました。(^^;

> 私のほうも、何とかしたいなぁ。
> でも、同じ不具合は入れないと思うけど、もっとひどい不具合を入れ込みそう。

今の私のソースはとても参考にならない(できない)状態です。(^^;;
その前のも FGALDC 対応でややこしくなってたんですけどね。(^^;

    - No.11521 -   [コメント元:11520]    [リストへもどる.]
soft

11520Re^7: 野ざらし言と板塀に全ログ検索を 投稿者:としき   2024/09/29(日) 18:49
参照先:http://toshiki.la.coocan.jp/
  11519 番 konno さんへのコメント    コメント数 1

> うう、デグレというか、ログ0番検索対応のバグでした。(>_<)
> 直しましたので、ご確認願います。m(__)m

直っていますね。よかったよかった。
私のほうも、何とかしたいなぁ。
でも、同じ不具合は入れないと思うけど、もっとひどい不具合を入れ込みそう。

    - No.11520 -   [コメント元:11519]    [リストへもどる.]
soft

11519Re^6: 野ざらし言と板塀に全ログ検索を 投稿者:konno   2024/09/28(土) 20:05
  11518 番 としき さんへのコメント    コメント数 1

> なんてもいいのですが検索を行い、検索結果を含むツリーを一括表示をさせようと
> リンクを踏むと、過去ログに落ちている発言はきちんとツリー一括表示が出てきます
> が、現行ログ内に存在する発言の検索結果からは一括表示が出てきません。

うう、デグレというか、ログ0番検索対応のバグでした。(>_<)
直しましたので、ご確認願います。m(__)m

> 検索を始めたログよりも過去方向にはたどる
これは変わっていないと思います。

    - No.11519 -   [コメント元:11518]    [リストへもどる.]
soft

11518Re^5: 野ざらし言と板塀に全ログ検索を 投稿者:としき   2024/09/28(土) 15:54
参照先:http://toshiki.la.coocan.jp/
  11480 番 konno さんへのコメント    コメント数 1

> > あるいは「morek」という語句を、過去ログの0026、0025、0024で検索した場合の
> > 挙動なんかをみると、なんか、検索を始めたログよりも過去方向にはたどるけれど
> > 未来方向にはたどらない、という挙動のように見える。

> うう、うちのはそういう挙動になっていましたか、サーチルーチンは共通だったんですね。
> 直すならやっぱりフラグかなんかですかね。直す気はないけど。(^^;
> うーん、でもとしきさん方式も良いかも。ちょっと迷ってきてます。(^^;

もしかしてこの辺、何か検索ルーチンに手を加えている最中でしょうか。
なんとなくデグレが発生しているような気がする。
それとも、もともと不具合があったのに私が気がついていなかっただけかも。

なんてもいいのですが検索を行い、検索結果を含むツリーを一括表示をさせようと
リンクを踏むと、過去ログに落ちている発言はきちんとツリー一括表示が出てきます
が、現行ログ内に存在する発言の検索結果からは一括表示が出てきません。

ご確認をお願いします。

    - No.11518 -   [コメント元:11480]    [リストへもどる.]
soft