Archive

Archive for the ‘プログラム’ Category

dat が取得できた。

12 月 16th, 2009

なんとか、 subject.txt から スレッドキーを取り出して、dat をダウンロードさせることに成功。
大きな進歩だ。

int main (void) {

        struct foo bar;
        foo(&bar);

        return 0;

}

void foo (struct foo *bar) {
        baz(&*bar);
}

void baz (struct foo *bar) {
}

こんなんで良いのかな…?

dat落ち, プログラム, 備忘録

GET /うんたらかんたら

12 月 5th, 2009

TCP/IP の入門書を読み始めて、何かを C言語化しようと愚策中。
いきなり目標を高くすると、すごい勢いで壁にぶつかって砕けるので、
あんなものや、こんなものを取ってくるものを作成。

debug.txt

というか、未だに C言語は未知の世界なんですが…。

dat落ち, プログラム, 備忘録

pthread なメモ

12 月 3rd, 2009
#include <pthread.h>

//スレッドの作成
pthread_create(pthread_t *thread, const pthread_arrt_t *attr,
 void *(start_routine)(void *), void *arg);

//スレッドの待機
pthread_join(pthread_t thread, void **thread_return);

gcc を使う場合、「 -lpthread 」でリンクするべし

gcc hoge.c -lpthread

dat落ち, プログラム, 備忘録

aacgain で音量の調節

10 月 15th, 2009

放送そのままの音量だとかなり小さい音量なので、 TvTest で見るときも基本的に
音量増幅 x2 で再生しています。

アンプ通せば良いんですけど、警告音とかが突然大音量で流れるのは心臓に悪いので、
通常利用優先ですね。

エンコード後も、そのままでは音量が小さいので、 AAC な音声を調節するツール
aacgain を使って音量を調節してみました。

aacgain のオプションは、以下のようにしました。

aacgain /g 5.0 /t

3dB 違うと、倍の音量になるのですが、倍でも少し小さいので、 5dB に、
一応、テンポラリファイル作る設定にしました。

ついでにドロップするだけで 5dB 上げるバッチファイルも作ってみました。
[DL] aacgain

同じフォルダに aacgain.exe を入れておくと使えます。

パソコン, プログラム, 備忘録

今日のメモ

8 月 13th, 2009

zlib.h を使用したら、リンキングオプションに -lz を追加する。

$ gcc -lz zlib_hoge.c

プログラム, 備忘録

今日の新発見

8 月 3rd, 2009
#include <stdio.h>
#include <stdlib.h>

int main (void) {

        FILE *fp;

        if ((fp = fopen("hogehoge.txt", "r")) == NULL) {
                printf("ファイルが開けないよ!");
        }

        return 0;

}

こんなことをやっていてファイルが開けない場合には fclose(fp) は要らないということ。

パソコン, プログラム, 備忘録

strpos と rtirm のメモ

7 月 30th, 2009
int strpos (char *str, char tar) {
       
        // 初期化
        int max = strlen(str);
        int cnt = 0;
        int flg;
       
        // ターゲットと同じか \0 まで繰り返す
        while (*str != tar && *str != \0) {
                str++;
                cnt++;
               
                // 文字数を超えたら break
                if (len < cnt)
                        break;
        }
       
        // ターゲットがあれば位置を返す
        if (*str == \0 || len < cnt) {
                return(-1);
        } else {
                return(cnt);
        }
       
}

char *rtrim (char *str) {
       
        // 改行コードの位置を取得
        int rpos = strpos(str, \n);
       
        // 改行コードの位置を \0 に置き換え
        if (rpos > -1)
                str[(rpos-1)] = \0;
       
        return(str);
       
}

まだまだ、 C はダメダメです。
ちなみに、 PHP の strpos は、指定文字が見つからない場合 0 を返してきますので、
型の判断を必要とする !== を使って

<?php

$str = "abcdefg";

if (strpos($str, "c") !== false) {
        print "str の中に c が見つかりました!";
} else {
        print "str の中に c が見つかりませんでした。";
}

と、してやる必要がありますね。

パソコン, プログラム, 備忘録

ファイルサイズに 512 加算される謎

6 月 12th, 2009

read.js では、スレッドのファイルサイズに対して 512 加算して表示しています。

前々から、この 512 は一体何なのだろう?と考えていたのですが、
今日、readc.cgi を修正するときに気がつきました。

ずばり、 kB 対策です。

スレッドの kB は、(ファイルサイズ + 512) / 1024 で計算され、
小数点以下は round で四捨五入されるのです。

このとき、スレッドのファイルサイズが 511 だと 1024 で割った際に
0.5 を切ってしまい、 0kB と表示されてしまうのです。
これを防ぐために、あらかじめ 512 を加算し計算しているのではないかと。

大したことではないのですが、何となくスッキリしました。

ということで、容量表示には 512 を加算しましょう運動開始。

dat落ち, ネット, プログラム, 備忘録

プログラムが書けるようになるには?

5 月 16th, 2009

ハードディスクがギリギリになったのは、ちょっと理由があって、
2ちゃんねる(N.T.Technology)の有料サービス● のお試し版が株式会社ゼロ運営のゲーム
ニダークエスト2で貰えたため、それを使って過去ログを集めてました。

ざっと、現在までにニュース速報VIPやPCゲーム板など数十万スレッドが収集でき、
当分、読む物には困りそうもありません。

# 前にもこんな事書いた気がする。

file_edit

これが勉強がてらC言語で書いたディレクトリリストと datファイルの先頭4文字を判断するプログラム。
CodeGearのサイトにあったリファレンスを見つつ作ってみたんだけども、意外と簡単に動くものです。

こうやって少しづつ作っていくことで、段々と作れる物が増えて行ければいいなぁ。
PHPは、関数が豊富なのと、実用的というか、直ぐ使えるような関数が一杯なので、
それと較べると、C言語は結構しんどいです。

「PHPポケットリファレンス」みたいな本がC言語にも有ればいいのになぁ。
「プログラミング言語C」の第2版は読んでみましたが、結構大変。

構造体とかが使えるようになれば、また一段と作れる物が増えるんだろうなぁ。

dat落ち, プログラム, 備忘録

行数のカウント

3 月 24th, 2009

用途が用途だけに行数をカウントする処理を結構書いたりするのですが、
今まで file 関数で配列に入れて count 関数で取得という方法を主に使っていたんですよね。

最近になって、クローラーの改良時に実は foepn も結構早いんじゃね?
ファイルアクセスも減るんじゃね?という感じでベンチマークを取ってみました。

まずは、 file 関数を使った例。count も sizeof  もエイリアスなので、どちらでもOK。

$buf = file(”hogehoge.dat”);  //1001行のファイル
$count1 = count($buf);
unset($buf);

これは、1000回ループで 4.653011 秒という結果になりました。
一方 fopen を使ってカウントする例。

$fp = fopen(”hogehoge.dat”, “r”);  //1001行のファイル
for ($count2=0;!feof($fp),fgets($fp);$count2++);
fclose($fp);

こちらは、 3.800635 秒とコンマ7程度早くなりました。

しかし、結局1000回実行してやっとコンマ7という結果でした。
早いには変わりないと思いますが…、まぁこんなもんなのかなぁ。

サーバー, プログラム, 備忘録