68user's page 掲示板

Prev< No. 2661〜2679> Next  [最新発言に戻る] [過去ログ一覧]
No. 2661 # しなくろ 2002/04/28 (日) 01:38:21
大学でUNIXを勉強しているのですが…
ただ教授の命令どおりにコマンドを入力して実行しているだけで、
何をやってて何をするためにUNIXを勉強しているのか分かりません。

大体パソコンをかまうのにも慣れてない自分は、
「この〜〜〜を、〜〜〜して」  ※〜〜〜→聞きなれない英語
といわれ続けちんぷんかんぷんです。

どうしたら上手くUNIXを学べれるのでしょうか?
もしアホでも分かるお勧めの本とかあれば紹介していただきたいのですが…

No. 2662 # 68user 2002/04/28 (日) 12:20:59
>>2661 しなくろ
興味がなければ学ばない。でも単位を落とさないように暗記だけする。
ってのがいいんじゃないでしょうか。興味がわかないことを勉強しても
時間の浪費にしかならないと思います。

興味はあるけどわからないって場合は…どうしたもんでしょうかねぇ。

No. 2663 # ある厨 2002/04/29 (月) 23:15:47
Fixども。
設定完了しましたのでお礼まで。

No. 2664 # なは 2002/04/29 (月) 23:26:36
はじめまして。とても参考になります。

telnetのところでWindowsではtelnetでホームページはみれないのでしょうか?

No. 2665 # 68user 2002/05/02 (木) 00:06:53
>>2664 なは
> telnetのところでWindowsではtelnetでホームページはみれないのでしょうか?

http://x68000.startshop.co.jp/~68user/net/win-telnet.html では
どうでしょうか。

と言っても Windows 2000 の telnet.exe では設定方法が違う
んですけどね。

No. 2666 # a-jmj 2002/05/03 (金) 09:59:32
perlについてですが、無名のハッシュ又は配列のレファレンスに、配列要素を追加する方法を教えてください。ついでに配列の参照の仕方も教えもらえると有りがたいです。

以下のソースは変数を@line_0 .. 9までと変数を9個使っていますが、これを$line_{0} .. {9}と一つの変数にさせたいと思っています。

while (<IN>) {
  local($date) = (split /<>/)[0];
  push (@{'line_'.$date},$_);
}
foreach (0..9) {
  foreach $line (@{'line_'.$_}) {
    print $line;
  }
}

No. 2667 # 68user 2002/05/03 (金) 12:24:15
>>2666 a-jmj
ん〜、$line_{2} で 2 行目のデータが得られればいいのですか?
そのとき得たいデータは日付 ($date) と行全体?

No. 2668 # a-jmj 2002/05/03 (金) 13:20:04
説明不足ですいません。
1<>aaaa<>
1<>bbbb<>
2<>cccc<>
というデータがあったとしたら、
$line_{1}[0] = '1<>aaaa<>'
$line_{1}[1] = '1<>bbbb<>'
$line_{2}[0] = '2<>cccc<>'
といった風にしたいのですが、以下のソースではエラーが出てしまいます。
open(IN,"file");
while (<IN>) {
    local($date) = (split /<>/)[0];
    push (@line_{$date},$_);
}
colse(IN);
これをする目的は下のように全体のデータを何度も回転させたくないので、
データを分別しときたいのです。
open(IN,"file");
@lines = <IN>;
colse(IN);
foreach (0..9) {
  print $_;
  foreach $line (@lines) {
    my($i,$data) = split /<>/,$line;
    print $data if ($i == $_);
  }
}

無名のリファレンスを使いたい理由としては、@{'line_'.$date}といった感じの変数を使いたくないのと、効率を考えたらリファレンスが使えないことです。

No. 2669 # 68user 2002/05/03 (金) 17:19:29
>>2668 a-jmj
こんな感じでしょうか。

    open(IN,"file");
    while (<IN>){
        chomp;
        local($date) = (split /<>/)[0];
        push(@{$line_{$date}}, $_);
    }
    close(IN);
    
    foreach $date (sort keys %line_ ){
        foreach (@{$line_{$date}}){
            print "$_ ";
        }
        print "\n";
    }

実行結果:
    1<>aaaa<> 1<>bbbb<>
    2<>cccc<>

No. 2670 # a-jmj 2002/05/03 (金) 20:44:32
どうもありがとうございます。
ええそうです、求めていたのはこれです。
無名も普通のリファレンスみたいに使うのですね。
なかなかリファレンスを詳しく書いた資料がないものですね。
実際の運用には8桁の日付で、分別させているのですが、以前の方法でしたら、
use strict;を使おうにも変数名が不規則なうえ、指定してやらなければ成らな
い変数が膨大な数になってしまうことが問題でした。
その他に良い分別方法があったら教えていただけたら、幸いです。

No. 2671 # 68user 2002/05/03 (金) 23:30:27
>>2670 a-jmj
> その他に良い分別方法があったら教えていただけたら、幸いです。
データ構造を変えていいなら、各行に一意の番号を付けて
    $data{123}{DATE} = '20020101';
    $data{123}{NAME} = 'hoge';
    $data{123}{MAIL} = 'foo@bar';
などとするのが好みです。

データ構造を現行のままにするなら案の通り
    $data{20020101}[0] = '1<>aaaa<>'
とするのも悪くないでしょう。

あるいは最初に <> を解析しておいて
    $data{20020101}[1]->{NAME}
といった形でアクセスできるようにするという手もあります。以下サンプル。

        my %data;
        open(IN,"file");
        while (<IN>){
                chomp;
                my ($date,$name,$mail,$content) = split /<>/;
                my %hash;
                $hash{NAME}=$name;
                $hash{MAIL}=$mail;
                $hash{CONTENT}=$content;
                push(@{$data{$date}}, \%hash);
        }
        close(IN);

        foreach $date (sort keys %data ){
                print "$date: ";
                foreach my $ref_hash (@{$data{$date}}){
                      print "$ref_hash->{NAME} $ref_hash->{MAIL} $ref_hash->{CONTENT} ";
                }
                print "\n";
        }

        print "おまけ: $data{20020101}[1]->{NAME}\n";


    データファイルの内容:
        20020101<>名前1<>メールアドレス1<>発言内容1
        20020101<>名前2<>メールアドレス2<>発言内容2
        20030203<>名前3<>メールアドレス3<>発言内容3

    実行結果:
        20020101: 名前1 メールアドレス1 発言内容1 名前2 メールアドレス2 発言内容2
        20030203: 名前3 メールアドレス3 発言内容3
        おまけ: 発言内容2


ただし、perl でちょっと凝ったリファレンスを使い出すと、とてつもなく
ソースが汚くなるので、クラスを使いたくなるかもしれません。そして
クラスを使い出すと、perl の OO に嫌気がさして ruby を使い出すかも
しれません。

なので、ほどほどのところでやめておく方がいいのかも。

No. 2672 # Shino [URL] [E-mail] 2002/05/07 (火) 00:59:24
始めまして。C-CGI システム構築をHTMLのタグレベルで実現するツール
の紹介ページが shino.server-club,net/index.htm にあります。皆様の
御参考になればとCMまがいの書き込みを致しました。

No. 2673 # 名無しさん 2002/05/07 (火) 18:02:44
>>2672 Shino
こんなもので金が取れると思ってるの??

なんか最初からあやしげな臭いがプンプンしてたけど、やっぱり。。
http://shino.server-club.net/cgi-bin/DS.cgi?COMMAND=Html&HTML=../../../../../../../etc/passwd
注:Referer。

汚染チェックしてね。

No. 2674 # Shino [E-mail] 2002/05/07 (火) 23:47:36
名無しさん様、大変失礼を致しました。

No. 2675 # ふくし [E-mail] 2002/05/08 (水) 00:27:08
おひさしぶりですみません。質問です。
よく、インターネット(Web、メール)で
(いわゆる)半角カナを使ってはいけないといわれますが、
この理由が、
・インターネットは ASCII 以来、7ビットしか通さない伝送路が
    使われてきたので、7ビットコードを使うのが望ましい
・日本の場合 ISO-2022-JP が標準
・ISO-2022-JP は、4つの面に(いわゆる)半角カナ以外の
    コードが割り当てられている。
・つまり、ISO-2022-JP には半角カナが「ない」
・ないものは使ってはいけない
という風に覚えていましたが、
UNIX の mule や Windows の xyzzy で ISO-2022-JP を指定して
(いわゆる)半角カナを入れるときの、
「ESC)I がエスケープシーケンスで(いわゆる)半角カナ」
というコード系は、何に規定されているものなのでしょうか。
こんなの、ちょっと調べろよって話だと思うんですが、
調べ方が悪いのかこれだ、という情報に当りません、、。

No. 2676 # 68user 2002/05/08 (水) 01:05:41
>>2675 ふくし
> 「ESC)I がエスケープシーケンスで(いわゆる)半角カナ」
> というコード系は、何に規定されているものなのでしょうか。
何にっていうのは、どの規格で定められているかってことですよね。

http://www2d.biglobe.ne.jp/~msyk/charcode/jisx0201kana/ には
    JUNET方式のエンコーディング方式を素直に拡張すれば、この
    エンコーディング方式になる。
とありますが、何をどう素直に拡張すればこうなるのか (僕の知識
不足のため) 理解できません。

http://www.kanzaki.com/docs/jis-mail.html には
    RFC1468には記載されていませんが、定義からESC ( I が7ビットの
    カタカナを指示(designate)するエスケープシーケンスとなるので、
とありますが、どこをどう読めば ESC ( I が 7bit カタカナを指示する
ことになるのか これまた (僕の知識不足のため) 理解できません。

わかったら僕にも教えて下さい。

No. 2677 # 68user 2002/05/08 (水) 01:27:53
>>2675 ふくし
> よく、インターネット(Web、メール)で(いわゆる)半角カナを
> 使ってはいけないといわれますが、
おっと、見逃してた。ここで「web」を挙げているのは誤りです。

インターネット (≒ TCP/IP) は 8bit を通します。FTP も HTTP も
8bit through です。過去 7bit しか通さない実装が多かったのは
SMTP で、7bit しか通らないところに日本語を通そうという苦肉の
策が、後の ISO-2022-JP につながる JUNET コードです。

よって、web で半角カナ使用禁止という話はありません。もちろん web で
    Content-type: text/html; charset=ISO-2022-JP
としているならば半角カナは使えませんけれども。

ちなみに、個人的には半角カナは嫌いでしたが、2ch で AA を見てると、まぁ
半角カナもいいかなと思い始めていました。が、半角カナは EUC-JP と
Shift_JIS でバイト長が違うため、項目長を事前に決めておかなければ
ならない DB では何かとトラブルの元です。よって、やっぱり半角カナ
嫌いに戻ってしまいました。

No. 2678 # ふくし [E-mail] 2002/05/08 (水) 01:29:20
そっかー。68user さんもわからないと聞いて
少なくともつまんない質問ではなかったとわかって
なんかホッとしました(^o^)
マルチポストになりますが、別所で聞き、なにかわかったら
また書きます。ありがとうございます。
他の方も、なにかありましたらご教示ください。

No. 2679 # へにか [URL] 2002/05/08 (水) 08:16:13
>>2675 ふくし
>>2676 68user
お久しぶりです。
http://euc.jp/i18n/charcode.ja.html
によると、
>終端文字と文字集合の対応は登録制になっており、 ECMAという組織が登録簿を管理して います。
(略)
>・94文字集合
(略)
>I
> JIS X 0201カタカナ
>J
> JIS X 0201ローマ文字
とあります。
先にECMAが決めたのか、誰かが既に決めたのをECMAが登録したのかは、
わかりませんが。

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