| 02059 02/05/20 05:50 | これだけのスクリプトを作りたいのですが |
| 投稿者 : mega2000 | コメントを投稿する |
次の2つの処理をさせたいのです。 表示桁数は改行コードがこなければ半角100文字で 改行させたい。 改行された行頭に「012」がきた時だけその3文字を捨てて 4文字目が行頭になるようにさせたい。 (文中の「012」はこの処理に当てはまらない) 私には無理みたいなので教えてください。 (ここを見ろというポインタでも) |
| 02060 02/05/20 17:35 | RE:02059 これだけのスクリプトを作りたいのですが |
| 投稿者 : 秀まるお2 | コメントを投稿する |
秀Termのスクリプトは手作業による送受信を自動化することを目的としています。 通信ソフトのスクリプトやマクロ類はみなそのような目的のことしか出来ません。 受信したデータを整形して画面(秀Termの画面)に表示させることは、スクリプト ではあまり出来ません。writebuffer文を使えば画面に追加で書き込むことは出来ま すが、例えばホスト側が送ってきた文字列の一部を除去したり、一定の法則で改行を 入れるようなことは不可能だと思います。 |
| 02061 02/05/20 22:58 | RE:02059 これだけのスクリプトを作りた |
| 投稿者 : 範子 | コメントを投稿する |
;できないこともないですが、秀Termの画面は80文字固定なので ;100文字で改行しても、どうなのかと思います。 ;ログの内容には影響を与えません。 ;加工した内容を保存するには、ストックファイルを利用してください display off;本来の表示を消します getline @line;改行までを変数に入れます ;1023文字より長くなることが ;あるんでしょうか ;その場合はうまく動きません ;代わりにgetcharを使ってください beginloop while( @line != "") #output = part( @line,0, 100);先頭から100文字切り出します ;2バイト文字の途中だろうと切ります @line= part( @line,100,1024);切り出した残りを格納します message "@line = "+@line if( part(#output,0,3) == "012");先頭が"012"なら1度だけ除きます #output = part(#output,3,1024) endif; writebuffer2 #output +"^M^J";行末に改行コードを表示します endwhile getline @line endloop ; Νογικο |
| 02062 02/05/20 23:58 | RE:02061 これだけのスクリプトを作りた |
| 投稿者 : 範子 | コメントを投稿する |
;タブが落ちて、デバッグ用のコードが残ってたのでやり直します。 display off ;本来の表示を消します getline @line ;改行までを変数に入れます ;1023文字より長くなることが ;あるんでしょうか ;その場合はうまく動きません ;代わりにgetcharを使ってください beginloop while( @line != "") #output = part( @line,0, 100) ;先頭から100文字切り出します ;2バイト文字の途中だろうと切ります @line= part( @line,100,1024) ;切り出した残りを格納します if( part(#output,0,3) == "012") ;先頭が"012"なら1度だけ除きます #output = part(#output,3,1024) endif writebuffer2 #output +"^M^J" ;行末に改行コードを表示します endwhile getline @line endloop |
| 新規に投稿する |