HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2010
1119
ていくリストボックスについて10解決


ていく

リンク

2010/11/19(Fri) 23:04:33|NO.35909

リストボックスに表示する内容についてです。
.txtに入力されたデータを読み取り、
リストボックスとして構成するようにしたいです。

たぶんこんな感じです。↓

ListBox.txt の中身(仮)
//改行することによってリストに追加が可能です。
ああ いい うう ええ おお

このListBox.TXTを読み取り、1行に入力された内容をリストボックス
として成り立たせるにはどうしたらいいですか?

説明がへたくそでごめんなさい・・・。



この記事に返信する


通りすがり

リンク

2010/11/19(Fri) 23:12:34|NO.35911

やりたい事が今ひとつ分かりません。
まずテキストの内容は縦書きなのですか?

そしてそれを読み込んだ後リストボックスでは、
[あいうえお]
[あいうえお]
と表示したいという事ですか?



ていく

リンク

2010/11/19(Fri) 23:21:25|NO.35912

>ListBox.txt の中身(仮)

//改行することによってリストに追加が可能です。 ああ ←これで1つ いい ←これで1つ うう ←これで1つ ええ ←これで1つ おお ←これで1つ

よこがきです。
分かりにくくてすいません。

横書きで記入された内容をリストボックスに表示する。
改行で2つめの項目・・・

と続くように・・・

というふうに書いたものです。



通りすがり

リンク

2010/11/19(Fri) 23:30:16|NO.35913

それなら listbox 命令の三番目のパラメータに、
テキストファイルを読み込んだ変数を指定すれば簡単に出来ます。



通りすがり

リンク

2010/11/19(Fri) 23:33:30|NO.35915

それとももしかして
// から始まる行と、空の行を読み飛ばして
リストボックスに表示したいと言う事でしょうか?



ていく

リンク

2010/11/19(Fri) 23:37:13|NO.35916

> それとももしかして
> // から始まる行と、空の行を読み飛ばして
> リストボックスに表示したいと言う事でしょうか?

そうです!それです!

パラメーターがあんやこんや・・・
よくわからないです・・・すいません・・・



ORZ

リンク

2010/11/19(Fri) 23:56:16|NO.35917

あんやこんやで伝わったら苦労はない。君と違って我々はエスパーではないのでな。

それはさておき、noteget命令などで一行ずつテキストを読み込んでいき、//で始まっていたり
改行コードのみだった場合処理を飛ばし、それ以外なら変数に追加していき、最終的に
その変数をリストボックスの引数にぶち込んでやるという方法がある。



通りすがり

リンク

2010/11/19(Fri) 23:56:58|NO.35918

HSPではそのような事をする場合
自分で一行ずつ調べて判断するしかありません。
メモリノートパッド命令を使い1行ずつ調べて、
不要な行を削除していくのが恐らく最も簡単でしょう。



ANTARES

リンク

2010/11/20(Sat) 03:45:11|NO.35921

 「//」を注釈記号にすると、下で使っているgetstrが使えず、
instrとstrmidに分けなければならないため、
「;」を注釈記号にすることをお勧めします。
(その場合、データに「;」が使えませんが)
以下、その場合の例です。

;ファイルの読み込み notesel buf noteload "listBox.txt" ;必要なデータだけ上に詰める sdim lbuf,256 s="" i=0 repeat notemax noteget lbuf,cnt getstr s,lbuf,0,';' if s!="" { if i<cnt: noteadd s,i,1 i++ } loop ;余分な行の削除 repeat notemax-i,i notedel i loop ;結果表示 mes buf



u

リンク

2010/11/20(Sat) 03:53:23|NO.35922

noteloadでファイルを読み込みnoteinfo(notemax)で行数を調べる。
次に行数分repeatさせ、notegetで行を取得しつつstrmidで空または//で始まるか判定を行う。
どちらでもなかった場合リストボックス用文字列型変数に行を代入する。
パラメータが分からない場合は命令を選択後F1キーでヘルプを開いてください。

txt = {" テスト //コメント テスト2 テスト3 "} sList = "" notesel txt repeat noteinfo(0) noteget buf, cnt if (buf != "") && (strmid(buf, 0, 2) != "//") { sList += buf + "\n" } loop listbox nList, 100, sList



ていく

リンク

2010/11/20(Sat) 08:40:27|NO.35926

ANTARESさんとuさんのサンプルを合体させて、
理想のものが完成しました!

ご回答していただいたみなさん、ありがとうございました!



ONION software Copyright 1997-2021(c) All rights reserved.