5: 2009-11-17 (火) 12:08:42 [4] | 現: 2024-01-08 (月) 12:58:42 k-tan[5] [6] | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | * ぐいぐい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[] = { | ||
Line 14: | Line 15: | ||
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() | ||
{ | { | ||
Line 48: | Line 49: | ||
>efg01 ex0012.g01 n:100 | >efg01 ex0012.g01 n:100 | ||
5050 | 5050 | ||
+ | |||
>efg01 ex0012.g01 n:1000 | >efg01 ex0012.g01 n:1000 | ||
500500 | 500500 | ||
Line 67: | Line 68: | ||
-じゃあ次は引数を二つ使いましょうかね。ex0013.cです。 | -じゃあ次は引数を二つ使いましょうかね。ex0013.cです。 | ||
#include <guigui01.h> | #include <guigui01.h> | ||
+ | |||
unsigned char cmdusage[] = { | unsigned char cmdusage[] = { | ||
0x86, 0x55, | 0x86, 0x55, | ||
Line 74: | Line 75: | ||
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() | ||
{ | { | ||
Line 109: | Line 110: | ||
-ということで省略可能な引数の説明です。ex0014.cです。 | -ということで省略可能な引数の説明です。ex0014.cです。 | ||
#include <guigui01.h> | #include <guigui01.h> | ||
+ | |||
unsigned char cmdusage[] = { | unsigned char cmdusage[] = { | ||
0x86, 0x55, | 0x86, 0x55, | ||
Line 116: | Line 117: | ||
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() | ||
{ | { | ||
Line 144: | Line 145: | ||
>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 | ||
Line 153: | Line 154: | ||
-さてそろそろ足し算にも飽きたので、別のことをやろうと思います。ex0015.cですね。 | -さてそろそろ足し算にも飽きたので、別のことをやろうと思います。ex0015.cですね。 | ||
#include <guigui01.h> | #include <guigui01.h> | ||
+ | |||
unsigned char cmdusage[] = { | unsigned char cmdusage[] = { | ||
0x86, 0x55, | 0x86, 0x55, | ||
Line 160: | Line 161: | ||
0x40 | 0x40 | ||
}; | }; | ||
+ | |||
void G01Main() | void G01Main() | ||
{ | { | ||
Line 179: | Line 180: | ||
>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 | ||
Line 192: | Line 193: | ||
-このページもすっかり長くなったので最後です。ex0016.cです。 | -このページもすっかり長くなったので最後です。ex0016.cです。 | ||
#include <guigui01.h> | #include <guigui01.h> | ||
+ | |||
unsigned char cmdusage[] = { | unsigned char cmdusage[] = { | ||
0x86, 0x5c, 0, /* ここが変わった! */ | 0x86, 0x5c, 0, /* ここが変わった! */ | ||
Line 199: | Line 200: | ||
0x40 | 0x40 | ||
}; | }; | ||
+ | |||
void G01Main() | void G01Main() | ||
{ | { | ||
Line 212: | Line 213: | ||
-システムは、コロンを含まない引数を見つけると、まだ指定されていない引数に当てはめようとします。しかし 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}; |
(This host) = http://osask.net