プチコン3号&BIGまとめWiki

2つの改行コードの挙動

パンくずリスト

従来のページはこちらからどうぞ。

投稿者: Ryou Tanpo

 

のべ 1676 人にお越しいただきました。ありがとうございます!!

はじめに

プチコン3号/BIG には、改行を表す文字コードとして CHR$(10) と CHR$(13) がありますが、この2つは挙動や用途が異なるため、ここで解説します。

このページは内容の追加大歓迎です!

CHR$(10) と CHR$(13) の詳細

  • EDITモードでは、CHR$(10) は改行マークとして表示した後改行します。つまり、以降の文字は次の行に表示されます。
  • 一方 CHR$(13) は改行マークを表示した後に改行しません。続く文字はそのまま右表示されることになります。

CHR$(10)

  • これが実質的な改行で、行を改めるという表示上の機能を表します。
  • EDITモードでは、ENTERキーが押されたときはこの CHR$(10) を入力します。
  • ただしプログラムの実行中は、ENTERキーが押されると後述の CHR$(13) を返します。INKEY$ 関数で読み取れるのは CHR$(13) です。

CHR$(13)

  • プログラムの実行中にENTERキーが押されたとき、INKEY$ 関数が返すのは CHR$(13) です。
  • 後述しますが、ファンクションキーに命令を登録する KEY 命令は CHR$(13) がある位置でENTERキーを押すのと同じ働きをします。つまり、CHR$(13) がENTERキーを意味すると言って良いでしょう。

CHR$(10) と CHR$(13) の共通点

  • CHR$(10) と CHR$(13) は、どちらも、プログラムの区切りとして挿入することができます。前述の通り、改行マークを表示して行を改める CHR$(10) と、改行マークのみを表示して以降の文字がそのまま右に続く CHR$(13) で表示は異なりますが、プログラム上では同じように用いることができます。
  • SmileBASIC のコメントは行末までですが、CHR$(10) と CHR$(13) はともに行末と解釈されます。

CHR$(10) と CHR$(13) が別の働きをする命令

CHR$(10) や CHR$(13) は文字ですから、文字列を指定するあらゆる場所に含めることができます。ここでは、SmileBASIC の主な命令に CHR$(10) や CHR$(13) が指定されたとき、どのような挙動をするかまとめます。

PRINT

PRINT では、表示する文字列に CHR$(10) があるとそこで改行し、続く文字列を次の行から表示します。

一方 CHR$(13) を表示しようとすると改行のマークが表示されます。改行のマークというのはEDITモードの画面で見られる水色の左矢印のことです。
実際に改行は行われません。

KEY

CHR$(10) の挙動

KEY に指定する文字列を CHR$(10) を含むと見かけ上の改行となるので、ファンクションキーを押した時に複数行の挿入が可能です。

CHR$(13) の挙動

CHR$(13) はENTERキーを押すのと同じ働きをします。
DIRECTモードではENTERキーを押すことで入力した命令が実行されます。つまり、これを使うと、例えば KEY 1,��ACLS��+CHR$(13) のように、最後に CHR$(13) を足すことで、ファンクションキーを押した後にENTERキーを押さなくても、ファンクションキーを押すだけで命令を実行することができます。

SFN

SFN は、フォントを描画する SFNT フォントライブラリ (すうさん作) に含まれている、実際に文字列を描画する命令です。

文字列の改行を表す文字はデフォルトで CHR$(13) となっていますが、SFNLB に任意の 1 文字を指定すると、その文字を改行のための文字とすることができます。

CHR$(10) の挙動

デフォルトでは CHR$(10) では改行されません。見かけ上はスペースのように表示されます。

CHR$(13) の挙動

デフォルトでは CHR$(13) で改行を表します。ただし、SFNLB で改行を表す文字を変更することができるので、もし CHR$(13) 以外に設定された場合は何の意味も成しません。

CHR$(10) と CHR$(13) が同じ働きをする命令

DIALOG

CHR$(10) も CHR$(13) もまったく同じ改行となります。キャプションでは改行できません。

GKNJPRINT

GKNJPRINT は KNJLIB (ほしけんさん作) に含まれる文字列を表示する命令ですが CHR$(10) も CHR$(13) もまったく同じ改行として扱われます。

LEN

指定された文字列の文字数を数える LEN 命令はすべての文字を 1 文字としてカウントします。CHR$(10) も CHR$(13) もそれぞれ同じように 1 文字としてカウントされます。

投票

  • 内容はわかりやすかったですか?
    選択肢 投票
    わかりやすい 5  
    まあまあ 2  
    わかりにくい 0  
  • 2018/08/24 に内容を一新しました。以前とどちらの方がわかりやすいですか?
    選択肢 投票
    前の方がわかりやすい 1  
    今の方がわかりやすい 0  

コメント

ご指摘、ご感想やご要望があればお書きください。


最終更新: 2022/09/20 (火) 12:49:00

メニュー 【3号】

ヘルプ

リンク

最近の更新

最近の人気ページ

オンライン情報

  • 現在同時に 1 人がこのサイトを見ています
  • このページはこれまでに 1676 回、本日は 1 回、昨日は 0 回閲覧されました

ページの先頭に戻る

表示モード : [ スマホ・3DS対応表示 | クラシック表示 ]
PukiWiki 1.4.7 Copyright © 2001-2006 PukiWiki Developers Team. License is GPL. Based on "PukiWiki" 1.3 by yu-ji
ページの処理時間 : 0.108 秒 | このページの最終更新 : 2022/09/20 (火) 12:49:00 (565d) | ログイン
Copyright(C) 2011-2014 プチコンまとめWiki ◆1sxkymI8ji30