68user's page 掲示板

Prev< No. 3495〜3500> Next  [最新発言に戻る] [過去ログ一覧]
No. 3495 # みの 2003/12/26 (金) 12:35:38
>3492
すみません
カンマが余分でした。
ありがとうございます。

No. 3496 # ブラウン 2003/12/26 (金) 12:47:15
HP-UXでのawkについて質問なのですが、
awkを使用してファイルのENDを判断できるのですか。

例えば、
cat date.txt
aaa
aaa bbb
aaa bbb ccc

111
111 222
111 222 3333

とあった場合、

------------------------
#/bin/sh

awk '
function sub() {
}
        getline ;
        処理省略
{
        if (NF == 0) next ;
        if (NF >= 1) sub() ;
        ※
}' data.txt
----------------------

※の場所でファイルのENDか判断したいのですができるのでしょうか。

No. 3497 # zsh 2003/12/29 (月) 09:51:28
>>3496 ブラウン
ファイルのENDというのが最後の行の事なのか
EOFの事なのか不明ですが、最終行であれば以下のように。
ちなみに環境はSolarisです。
------
#!/bin/sh

max_line=`wc -l $1 | awk '{ print $1 }'`
awk '{ print ;
              if ( NR == max_line ) printf "END\n" }' max_line=$max_line $1
------
行数を取得する為だけにawk使うのはどうかと思いますが。

No. 3498 # ポッしブル 2003/12/29 (月) 22:27:36
はじめましてです。C言語を勉強しているものです。
質問なんですが、ネットワークプログラミングで
チャットを使ったゲームみたいなものを作りたいなと思っておりまして、
具体的にチャットではサーバーがクライアント全員にメッセージを送る
形になりますが、このゲームではクライアントが
メッセージを送る人を選ぶことができるようにしたいのです。
たとえば会話しているのは5人いるけどそのうち3人に送ろうという
感じです。クライアント側で、全ユーザーの名前が表示され
その中から送る人を選ぶみたいなかんじのゲームなんですが。

チャットにおいて選んだユーザーにだけメッセージを送るというのは
一体どうすれば可能なのですか?

No. 3499 # ブラウン 2003/12/30 (火) 10:37:54
>>3497 zsh
ありがとうございます。

説明不足ですみません。
ファイルのENDというのは、最終行ではなく、EOFのことです。
また、行数を取得するためにawkを使用していません。
awkを使用して、ファイルから1レコードづつよみこみ条件
毎に処理を行い、EOFだったら終了と考えていたのですが。

No. 3500 # zsh 2003/12/31 (水) 13:11:47
>>3499 ブラウン
取得したいのがEOFだとすると
getlineの戻り値見るくらいしか思いつきません。
普通にENDに記述じゃダメですか?
或いは行数+フィールド番号でファイルの最後をチェックするとか。

>また、行数を取得するためにawkを使用していません。
すみません、行数を取得するためだけにawkを使うのはどうか
というのは自分に対して言ったものです。

Prev< No. 3495〜3500> Next  [最新発言に戻る] [過去ログ一覧]