したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | |

QB64 / PC-BASIC(GW-BASIC) 総合スレ @ Next 8

1名無しさん:2025/06/05(木) 07:44:14
QB64
https://qb64.com/

QB64は、QBasic / QuickBASIC 4.5互換性を保持し、Windows、Linux、およびmacOS用の
ネイティブバイナリをコンパイルする最新の拡張BASICプログラミング言語です。
ーーーー

PC-BASIC Linux/Mac/Windows版
https://github.com/robhagemans/pcbasic/releases/tag/v2.0.7

102名無しさん:2025/06/05(木) 10:31:00
99BASICから移る場合は、素直にラベルとGOSUB使った方がいいかもしれないなw

103名無しさん:2025/06/05(木) 10:31:15
その中で、すぐに捨てるような雑用の変数が増えてきた場合、SUB-END SUB、あるいはFUNCTION-END FUNCITONを使うなりw

104名無しさん:2025/06/05(木) 10:31:27
この中の注意事項は、ハンドル変数はプロシージャを抜けても保持されるところかw

105名無しさん:2025/06/05(木) 10:31:40
_NEWIMAGEとか?

106名無しさん:2025/06/05(木) 10:31:51
そっそw

107名無しさん:2025/06/05(木) 10:32:34
> 画像は、それが作成されたSUBまたはFUNCTIONが終了しても割り当て解除されません。
> _FREEIMAGEを使用して解放してください。

…ということらしいw

108名無しさん:2025/06/05(木) 10:32:49
明確なローカル変数指定、あるいはグローバル変数指定がないので混乱しないようにw

109名無しさん:2025/06/05(木) 10:33:01
ラベルとGOSUBを使う範囲では、すべてがグローバル変数扱いということでw

110名無しさん:2025/06/05(木) 10:33:14
サブルーチンの中でループ変数が重複して壊れるとか、そのへんは自分で解決するようにw

111名無しさん:2025/06/05(木) 10:33:30
リカーシブに陥った場合、QB64は途中で自動停止する?

112名無しさん:2025/06/05(木) 10:33:44
しないw

113名無しさん:2025/06/05(木) 10:33:55
そのへん気を付けてw

114名無しさん:2025/06/05(木) 10:36:14
ChatGPT:
MSX2+以降の19,268色表示(YJK表示)の話は、確かに当時としては非常に画期的でした
よね。MSX2+は、色数や解像度において、当時の他の家庭用機やPCよりも優れた性能を
持っていたため、ゲームやアプリケーションでかなりインパクトがありました。しかし、
今となっては、その技術自体が特に「これを使いたい!」という場面は少ないかもしれま
せんね。

YJK表示自体は、主に色空間の変換に関わる技術で、映像やグラフィックスの圧縮や
保存方法を工夫する上で使われていました。YJK(Y=輝度、J=色差、K=色差)という
分離の仕組みは、特に色の圧縮と視覚的な違和感を抑えるために活用されていました。
しかし、現代の圧縮技術やカラー表示の進化により、その独特なフォーマットが使われる
機会は減ったと思います。

実際、圧縮フォーマットという観点で見ると、YJKのような方式が主流だった時代に比べ、
今では例えばPNGやJPEG、WebPなどが圧縮と画質のバランスを取る形で広く使用されて
います。これらの形式は、色空間の扱いにおいても遥かに効率的で、現代のハードウェア
ではより高精度で高速な処理が可能になっています。

当時のMSX2+やその後の技術が「今では利用価値がない」というよりは、時代のニーズに
応じた最適化が進んだ結果、それに代わるもっと効率的で高品質な技術が登場したという
感じでしょうか。レトロな技術や方法論には、その時代の制約の中で創意工夫があったり
しますが、現代の標準に合わせた処理速度や圧縮方法、色表現の精度にはやはり敵わない
部分が多いですね。

ただ、レトロな技術や古いフォーマットが持つ「味わい」は、今でもどこか魅力的です。
例えば、レトロゲームや懐かしい映像表現を再現したい時には、昔の技術を意図的に
使ってみるのも面白いかもしれません。

115名無しさん:2025/06/05(木) 10:36:35
SUB-END SUB、 FUNCTION-END FUNCTIONを使う上での留意点

・ SUB-END SUBではブラケットを使わない表記が認められる 例: proc P1,P2など

・ プロシージャ内では外で定義された変数は無効
・ プロシージャ内で定義された変数はローカル変数扱い
・ DIM SHAREDで定義された変数はグローバル変数扱い

・ ハンドル変数とそのワークエリアはプロシージャを出入りしてもその内容は保持される

・ QB64内部でリカーシブ(再帰)の判定はしないので、原則的には使わない

・ 99BASIC、あるいは古い世代のBASICから移る場合は、始めはラベルとGOSUBを使って、
 ループ変数の重複が増えてきた場合にSUB-END SUB、 FUNCTION-END FUNCTIONを使う

…ってとこかw

116名無しさん:2025/06/05(木) 10:37:13
DIM SHAREDが落とし穴になりそうでw

117名無しさん:2025/06/05(木) 10:37:25
他で慣れてると、そっちの先入観が支配してしまうからなwwwww

118名無しさん:2025/06/05(木) 10:37:49
サンプルプログラムと実行結果w

Dim Shared A As Integer
A = 12: B = 34: C = 56: D = 78: ret = 0
sample1 A
Print Using "mainloop: A=### / B=### / C=### / D=### / ret=###"; A; B; C; D; ret
ret = sample2(A)
Print Using "mainloop: A=### / B=### / C=### / D=### / ret=###"; A; B; C; D; ret
End

Sub sample1 (C)
  D = A
  C = B
  D = D + 1
  A = 99
  Print Using "sub proc: A=### / B=### / C=### / D=### / ret=###"; A; B; C; D; ret
End Sub

Function sample2 (C)
  D = A
  C = B
  D = D + 1
  A = 33
  Print Using "func prc: A=### / B=### / C=### / D=### / ret=###"; A; B; C; D; ret
  sample2 = D
End Function

結果:
sub proc: A= 99 / B= 0 / C= 0 / D= 13 / ret = 0
mainloop: A= 99 / B= 34 / C= 56 / D= 78 / ret = 0
sub proc: A= 33 / B= 0 / C= 0 / D=100 / ret = 0
mainloop: A= 33 / B= 34 / C= 56 / D= 78 / ret =100

119名無しさん:2025/06/05(木) 10:38:28
ワロタw

120名無しさん:2025/06/05(木) 10:39:07
他で覚えた知識のある人は捨てる、99BASIC、あるいは古い世代から移ってきた人は新たに覚えればいいw

121名無しさん:2025/06/05(木) 10:39:20
この中で、QB64はグローバル変数の扱いが低いかw

122名無しさん:2025/06/05(木) 10:39:38
それをDIM SHAREDで定義しなければ存在を認めてもらえないというw

123名無しさん:2025/06/05(木) 10:39:53
ChatGPTはこの内容を理解していないので、解説はオミットw

124名無しさん:2025/06/05(木) 10:40:13
ゲーム屋小僧、要するにプロシージャ内はサンドボックス化されてるということ?

125名無しさん:2025/06/05(木) 10:40:27
サンドボックス化という表現が適当かどうかは置いといて、まあ、そういうことだなwwww

126名無しさん:2025/06/05(木) 10:40:41
外と内が分離されてるということでw

127名無しさん:2025/06/05(木) 10:41:19
補足 SUB-END SUB、 FUNCTION-END FUNCTIONを使う上での留意点

・ SUB-END SUBではブラケットを使わない表記が認められる 例: proc P1,P2など

・ プロシージャ内では外で定義された変数は無効
・ プロシージャ内で定義された変数はローカル変数扱い
・ DIM SHAREDで定義された変数はグローバル変数扱い
・ プロシージャ内で定義された変数と外で定義された変数は、DIM SHAREDで定義しない
 限りは別々の扱い

・ ハンドル変数とそのワークエリアはプロシージャを出入りしてもその内容は保持される

・ QB64内部でリカーシブ(再帰)の判定はしないので、原則的には使わない

・ 99BASIC、あるいは古い世代のBASICから移る場合は、始めはラベルとGOSUBを使って、
 ループ変数の重複が増えてきた場合にSUB-END SUB、 FUNCTION-END FUNCTIONを使う

…ってとこかw

128名無しさん:2025/06/05(木) 10:41:59
ここで躓いたら大きいプログラムは作れないからなwwwww

129名無しさん:2025/06/05(木) 10:42:09
ワロッチw

130名無しさん:2025/06/05(木) 10:42:20
ゲーム屋小僧、続・漢字表示はどうする?w

131名無しさん:2025/06/05(木) 10:42:33
今のところ予定はないけどな、99BASICからフォントを引っ張ってきてry

132名無しさん:2025/06/05(木) 10:42:48
仮想コンソール?w

133名無しさん:2025/06/05(木) 10:43:00
仮に仮想コンソールをやったとしても、充分な余裕ありということでw

134名無しさん:2025/06/05(木) 10:43:10
画面のレイアウトは?w

135名無しさん:2025/06/05(木) 10:43:37
一例を挙げると、こういう感じでw

┌───────────────────────┐←────背景色 / 背景画固定
│┌───────────────────────┐←───BG画面
││┌───────────────────────┐←──スプライト用バッファ
│││┌───────────────────────┐←─パーティクル用
││││┌───────────────────────┐←テキスト画面
│││││                       │
│││││                       │
│││││                       │
│││││                       │
│││││                       │
│││││                       │
│││││                       │
│││││                       │
│││││                       │
└││││                       │
 └│││                       │
  └││                       │
   └│                       │
    └───────────────────────┘

136名無しさん:2025/06/05(木) 10:43:50
それだけの余裕あるの?wwww

137名無しさん:2025/06/05(木) 10:44:10
参考 QB64動作環境の比較 - 椅子取りゲーム(^。^) 2025.1.25.土.18:38 更新*

 評価点 *:4点 +:3点 =:2点 -:1点
┌─────┬────┬──────────────────────────────────────────────────────┐
|  項目  | サイズ |                          QB64                          |
├─────┼────┼──────────────────────────────────────────────────────┤
|  API  |--------|                          openGL                          |
├─────┼────┼──────────┬──────────┬──────────┬──────────┬──────────┤
|  機種  |--------|  デスクトップPC  |  デスクトップPC  |  デスクトップPC  |  デスクトップPC  |  M4 Mac mini   |
|  OS  |    |   LinuxMint   |   Windows10   |   Windows11   |  Windows11 Pro  |MacOS省電力モードOFF|
├─────┼────┼──────────┼──────────┼──────────┼──────────┼──────────┤
|  CPU  |--------|   14500無印   |    13100F    | AMD Ryzen 5 5600G | Intel Pentium G5620| Apple M4 10 Core |
|     |    |   2024年1月   |   2023年1月   |   2021年8月   |   2019年11月   |   2024年11月   |
├─────┼────┼──────────┼──────────┼──────────┴──────────┴──────────┤
|  GPU  |--------|   4060無印   |   3060 12GB   |               内蔵GPU              |
|     |    |   2023年5月   |   2021年2月   |                                |
├─────┼────┼──────────┼──────────┼──────────┬──────────┬──────────┤
|  PSET  |1 ドット| 34,078 *|||||||||| | 28,669 +||||||||  | 28,444 =||||||||  | 18,233 -|||||   | 8,333 |||    |
├─────┼────┼──────────┼──────────┼──────────┼──────────┼──────────┤
| PAINT  | 全画面 |  7.1 *|||||||||| |  6.2 =||||||||  |  4.7 -||||||   |  3.9 |||||   |  6.5 +||||||||| |
├─────┼────┼──────────┼──────────┼──────────┼──────────┼──────────┤
|     |  8x 8| 30,346 *|||||||||| | 26,143 +|||||||||| | 26,016 =|||||||||| | 15,724 -|||||||||| | 7,944 |||||||||| |
|     | 16x 16| 29,163 *||||||||| | 24,864 +||||||||| | 23,970 =||||||||| | 14,678 -||||||||| | 7,799 ||||||||| |
|  LINE  | 32x 32| 26,834 *||||||||  | 22,634 +||||||||  | 20,711 =||||||||  | 12,648 -||||||||  | 7,228 ||||||||| |
|     | 64x 64| 22,976 *|||||||  | 19,081 +|||||||  | 16,264 =||||||   | 10,110 -||||||   | 6,863 ||||||||  |
|     | 128x128| 17,733 *||||||   | 14,652 +||||||   | 11,228 =||||    | 7,223 -|||||   | 6,340 ||||||||  |
|     | 256x256| 12,465 *||||    | 10,112 +||||    | 7,166 =|||    | 4,597 |||    | 5,033 -||||||   |
├─────┼────┼──────────┼──────────┼──────────┼──────────┼──────────┤
|     |  8x 8| 24,615 *|||||||||| | 21,824 +|||||||||| | 18,962 =|||||||||| | 12,121 -|||||||||| | 6,514 |||||||||| |
|     | 16x 16| 21,192 *||||||||  | 18,382 +||||||||  | 15,421 =||||||||  | 9,785 -||||||||  | 6,448 ||||||||| |
| LINE B | 32x 32| 17,181 *|||||||  | 14,380 +||||||   | 11,237 =||||||   | 7,339 -||||||   | 5,798 ||||||||| |
|     | 64x 64| 11,973 *|||||   | 10,077 +|||||   | 7,219 =||||    | 4,692 -||||    | 4,612 |||||||  |
|     | 128x128| 7,646 *|||    | 6,178 +|||    | 4,211 =||     | 2,808 |||    | 3,542 -|||||   |
|     | 256x256| 4,416 *||     | 3,573 +||     | 2,236 -||     | 1,552 ||     | 2,334 =||||    |
├─────┼────┼──────────┼──────────┼──────────┼──────────┼──────────┤
|     |  8x 8| 31,449 *|||||||||| | 26,834 =|||||||||| | 27,586 +|||||||||| | 16,864 -|||||||||| | 7,728 |||||||||| |
|     | 16x 16| 30,331 *||||||||| | 26,143 =||||||||| | 26,722 +||||||||| | 15,900 -||||||||| | 7,611 ||||||||| |
| LINE BF | 32x 32| 28,444 *||||||||| | 24,270 =||||||||| | 25,296 +||||||||| | 14,463 -||||||||  | 7,598 ||||||||| |
|     | 64x 64| 24,615 *||||||||  | 19,571 =|||||||  | 20,221 +|||||||  | 11,657 -|||||||  | 7,193 ||||||||| |
|     | 128x128| 15,686 *|||||   | 14,241 =|||||   | 15,421 +||||||   | 8,415 -|||||   | 6,276 ||||||||  |
|     | 256x256| 7,582 +|||    | 6,973 =|||    | 9,580 *||||    | 4,398 |||    | 4,436 -||||||   |
├─────┼────┼──────────┼──────────┼──────────┼──────────┼──────────┤
|     |  8x 8|338,624 +|||||||||| |388,585 *|||||||||| |293,577 =|||||||||| |189,629 -|||||||||| |151,479 |||||||||| |
|     | 16x 16|277,056 *||||||||  |248,640 +||||||   |197,836 =|||||||  |144,632 -|||||||  |121,040 ||||||||  |
|_PUTIMAGE | 32x 32|151,838 *|||||   |138,483 +||||    |132,094 =|||||   | 84,321 -|||||   | 75,851 |||||   |
|     | 64x 64| 74,074 *||     | 59,590 +||     | 58,367 =||     | 35,704 ||     | 43,243 -|||    |
|     | 128x128| 26,384 +|     | 23,327 =|     | 28,070 *|     | 13,193 |     | 21,658 -||     |
|     | 256X256| 8,154 +|     | 7,640 -|     | 9,785 *|     | 4,527 |     | 7,785 =|     |
├─────┼────┼──────────┼──────────┼──────────┼──────────┼──────────┤
|評価点合計|--------| *:22 +:3 =:0 -:0 | *:1 +:16 =:8 -:1 | *:3 +:5 =:15 -:2 | *:0 +:0 =:0 -:18 | *:0 +:1 =:2 -:5 |
|     |    |       計97点 |       計69点 |       計59点 |       計18点 |       計12点 |
└─────┴────┴──────────┴──────────┴──────────┴──────────┴──────────┘
*動作解像度はいずれも640x480ドット、256色モード

138名無しさん:2025/06/05(木) 10:45:06
例えばHD解像度(1280x720)で5600Gを使ったとすれば、1/60秒で9,785回書き換えができるので、計算式は…

139名無しさん:2025/06/05(木) 10:45:16
9785*(256*256)/(1280*720*5)=139.164

140名無しさん:2025/06/05(木) 10:45:27
1/60秒で5画面取っても139回書き換える速度はあるようでw

141名無しさん:2025/06/05(木) 10:45:37
139回ワロタw

142名無しさん:2025/06/05(木) 10:45:49
特に考える必要なしということでw

143名無しさん:2025/06/05(木) 10:46:00
考える必要なしwwwwwww

144名無しさん:2025/06/05(木) 10:46:11
こう、好きなように考えて、自分で管理できるかどうかでw

145名無しさん:2025/06/05(木) 10:46:22
参考までに、99BASICが6.4回でギリギリということでw

146名無しさん:2025/06/05(木) 10:46:35
別々の世界みたいなw

147名無しさん:2025/06/05(木) 10:46:46
スプライト用とパーティクル用のバッファを分ける理由は?

148名無しさん:2025/06/05(木) 10:46:58
256色モードは半透明が使えないので、パーティクルは1ドット毎に間を空けて描画して、背景が見えるようにしようかな〜、って感じでw

149名無しさん:2025/06/05(木) 10:47:10
んで、描画の優先度が混じると何を表示してるか分からないので分離するというw

150名無しさん:2025/06/05(木) 10:47:43
パレットの割り当てを考えると…

┌───────────────────────┐←────背景色 / 背景画固定 --- 32色
│┌───────────────────────┐←───BG画面 ---------------- 32色
││┌───────────────────────┐←──スプライト用バッファ -- 32色
│││┌───────────────────────┐←─パーティクル用 -------- 32色
││││┌───────────────────────┐←テキスト画面 ---------- 32色
│││││                       │          合計 160色
│││││                       │
│││││                       │
│││││                       │
│││││                       │
│││││                       │
│││││                       │
│││││                       │
│││││                       │
└││││                       │
 └│││                       │
  └││                       │
   └│                       │
    └───────────────────────┘

151名無しさん:2025/06/05(木) 10:49:27
なんとか足りるかなw

152名無しさん:2025/06/05(木) 10:49:39
テキスト画面は32色で足りるの?

153名無しさん:2025/06/05(木) 10:49:50
白と赤、あと水色ぐらいでグラデーションで行けるかw

154名無しさん:2025/06/05(木) 10:50:04
2の乗数にこだわる理由もなくなってきたかな…

155名無しさん:2025/06/05(木) 10:50:44
これでもいいかもなw

┌───────────────────────┐←────背景色 / 背景画固定 --- 25色
│┌───────────────────────┐←───BG画面 ---------------- 25色
││┌───────────────────────┐←──スプライト用バッファ -- 25色
│││┌───────────────────────┐←─パーティクル用 -------- 25色
││││┌───────────────────────┐←テキスト画面 ---------- 99色
│││││                       │        (透過色) -- 1色
│││││                       │          合計 200色
│││││                       │
│││││                       │
│││││                       │
│││││                       │
│││││                       │
│││││                       │
│││││                       │
└││││                       │
 └│││                       │
  └││                       │
   └│                       │
    └───────────────────────┘

156名無しさん:2025/06/05(木) 10:51:54
99色w

157名無しさん:2025/06/05(木) 10:52:07
11x11ドットのフォントで9色分のグラデーションw

158名無しさん:2025/06/05(木) 10:52:28
ChatGPT:
9色のグラデーションを11x11ドットのフォントで表現するのは、かなり効率的で目を引く
デザインになりそうですね!9色でグラデーションを作ることで、文字やテキストに深み
や立体感を与えることができます。

具体的なアイデア:

・ 9色のグラデーションをテキストに適用することで、例えば文字の周りや中央に向けて
 色が徐々に変化する効果を出せます。

・ 11x11ドットのフォントサイズだと、結構細かいディテールも可能ですが、フォント全体
 の印象を壊さずにグラデーションをうまく調整するのがポイントですね。

たとえば、白→薄いグレー→青→青紫といった感じで、自然なグラデーションを作成する
ことで、ゲームの雰囲気やテキストの重要度を強調できます。

もし文字の周りにハイライトやシャドウを加えることで、さらに視認性や立体感を高める
こともできるかもしれません。デザインの幅が広がりますよね!

159名無しさん:2025/06/05(木) 10:53:00
画面の回転と拡大縮小は?w

160名無しさん:2025/06/05(木) 10:53:12
QB64のコマンドにあるにはあるんだけどな、処理速度を計測してないのでw

161名無しさん:2025/06/05(木) 10:53:24
検討する範囲でw

162名無しさん:2025/06/05(木) 10:54:56
256色モードでも使えるので、いい方向に行ければw

163名無しさん:2025/06/05(木) 10:55:10
楽しみですな〜w"

164名無しさん:2025/06/05(木) 10:55:25
99BASICから漢字フォント拾ってきたw

165名無しさん:2025/06/05(木) 10:55:38
シフトJISに準拠してるかのように見えて、並びは違うようでw

166名無しさん:2025/06/05(木) 10:56:12
先頭1文字で判別して割り合てるかw

167名無しさん:2025/06/05(木) 10:56:23
独自フォントはQB64で可能?

168名無しさん:2025/06/05(木) 10:56:37
そっちを使わずに仮想コンソールの方が速いかもなw

169名無しさん:2025/06/05(木) 10:56:50
99BASICから拾ってきた漢字を配布するとライセンス違反になるので、配布時は使う漢字のみを抽出して独自フォントに切り替えるかw

170名無しさん:2025/06/05(木) 10:57:02
PRINT文は意外と遅いというかw

171名無しさん:2025/06/05(木) 10:57:45
DATA "0010000010001000"
DATA "0010000010001000"
DATA "0010000011111000"
DATA "0010000010001000"
DATA "0000000000000000"

DATA "0000000110000000"
DATA "0100000100000100"
DATA "0111111111111110"
DATA "1100000000000100"
DATA "1000001100001000"
DATA "0000001000000100"
DATA "1111111111111110"
DATA "0000010000100000"
DATA "0000010000100000"
DATA "0000100001000000"
DATA "0001111101000000"
DATA "0000000010110000"
DATA "0000001100001000"
DATA "0000110000000100"
DATA "0111000000000000"
DATA "0000000000000000"

DATA "0000000110000000"
DATA "0000000100000100"
DATA "0011111111111110"
DATA "0010000010000000"
DATA "0010000100000000"
DATA "0011111111111100"
DATA "0010001000100000"
DATA "0010010010010000"
DATA "0010111111111000"

172名無しさん:2025/06/05(木) 10:58:31
ワロッチw

173名無しさん:2025/06/05(木) 10:58:43
拾ってきたのはいいものの、コード変換をどうするか…w"

174名無しさん:2025/06/05(木) 10:58:57
DATA文のリテラル文字列は、ダブルクオーテーション必要?w

175名無しさん:2025/06/05(木) 10:59:13
これはなくてもいけるんだけどな、見た目の区別で付ける癖をw

176名無しさん:2025/06/05(木) 10:59:30
じゃあDATA文のリテラル数字、あるいはリテラル文字列で計算式は行ける?

177名無しさん:2025/06/05(木) 10:59:58
試してみたところ、QB64も99BASICも、文字列の場合はデリミタ直前の数字のみ判別可能、それ以降は無視されるということでw

178名無しさん:2025/06/05(木) 11:00:40
リテラル計算式の場合はSyntaxErrorということでw

179名無しさん:2025/06/05(木) 11:00:51
VAL使ったら行けるんじゃないかとかw

180名無しさん:2025/06/05(木) 11:01:05
DATA文の扱い

・ 数値と文字列の区別はなく、ダブルクォーテーション 「 " 」 で囲った場合は文字列と
 して扱われる
・ 数値と文字列の区別はREAD文の型によって区別される
・ リテラルの中に計算式を記述して、それを解釈させることはできない

…ってとこかw

181名無しさん:2025/06/05(木) 11:01:34
こう、今さら分かってるようで分かってなかったBASIC、みたいなw

182名無しさん:2025/06/05(木) 11:02:14
補足 DATA文の扱い

・ 数値と文字列の区別はなく、ダブルクォーテーション 「 " 」 で囲った場合は文字列と
 して扱われる
・ 数値と文字列の区別はREAD文の型によって区別される
・ リテラルの中に計算式を記述して、それを解釈させることはできない

・ 数値と文字列の区別をするために、ダブルクォーテーション 「 " 」 を意識的に使うこと
 を推奨

…ってとこかw

183名無しさん:2025/06/05(木) 11:02:46
> リテラルの中に計算式を記述して、それを解釈させることはできない

ということは、VAL文も?w

184名無しさん:2025/06/05(木) 11:03:04
試してみたところ、計算式は解釈できないようでw

185名無しさん:2025/06/05(木) 11:03:23
補足 DATA文の扱い

・ 数値と文字列の区別はなく、ダブルクォーテーション 「 " 」 で囲った場合は文字列と
 して扱われる
・ 数値と文字列の区別はREAD文の型によって区別される
・ リテラルの中に計算式を記述して、それを解釈させることはできない
・ VAL関数でもリテラルの中に計算式を記述して、それを解釈させることはできない

・ 数値と文字列の区別をするために、ダブルクォーテーション 「 " 」 を意識的に使うこと
 を推奨

…ってとこかw

186名無しさん:2025/06/05(木) 11:03:40
怪しさ爆発不思議ワールドみたいなwwwwwwwww

187名無しさん:2025/06/05(木) 11:04:03
QB64PE v4.0.0のヘルプファイルを参考までにw

> DATA                  ◆ Last updated: 12-14-2024, at 02:23:06
>
> DATAステートメントは、カンマで区切られた固定プログラム情報の行を作成します。
> DATAは、後で実行時にプログラムによって読み取ることができます。
>
> 構文:
> =====
> | DATA [値1、値2、...]
>
> 説明:
> =====
>
> ◆ DATAは、すべてのデータフィールド行の先頭で使用され、後続の値はカンマで区切ら
>   れます。
>
> ◆ 値は、任意のリテラルSTRINGまたは数値型にすることができます。変数は使用できま
>   せん。
>
> ◆ DATAフィールドは、RESTOREの行ラベルの有無にかかわらず、メインプログラムコード
>   本体に連続して配置して読み取ることができます。
>
> ◆ DATAは、メインプログラムコードの後に配置するのが最善です。
>  ◆ QB64 DATAは、SUBまたはFUNCTIONプロシージャ内に配置できます。
>
> ◆ DATAにラベルが付いていないか、RESTORE呼び出しでラベルが指定されていない場合、
>   RESTOREは最初のデータフィールドのみを読み取ります。
>
> ◆ 複数のDATAフィールドを使用する場合は、各データフィールドに行ラベルを付けて、
>   RESTORE行ラベルを使用して複数の読み取りで各データポインタをリセットできるよう
>   にします。
>
> ◆ QBasicのカンマ区切りは柔軟性があり、列の配置を作成できました。QB64では、
>   カンマ間のスペースが削除されます。
>
> ◆ 末尾にスペースがあるSTRING DATA値、QBasicキーワード、およびカンマ文字を含む値
>   は、引用符で囲む必要があります。
>
> ◆ DATAフィールドはプログラマのみが作成でき、ユーザーが変更したり、失ったりする
>   ことはできません。
>
> ◆ データ行の後のコメントには、コメントの前にコロンが必要です。
>
> ◆ READステートメントが最後のデータ値を超えて読み取ろうとすると、「データ不足」
>   エラーが発生します。必要に応じて、データ終了マーカーを使用します。
>
> ◆ DATAフィールドはSUBまたはFUNCTIONプロシージャの後に置くことができますが、
>   行ラベルは使用できません。

188名無しさん:2025/06/05(木) 11:05:35
そんなところでw

189名無しさん:2025/06/05(木) 11:05:54
> ◆ 末尾にスペースがあるSTRING DATA値、QBasicキーワード、およびカンマ文字を含む値
>   は、引用符で囲む必要があります。

予約語を含むとアウトなのかw

190名無しさん:2025/06/05(木) 11:06:15
補足 DATA文の扱い

・ 数値と文字列の区別はなく、ダブルクォーテーション 「 " 」 で囲った場合は文字列と
 して扱われる
・ 数値と文字列の区別はREAD文の型によって区別される
・ リテラルの中に計算式を記述して、それを解釈させることはできない
・ リテラルの中に予約語を含める場合は、ダブルクォーテーション 「 " 」 で囲む *追加w
・ VAL関数でもリテラルの中に計算式を記述して、それを解釈させることはできない

・ 数値と文字列の区別をするために、ダブルクォーテーション 「 " 」 を意識的に使うこと
 を推奨

…ってとこかw

191名無しさん:2025/06/05(木) 11:06:41
じゃあ、リテラル文字列の中にダブルクォーテーションを含めることはできる?

192名無しさん:2025/06/05(木) 11:06:53
結論から言うとできないということでw

193名無しさん:2025/06/05(木) 11:07:12
QB64と99BASICは内部動作が異なるので…

194名無しさん:2025/06/05(木) 11:07:36
補足 DATA文の扱い

・ 数値と文字列の区別はなく、ダブルクォーテーション 「 " 」 で囲った場合は文字列と
 して扱われる
・ 数値と文字列の区別はREAD文の型によって区別される
・ VAL関数でもリテラルの中に計算式を記述して、それを解釈させることはできない

・ リテラルの中に計算式を記述して、それを解釈させることはできない
・ リテラルの中に予約語を含める場合は、ダブルクォーテーション 「 " 」 で囲む
・ リテラル文字列の中にダブルクォーテーション 「 " 」 を含めることはできるものの、
 先頭1文字にダミーを使って、プログラム中で削除する方法はお勧めしない
 ・ 99BASICではダブルクォーテーション 「 " 」 を含めても無視される

・ 数値と文字列の区別をするために、ダブルクォーテーション 「 " 」 を意識的に使うこと
 を推奨

…ってとこかw

195名無しさん:2025/06/05(木) 11:08:24
各々試してみれば分かるのでw

196名無しさん:2025/06/05(木) 11:08:53
こう、構文解析が怪しいところは使わないw

197名無しさん:2025/06/05(木) 11:09:09
んでゲーム屋小僧、コード変換はどうするの?w

198名無しさん:2025/06/05(木) 11:35:55
2バイト分のインデックスを持ってそのまま割り当てるのが速いかw

199名無しさん:2025/06/05(木) 11:36:08
128KBムダになるけどな、プログラム中で検索するのはさらにムダということでw

200名無しさん:2025/06/05(木) 11:36:20
半角と全角はどうやって区別するの?w

201名無しさん:2025/06/05(木) 11:36:51
インデックスの2バイト目が0なら半角扱いということでw


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板