パピーでプログラミングしてみる(初級編)

パピーを名犬にするための技、テクニック

モデレータ: 暇人, YoN, nyu

新谷
記事: 934
登録日時: 08/10/09(木) 18:52
お住まい: 大阪

cut コマンド (C言語 簡易) その2

投稿記事 by 新谷 »

短くなりました。なんかC言語入門の本にでてきそうではありませんか.....そんなこともないか。

コード: 全て選択

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main (int argc,char *argv[])
{
	if (argc != 4) {printf("Usage: cut-simle [区切り文字] [フィールド番号] [文字列] \n\n");}

	int cont,i;

	char buff1[10],buff2[10],buff3[256];
	char *pb1,*pb2,*pb3;

	pb1 = buff1;
	strcpy(pb1,argv[1]);

	pb2 = buff2;
		strcpy(pb2,argv[2]);
	i = (buff2[0] - 48);		//文字'0'の文字コードが48なので

	pb3 = buff3;
	strcpy(pb3,argv[3]);

	cont = 1;
	 while (i > cont) {
		pb3 = strstr(pb3,buff1);
		++pb3;
		++cont;
	}
		// 例: #cut-simple A 2 xxxAyyyyAzzzzA    ならばこの時点で yyyyAzzzzA までソートされている
	while(*pb3 != *pb1 ){
		printf("%c",*pb3);
		++pb3;
	}

printf("\n");
return 0;
}

ペットパッケージ: cut-simple-0.0.2.pet http://groups.google.co.jp/group/koropu ... cut-simple

C言語では

コード: 全て選択

i = i + 1;
みたい書けますが、ポインタ同士をstrstr()関数で比較する場合にも

コード: 全て選択

pb3 = strstr(pb3,buff1);
って書けるんですね。難しく考え過ぎてた。

あとは文字型を整数型になおす関数を覚えないといかんな....。

あと、ここにはでてきませんが、C言語では

コード: 全て選択

do{
繰り返し処理
} while (条件式);
みたいにdoを先頭に書けるんですね。便利かもしれない。シェルスクリプトでは見たことないな。
アバター
みのむし
記事: 1164
登録日時: 08/09/10(水) 13:56
お住まい: 福岡市中央区草香江1-2-40-101号
連絡する:

Re: パピーでプログラミングしてみる(初級編)

投稿記事 by みのむし »

>停止ボタンで再生停止、ウィンドウの右上「x」ボタンで再生停止&アプリ終了、という感じです。

返信ありがとうございます。

>#setvol 0 80 80

わざわざ恐れ入ります。
早速、試してみます。
みのむし
Notebook PC HP G62
CPU: Intel(R) Core(TM)i5 M450 @ 2.40GHz
MEM: 4GB
Puppy Linux Quickset 5.1.1 JP
PC内蔵無線LANデバイス RTL8171(r8192se_pci)
アバター
みのむし
記事: 1164
登録日時: 08/09/10(水) 13:56
お住まい: 福岡市中央区草香江1-2-40-101号
連絡する:

Re: パピーでプログラミングしてみる(初級編)

投稿記事 by みのむし »

>ペットパッケージはみのむしさんのサイトにアップさせて頂きました<(_ _)>
>madplay-radio-0.5.pet http://www.mland.jp/pub/Linux/Puppy/use ... /file/431/

新谷さん、上記のPETパッケージを Quirky std 1.2(2.6.33.2, 120sと呼ぶ) にインストールして試聴出来ています。
最初は音がまったく出なかったので、音が出ている 431JPの環境で調べてみた所
alsamixer の挙動が違っていました。
  • 音が出る 431JP ... Speaker ボリュームが無い
  • 音が出ない 120s ... Speaker ボリュームがあるが、off になっていてonに出来ない。
そこで、120s のメニュー|マルチメディア|Retrovol sound mixer でSpeakerボリュームをonにしました。
但し、ボリュームは出ていないので設定出来ませんでした。
これで、120s 上のMadplay Radio Jpop を聞けました。
なお、Quirky retro 1.2(2.6.30.5)では 431JPと同様に何もしないでも音が出ました。

私のサウンドカード:
 ノートPC EPSON Endeavor NA702内蔵サウンドデバイス

コード: 全て選択

# cd /proc/asound
# cat cards
 0 [Intel          ]: HDA-Intel - HDA Intel
                      HDA Intel at 0xfebfc000 irq 27
# cd card0
# ls
codec#0  codec#1  id  oss_mixer  pcm0c  pcm0p  pcm1p  pcm6c  pcm6p
サウンドカードドライバモジュール:

コード: 全て選択

# lsmod|grep hda|sort
snd                    31440  15 snd_pcm_oss,snd_seq_oss,snd_seq,snd_seq_device,snd_mixer_oss,snd_hda_codec_si3054,snd_hda_codec_realtek,snd_hda_intel,snd_hda_codec,snd_pcm,snd_timer
snd_hda_codec          38924  3 snd_hda_codec_si3054,snd_hda_codec_realtek,snd_hda_intel
snd_hda_codec_realtek   166094  1 
snd_hda_codec_si3054     2326  1 
snd_hda_intel          15190  4 
snd_page_alloc          4733  2 snd_hda_intel,snd_pcm
snd_pcm                46529  6 snd_pcm_oss,snd_hda_codec_si3054,snd_hda_intel,snd_hda_codec
# lsmod|grep oss|sort
snd                    31440  15 snd_pcm_oss,snd_seq_oss,snd_seq,snd_seq_device,snd_mixer_oss,snd_hda_codec_si3054,snd_hda_codec_realtek,snd_hda_intel,snd_hda_codec,snd_pcm,snd_timer
snd_mixer_oss          10106  1 snd_pcm_oss
snd_pcm                46529  6 snd_pcm_oss,snd_hda_codec_si3054,snd_hda_intel,snd_hda_codec
snd_pcm_oss            27859  1 
snd_seq                33074  5 snd_seq_dummy,snd_seq_oss,snd_seq_midi_event
snd_seq_device          3617  3 snd_seq_dummy,snd_seq_oss,snd_seq
snd_seq_midi_event      3584  1 snd_seq_oss
snd_seq_oss            19053  0 
(※431JPとほとんど同じです)
その他、設定した事
 これは効いているかどうか分かりません。

コード: 全て選択

# cd /etc
# geany modprobe.conf
----- ここから ----------
#alias snd-card-0 snd-hda-intel
#alias sound-slot-0 snd-hda-intel
#(↑設定を無効にする)
----- ここまで ----------
# mkdir modprobe.d
# modprobe.d
# geany sound.conf
----- ここから ----------
alias snd-card-0 snd-hda-intel
alias sound-slot-0 snd-hda-intel
options snd-hda-intel index=0 model=auto
#(↑「model=auto」がミソです)
----- ここまで ----------
みのむし
Notebook PC HP G62
CPU: Intel(R) Core(TM)i5 M450 @ 2.40GHz
MEM: 4GB
Puppy Linux Quickset 5.1.1 JP
PC内蔵無線LANデバイス RTL8171(r8192se_pci)
アバター
みのむし
記事: 1164
登録日時: 08/09/10(水) 13:56
お住まい: 福岡市中央区草香江1-2-40-101号
連絡する:

Re: パピーでプログラミングしてみる(初級編)

投稿記事 by みのむし »

>こんな感じになりました。シンプルといえばシンプル。

>hello-genie-gui.gs
>#valac --pkg gtk+-2.0 hello-genie-gui.gs

431JP上で実行した所

コード: 全て選択

# valac --pkg gtk+-2.0 hello-genie-gui.gs
hello-genie-gui.gs:2.4-2.6: error: syntax error, expected line end or semicolon but got identifier
   Gtk
   ^^^
Compilation failed: 1 error(s), 0 warning(s)
とエラーが出ました。

私は以下のように実行して、Genie のテストに成功しました。

コード: 全て選択

# geany hello.gs
----- ここから ----------
init
    print "Hello World"
----- ここまで ----------
# valac hello.gs
# ./hello
Hello World
以下もうまく行きました。

Vala GTK+ Examples

※結局、431JPでは、dev-431.sfs をインストールするだけで良さそうです。

Lucid Puppy 5.1 - Luci-204 で試してみた所、Newsが出来ませんでした。
gxine-0.5.9を探してインストールして...
xine-lib、xine-plgin、w32codecsもインストールしてみましたが、エラーを吐いてダメでした。
431JPやQuirkyは良いのですが、Lucid PuppyはNewsを試聴出来ないようです。
みのむし
Notebook PC HP G62
CPU: Intel(R) Core(TM)i5 M450 @ 2.40GHz
MEM: 4GB
Puppy Linux Quickset 5.1.1 JP
PC内蔵無線LANデバイス RTL8171(r8192se_pci)
返信する