perlの活用(データの記録)

上段:カテゴリ 中段:投稿日 下段:サブテーマ ブログナンバー:172  
     ネットワークトラブル (18)
01月15日(月)
配列の並べ替えからテーブルの並べ替えに
 連想配列のsortの方法はWebの各講座の中で説明されている。しかし実用ではExcelのようにテーブルの行単位にsortしなければならない。私は以下のような死亡データを新聞記事などから収集して毎日記録しているが、新聞記事だから日付が前後することがある。これを日付順に並べ替えるにはどうするか。その方法をここに記しておく。
  データファイル'file.dat'に以下の書式で記録されているとする。
1.30,山田芳雄,山田書店会長,老衰,自宅,妻,88
1.28,鈴木和夫,元K社社長,腎細胞がん,病院,妻,80
2.1,田中俊夫,被災者の会所属,肺炎,病院,妻,83
2.10,丸山まるお,小説家,大腸がん,病院,長男,77
2.8,トムアトム,歌手,膀胱がん,自宅,不明,84

 perlスクリプトはデータの読み込みから始まる。
#---------------------------------

open(IN,"<./file.dat");
@www = <IN>;
close (IN);
foreach $key(@www){
@w1=split(',',$key);#項目を配列に入れる
@w2=split('\.',$w1[0]);#日付を月と日に分ける
#日付を元日からの経過日数に変える
$w3=($w2[0]-1)*31+$w2[1];
$w4{$key}=$w3;#-----------①  次に説明
}

# 連想配列を数値(value)で昇順に並べ替える
@w5=sort{$w4{$a}<=>$w4{$b}} keys %w4;
#------------------------------------------

   ①の説明
連想配列%w4は次のように作成される
%w4=('1.30,山田芳雄,山田書店会長,老衰,自宅,妻,88'=>61,
'1.28,鈴木和夫,元K社社長,腎細胞がん,病院,妻,80'=>59,
'2.1,田中俊夫,被災者の会所属,肺炎,病院,妻,83'=>63,
'2.10,丸山まるお,小説家,大腸がん,病院,長男,77'=>72,
'2.8,トムアトム,歌手,膀胱がん,自宅,不明,84'=>70);

これを受けて,%w4をvalue の大きさで昇順に並べ変えると
keyがvalueと一緒に並べ変わる。

この後は配列@w5がkeyの集合になっているからそのままkey
を表示すれば日付順に次のように並んでいる。

1.28,鈴木和夫,元K社社長,腎細胞がん,病院,妻,80
1.30,山田芳雄,山田書店会長,老衰,自宅,妻,88
2.1,田中俊夫,被災者の会所属,肺炎,病院,妻,83
2.8,トムアトム,歌手,膀胱がん,自宅,不明,84
2.10,丸山まるお,小説家,大腸がん,病院,長男,77

昔取った杵柄perlを活用して,現在(2024年06月)は,

                         サッカーチーム   FC岐阜

をより深く知るための動画ならぬ動具を作って楽しんでます。

公開ページは,http://cs-gifu.que.jp/  だ。一度訪ねてくれ。
                   コンテンツ作成同好会ホームページ

 

コメント ( 0 ) | Trackback ( 0 )

ASUS TAICHI21の定年

上段:カテゴリ 中段:投稿日 下段:サブテーマ ブログナンバー: 171 ?
     ネットワークトラブル (17)
08月11日(月)
複雑な機械は故障する

 代引きで届いたパソコンの梱包を開いたのが今年(2013)4月14日だった。そして,私の接する人たち20人に見てもらって「いいね」の評価を受けて4ヶ月,8月9日を最後に[売り」であるタブレット機能が壊れて並みのパソコンに戻ってしまった。その顛末を記しておきたい。


(1) パソコンの特徴は軽い。薄い。速い。美しい。そして,最大の特徴は蓋が両面液晶ディスプレーで作られていることだ。
(2) はじめの3つは文句なしであるが,”美しい”には問題あり。解像度1920×1080は写真や動画には向いているが,テキスト画面には文字が細か過ぎて不向きである。どのソフトもメニューバーに書かれてる文字が読めない。解像度の変更を1024×768にすると横長のへっちゃけた文字になってしまう。また,変更を保存しても再起動すると元の解像度に戻っている。
(3) 両面が液晶ディスプレーであることのメリットはある。2,3人を相手にプレゼンテーションをするにはかなり有効だ。両面が同じであるから対面説明ができる。相手側はタブレット対応だから指で触れて好きなようにスクロールもできる。
(4) 自分と相手の画面を別にする機能も使える。見せるウインドウをマウスで相手側の画面にドラッグする。自分の方は説明用の原稿を開いていてもいい。また,自分の方は楽屋として使い,見せていいものを選択して相手側に運べばよい。
(5) さて,この特徴が使えなくなった状況は,①taichiキーを押して使う液晶の選択画面が出るが,メニューが無効になっている。②通常画面で蓋を閉じるとタブレット機能が働くはずの画面が真っ暗でウインドウズキーのランプも消えてしまう。蓋を開ければ元の画面に戻ることは確かだ。③セカンドスクリーンを選択する画面でボタンを押し,両面が同じになるボタンを押すと,手前の画面は解像度が変わり画面の横半分の表示になってしまう。もちろん外側画面は真っ暗だ。④正常なときは,蓋をしたまま起動すると,タブレット画面にスタート画面が現れる。しかし,今は何も表示されない。

 これからの対応について考えていることは以下の通りである
(1) 液晶をコントロールするdriverが壊れたと思い,パソコンを初期化してみた。結果は変わらず,ハード的に破損したものと思われる。
(2) こういうものの修理はできないので取替えが必要になる。たいていは有償になってしまう。以前sotecのパソコンのキーボードが故障した(勝手にキーが押され続く状態)。修理に出したが2万円の費用がかかったことがある。保障期間であるにもかかわらず,無償にはならないらしい。
(3) 一度故障すればまた故障するに違いない。どのメーカーさんも試みたことがない方式だけあって,どこかに無理があると思われる。複雑なものは故障するリスクから避けられない。
(4) このままプレゼンテーション用に使う方法はある。無線の小型プロジェクターとして使うことができる。ソフト「チームビューア」と一緒に使い,自分の画面をasus taichiに写す使い方だ。定年を迎えた機械の使い方にふさわしい使い方だと思っている。

コメント ( 1 ) | Trackback ( 0 )

Excelのみで差込印刷(new)

上段:カテゴリ 中段:投稿日 下段:サブテーマ ブログナンバー: 170  
     ネットワークトラブル (16)
010月11日(月)
もっと簡単に(改善版)

 前の記事「Excelのみで差込印刷」を書いてから2年も経過しているのにお客様が毎日20人前後訪ねてくださる.現実に合わない部分もあるので書き直してみた.


 右のようにA4用紙に2枚分の領収書(黒線で囲んだ範囲)を印刷する時のレイアウトで話を進める.
(1) EXCELの1ページを印刷するとき,パソコンによって56行から59行がA4用紙1枚に収まる.
(2) 紙1枚に上下2枚の領収書を印刷するには,紙の余白とシートの余白を加えて,行数を割り出し,右のようにする.
(3) 1ページが59行のときは,上から23行,13行,23行分割り当てる.
(4) これは,紙の余白がシートの6行分に相当するということから決めた数値である.
(5) 1ページ分を必要枚数分コピーしてシートに貼り付けておけば,印刷行が途中からずれる心配はない.(ここが最も重要な部分である)


上のような様式のの前の空白D5に名前を差し込むにはどうするかという問題解決には次のようにする.
(1) A列に1ページ分1から番号をつけ,名前のところは空白にする。
(2) B列に1ページ分1から番号をつける。
(3) 数字の入ったセルはフィルハンドルを使用すると数字が増加してしまうから、絶対参照の式を使う。たとえば、I3=K$1,F11=K$2のように入力する。ただし,NO.1はそのままでよい.
(4) K列の名簿はここにあってもよいし,他のファイルにあってもよい.
(5) 完成したら,C1からJ22の範囲を複写して,C35からJ56の範囲に貼り付ける.
(6) C37はNO.2に直し,A39を空白にすると1ページのレイアウトが完成する.
(7) この1ページ分を選択して(反転させる)J56の右下コーナーにマウスポインタをあてて,フィルハンドルを使う.20枚の領収書を作るには,560行まで,引きずる.
 次は右のようにA列~E列の領域を選択して昇順ボタンを押す。すると下の表のように最後は「様」が並ぶ。


 左側のの前の空白列にあらかじめ用意した名簿を貼り付けると右側のようになる。
 ここで,元の位置へ戻せばよい。B列~E列の領域を選択して昇順ボタンを押す。すると以下のように名前が差し込まれている。印刷はC列~J列の領域を選択して実行する。
領収書のコンテンツ作成同好会とは,パソコンと対話をして,動く作品作りの勉強会をしているサークルです. 
コメント ( 0 ) | Trackback ( 0 )

Excelのみで差込印刷

上段:カテゴリ 中段:投稿日 下段:サブテーマ ブログナンバー: 169
     ネットワークトラブル (15)
09月08日(月)
単票の場合の印刷に便利
 ネットワークトラブルといっても、私のネットワークではない。Web上で答えが無いトラブルである。掲示板に「Excelのみで差込印刷したいがどうしたらいいか」。答えはVLOOKUP関数を使って1語ずつ手で差し込んで印刷せよ,とかVBを勉強したらプログラムが組めるなどの回答が多いようなので一言書いておきたい。確かにExcelには差込印刷メニューはない。Excelの印刷は画面に出てる分は印刷しますという保障はある。だから、印刷したい文だけ画面にコピーして並べておけばよい。理論上65536行印刷できる。ここで、名前を差し込んだ領収書の例を説明したい。

 上のように15人分の領収書様式(線で囲んだ範囲)と名列がある。「様の前に名前を差し組むにはどうするか。」という問題の回答例は,
(1) A列に1から番号をつけ名前のところは空白にする。
(2) A1からH15までの領域を選択して枚数分フィルハンドルを引きずりコピーする。ここでは、15×15行目までハンドルをもっていく。
(3) ただし、(2)をやる前にしなくてはならないことがある。数字の入ったセルは数字が増加してしまうから、絶対参照の式を使う。たとえば、H2=J$2,D8=J$8のように入力する。

 上のように225行で全員分がつくられる。この状態からA列~H列の領域を選択して昇順ボタンを押す。すると下の表のように最後は「様」が並ぶ。


 次にA列には消した番号を入れる。(はじめの2つを入れてあとは2つのセルを選択してフィルハンドルを使う。)C列には名前を貼り付ける。(ペーストや”=I1とフィルハンドル”を使うと罫線が消えるからすぐに修復しておく)それが次の表である。
 最後に元の位置へ戻せばよい。A列~H列の領域を選択して昇順ボタンを押す。以下のように名前が差し込まれている。印刷はB列~H列の領域を選択して実行する。


 ここでは15行使った説明であるが、プリンターの改ページで先頭に来るように行数の設定や各行・各列の幅の調節や文字のサイズを動かし、印刷プレビューのテストを繰り返さなくてはいけない。(デフォルトのレコード幅(高さ) を使うときはぴったりいく)それでもWordの調節に比べてはるかに楽である。Wordでは1箇所変更すると他の部分が動き、にっちもさっちも行かなくなること再々である。
コメント ( 0 ) | Trackback ( 0 )

Googleマップで連鎖リンク成功


上段:カテゴリ 中段:投稿日 下段:サブテーマ ブログナンバー: 168
     ネットワークトラブル (14)
07月10日(木)
影武者ファイルを経由させる
 前回、GoogleマップのロカポDIYマップによる地図貼り付けはたいそう便利で簡単であることを紹介した。その上で、さらに吹き出しからリンクが張れないかを試行していたところやっとその方法が見つかった。うまくいかなかった原因はアンカタグ内のファイル名にドット(.)が含まれていることである。これをどう克服したかを忘れないうちに記録しておきたい。

 ロカポDIYマップにアクセスして、地図上の吹き出しにリンクタグを次のように書く。
<A HREF="menu1.html1"TARGET="migi">メニュー1</A>
<A HREF="menu2.html2"TARGET="migi">メニュー2</A>
ーーーーーーーーーーーーーーーーーーーーーーーー
のように拡張子に番号をつけてリンク先を区別する。終わったら、下のボックス内のURLをアンカータグに張りつけただけのドキュメントをつくり実行する。リンク先をクリックすると地図が表示される。
 開いた地図のソースをたとえばsource.htmlとして保存する。このときリモートで使う場合は、ソースの中のkey=の次から、"までの90文字位の文字列を発行された文字列と置き換えて上書き保存する。
 地図内の吹き出しにはリンクが張られたメニュー1、メニュー2、・・・が表示される。そのとき、リンク先のURLはhtml1、html2、・・・とステータスバーに表示される。これらがファイル名となる。しかし拡張子がないファイルをブラウザはHTMLファイルとして読めるかどうか。すべてを確認してはいないが次のような結果である。
 ブラウザ  ローカルのファイル  リモートのファイル
 Internet Explore  可  可
 FireFox  可  ソースを表示
 地図が開く条件
 会員登録必要

 このファイルhtml1はmenu1.htmlの影武者として次のようにフレームを使ってかく。
<HTML>
<FRAMESET COLS="100%">
<FRAME SRC="menu1.html" NAME="migi">
</FRAMESET>
</HTML>

 ファイルhtml2も同じようにかく。こうすれば、source.htmlを左フレームに開き、地図の1番目リンクから地図上に吹き出しが表れ、その中の吹き出しから、menu1.htmlを右フレームに開くことができる。こうして、上図の?が消えた。最後につけ加えることはGoogleサイトにアクセスして、使用するサーバーのURLを伝えてKeyを発行してもらおう。さもないと、リモートでは地図が開かない。
使用例:http://www.e-gifu.net/matsuri/
(のちに地図だけ右フレームに移動)
コメント ( 0 ) | Trackback ( 0 )
« 前ページ