KLWPでテキストファイルの中から指定した行のテキストを表示する

|

KLWPを使って画面上に指定したテキストを表示する方法はいくつかあります。今回はその表示するテキストを別ファイルとして用意し、そのテキストファイルの中から指定した行のテキストを表示する方法です。
これを使うと、名言集などを用意して、その中からランダムに表示するといったことができるようになります。

1.テキストファイルを用意する

まずは1行に1つの言葉を記したテキストファイルを用意します。今回は適当にスヌーピーの名言を15個書き記したものを用意しました。

ここで気をつけることは、このテキストファイルの文字コードをUTF-8で保存することです。Windowsのメモ帳などで何も考えずにShift_JISで保存したりすると、文字化けする事になります。

2.KLWPで表示する

KLWPのテキストで次のように入力します。

$sh("sed -n 2p /storage/emulated/0/Kustom/txt/test.txt")$

これはKLWPの$sh()$で表示できるシェルコマンドで、指定したファイルの指定した行を表示するというものです。

青字の2pという部分が何行目という指示になります。2pなので2行目が表示されます。こういったものだと先頭を0行目とすることも多いですが、この場合は先頭が1行目です。なお、0pにするとファイルの内容が全て表示されます。(ただしパラメータを付けないと5行目まで。)

赤字の部分がファイルの位置を示します。ここで指定したファイルが表示されます。

ファイルの位置(パス)については、ファイラーアプリで確認できますし、そのままパスをコピーすることができるアプリもあります。(画像はSolid Explorerを使ってます。)

ランダムに表示する

指定した行を表示するだけであれば、そのまま入力したほうが早いですよね。なので次は、ファイルの○行目というのをランダムにしてみます。

今回のコードは以下になります。

$sh("sed -n $((RANDOM%15+1))p /storage/emulated/0/Kustom/txt/test.txt")$

最初の例の2pという行数の指定部分が$((RANDOM%15+1))pというものになりました。RANDOMはシェルコマンドでランダムな数字を出すもので、%15はそれを15で割った「余り」を表示するものです。これで0から14までのランダムな数字が取り出せます。今回は0行目だと全文表示されてしまうので、最後に1を足しています。これで1から15までの数字が取り出せます。

問題点

ただ、このランダムは切り替わる時間の指定ができません。とりあえず私の環境だと2分おきに表示が切り替わりました。$((RANDOM%15+1))の部分をKLWPの$tu(rnd, 1, 1, 15)$などに置き換えられれば良かったのですが、このままシェルコマンドの中に入れることはできないようです。

2分程度であれば、その間ずっとホーム画面を見つめているということもないので大丈夫だとは思いますが、切り替え時間を厳密に決めたいという人には不満かもしれません。

代替案

今回の趣旨とは外れますが、間隔を自分で決めてランダムに表示したいのであれば以下のようにするのがいいと思います。

$if(tu(rnd, 10, 1, 4)=1, alpha, tu(rnd, 10, 1, 4)=2, beta, tu(rnd, 10, 1, 4)=3, gammma, omega)$

単純にifを使ってすべてテキストの中に入れてしまう方法です。ちょっと内容が長くなるので、別アプリで書いてペーストするのがいいと思います。

まとめ

まだ少し制限は付きますが、今回のような方法を使えば画面上のキャラに好きな言葉をランダムに喋らせたり、モチベーションアップする標語を画面上にランダム表示させることができます。何かに使えるかもしれませんね。

KLWPの使い方についてはこちらのページにてまとめています。使い方に困ったときなど、こちらのページも参考にしてください。

Random Posts

OPPO Find X 開封の儀:可動式カメラで実現した真の全画面スマホ!男の子ってこういうの好きでしょ?
simple & high-performance【あなたのホーム画面見せてください 2018】
最近気になってるクラウドファンディングのスマホ関係プロジェクト
C94新刊 「アンドロイドのホーム画面をカスタマイズする本10」のお知らせ
格安SIMの高速通信オンオフをクイック設定パネルから切り替える方法 (mineo・UQ mobile・OCN)
SpeedCheck Lite:消費データ通信量1MB、5秒以下で計測可能なスピードテストアプリ
Linner Bluetoothイヤホン NC50:アクティブノイズキャンセリング機能で集中したい時にピッタリ
第7回ホーム画面カスタマイズ定期コンテスト 投票結果発表! 1位は「カラフルシャッター(フラット)」
cheeroの2in1タイプ巻取り式USBケーブル:さわやかでポップな配色がかわいい
常用より非常用、3000円で災害時に備えようLiberFlyerのモバイルバッテリー「Chargi-Q mini」レビュー
mineoが通信の最適化についてのお詫びと詳細をコミュニティサイト「マイネ王」内にて公開
格安SIM (MVNO) の速度測定:2018年11月 その2 LINEモバイル(ソフトバンク回線)の最速チャレンジに黄色信号
KLWPのテーマ特集:ドットビューにX型、マテリアルデザインなど雑多なテーマ6種 (2017.07.08)
MIKU complex【ホーム画面定期コンテスト】
FGO 邪ンヌ風ホーム【ホーム画面コンテスト2017】