5: 2009-11-17 (火) 12:08:42 |
現: 2024-01-08 (月) 12:58:42 k-tan |
- | * ぐいぐい01に関するメモ-25 | + | TITLE:x |
| + | * ぐいぐい01に関するメモ-25 [#d736c69f] |
| -(by [[K]], 2009.01.12) | | -(by [[K]], 2009.01.12) |
| -メモのうち重要な部分をそのうちまとめてまともなページを作る | | -メモのうち重要な部分をそのうちまとめてまともなページを作る |
- | *** (37) GOで「ぐいぐい01」アプリを作る(3) | + | *** (37) GOで「ぐいぐい01」アプリを作る(3) [#i7a3cf03] |
| -[[GUIGUI01/memo24]]の続きです。仕様変更ももうそんなにはないと思うので、書いても問題はないかなと。 | | -[[GUIGUI01/memo24]]の続きです。仕様変更ももうそんなにはないと思うので、書いても問題はないかなと。 |
| ---- | | ---- |
| -ex0011では、0から100までの和をやりました。でも、これを1000までの和に変えようとしたら、そのたびにソースを変更してmakeしなおさなければいけません。これはかっこよくないです。そうじゃなくて、コマンドラインから指定したいですよね。ということで、このページはコマンドライン特集です。ちなみにこのページまでの知識だけで、calendarは作れます。つまりアイデア次第で、この程度のAPIだけでも、役立つものは作れるのです。ということでex0012.cを。 | | -ex0011では、0から100までの和をやりました。でも、これを1000までの和に変えようとしたら、そのたびにソースを変更してmakeしなおさなければいけません。これはかっこよくないです。そうじゃなくて、コマンドラインから指定したいですよね。ということで、このページはコマンドライン特集です。ちなみにこのページまでの知識だけで、calendarは作れます。つまりアイデア次第で、この程度のAPIだけでも、役立つものは作れるのです。ということでex0012.cを。 |
| #include <guigui01.h> | | #include <guigui01.h> |
| + | |
| /* これは関数の外で宣言するのが望ましい */ | | /* これは関数の外で宣言するのが望ましい */ |
| unsigned char cmdusage[] = { | | unsigned char cmdusage[] = { |
| 0x40 /* 最後のこれも決まり文句なので変更しない */ | | 0x40 /* 最後のこれも決まり文句なので変更しない */ |
| }; | | }; |
| + | |
| void setdec(char *s, int i, int n) | | void setdec(char *s, int i, int n) |
| { | | { |
| (ex0010.cと同じ内容) | | (ex0010.cと同じ内容) |
| } | | } |
| + | |
| char *skip_space(char *s) | | char *skip_space(char *s) |
| { | | { |
| (ex0010.cと同じ内容) | | (ex0010.cと同じ内容) |
| } | | } |
| + | |
| void G01Main() | | void G01Main() |
| { | | { |
| >efg01 ex0012.g01 n:100 | | >efg01 ex0012.g01 n:100 |
| 5050 | | 5050 |
| + | |
| >efg01 ex0012.g01 n:1000 | | >efg01 ex0012.g01 n:1000 |
| 500500 | | 500500 |
| -じゃあ次は引数を二つ使いましょうかね。ex0013.cです。 | | -じゃあ次は引数を二つ使いましょうかね。ex0013.cです。 |
| #include <guigui01.h> | | #include <guigui01.h> |
| + | |
| unsigned char cmdusage[] = { | | unsigned char cmdusage[] = { |
| 0x86, 0x55, | | 0x86, 0x55, |
| 0x40 | | 0x40 |
| }; | | }; |
| + | |
| void setdec(char *s, int i, int n) | | void setdec(char *s, int i, int n) |
| { | | { |
| (ex0010.cと同じ内容) | | (ex0010.cと同じ内容) |
| } | | } |
| + | |
| char *skip_space(char *s) | | char *skip_space(char *s) |
| { | | { |
| (ex0010.cと同じ内容) | | (ex0010.cと同じ内容) |
| } | | } |
| + | |
| void G01Main() | | void G01Main() |
| { | | { |
| -ということで省略可能な引数の説明です。ex0014.cです。 | | -ということで省略可能な引数の説明です。ex0014.cです。 |
| #include <guigui01.h> | | #include <guigui01.h> |
| + | |
| unsigned char cmdusage[] = { | | unsigned char cmdusage[] = { |
| 0x86, 0x55, | | 0x86, 0x55, |
| 0x40 | | 0x40 |
| }; | | }; |
| + | |
| void setdec(char *s, int i, int n) | | void setdec(char *s, int i, int n) |
| { | | { |
| (ex0010.cと同じ内容) | | (ex0010.cと同じ内容) |
| } | | } |
| + | |
| char *skip_space(char *s) | | char *skip_space(char *s) |
| { | | { |
| (ex0010.cと同じ内容) | | (ex0010.cと同じ内容) |
| } | | } |
| + | |
| void G01Main() | | void G01Main() |
| { | | { |
| >efg01 ex0014.g01 | | >efg01 ex0014.g01 |
| 5050 | | 5050 |
| + | |
| >efg01 ex0014.g01 n:1000 | | >efg01 ex0014.g01 n:1000 |
| 500500 | | 500500 |
| + | |
| >efg01 ex0014.g01 i:98 | | >efg01 ex0014.g01 i:98 |
| 297 | | 297 |
| -さてそろそろ足し算にも飽きたので、別のことをやろうと思います。ex0015.cですね。 | | -さてそろそろ足し算にも飽きたので、別のことをやろうと思います。ex0015.cですね。 |
| #include <guigui01.h> | | #include <guigui01.h> |
| + | |
| unsigned char cmdusage[] = { | | unsigned char cmdusage[] = { |
| 0x86, 0x55, | | 0x86, 0x55, |
| 0x40 | | 0x40 |
| }; | | }; |
| + | |
| void G01Main() | | void G01Main() |
| { | | { |
| >efg01 ex0015.g01 s:abc | | >efg01 ex0015.g01 s:abc |
| abcabcabcabcabcabcabcabcabcabc | | abcabcabcabcabcabcabcabcabcabc |
| + | |
| >efg01 ex0015.g01 s:12 n:3 | | >efg01 ex0015.g01 s:12 n:3 |
| 121212 | | 121212 |
| + | |
| >efg01 ex0015.g01 s:1+2 n:1+2 | | >efg01 ex0015.g01 s:1+2 n:1+2 |
| 1+21+21+2 | | 1+21+21+2 |
| -このページもすっかり長くなったので最後です。ex0016.cです。 | | -このページもすっかり長くなったので最後です。ex0016.cです。 |
| #include <guigui01.h> | | #include <guigui01.h> |
| + | |
| unsigned char cmdusage[] = { | | unsigned char cmdusage[] = { |
| 0x86, 0x5c, 0, /* ここが変わった! */ | | 0x86, 0x5c, 0, /* ここが変わった! */ |
| 0x40 | | 0x40 |
| }; | | }; |
| + | |
| void G01Main() | | void G01Main() |
| { | | { |
| -システムは、コロンを含まない引数を見つけると、まだ指定されていない引数に当てはめようとします。しかし 0x55, を指定しているときは、その機能があえて無効になっていました。 0x5c, ?, を指定すると、?で指定した引数から、当てはめようとするようになります。これにより、引数の順序を覚えている場合は、いちいちs:やn:を書かなくてよくなるわけです(もちろんいちいち書いてもいい)。 | | -システムは、コロンを含まない引数を見つけると、まだ指定されていない引数に当てはめようとします。しかし 0x55, を指定しているときは、その機能があえて無効になっていました。 0x5c, ?, を指定すると、?で指定した引数から、当てはめようとするようになります。これにより、引数の順序を覚えている場合は、いちいちs:やn:を書かなくてよくなるわけです(もちろんいちいち書いてもいい)。 |
| | | |
- | * こめんと欄 | + | * こめんと欄 [#oab3e935] |
| - これくらい分かっていればcalendarを作ることもできるので、誰かが僕以外の作者では初の「ぐいぐい01」アプリを作ってくれるかなあ?まあ問題はアイデアですよね。これだけのAPIで何をやるかって言うのは、なかなかハードルが高いでしょう。 -- [[K]] &new{2009-01-12 (月) 15:22:44}; | | - これくらい分かっていればcalendarを作ることもできるので、誰かが僕以外の作者では初の「ぐいぐい01」アプリを作ってくれるかなあ?まあ問題はアイデアですよね。これだけのAPIで何をやるかって言うのは、なかなかハードルが高いでしょう。 -- [[K]] &new{2009-01-12 (月) 15:22:44}; |
| - ちなみに[[K]]作のカレンダーは[[GUIGUI01/memo22]]の2009.01.11のところにあります。 -- ''K'' &new{2009-01-12 (月) 21:08:55}; | | - ちなみに[[K]]作のカレンダーは[[GUIGUI01/memo22]]の2009.01.11のところにあります。 -- ''K'' &new{2009-01-12 (月) 21:08:55}; |