goo blog サービス終了のお知らせ 

雑記帳

日常の出来事や、読んだ本のあらすじや感想など書いています。

strrchr

2008-09-24 22:09:16 | コンピュータ

C言語で、私はめったに使わないの
ですが strrchr という関数があります。
書式は次の通りです。

#include <string.h>
char *strrchr(const char *s, int c);

文字列 s の最後の文字の位置から調べて
最初に文字 c が見つかった位置のポインター
を返します。見つからなかったら NULL を
返します。
           
char s[]="abcdAefghjikABCD" という文字列の
char c ='A' の位置を知りたい場合に

p =strrchr(s,c) とすると後ろの方のABCDの
'A' の位置が得られます。

久しぶりに使ってみました。
ところがぜんぜん正しい位置を返してくれません。
なぜだろうと考えこみました。
この関数のサンプルを見てはたと気がつきました。
最初のアーギュメント 's' は文字列の最初の
位置を与えます。
上の例では先頭の 'a' の位置です。
ところが私はわざわざ調べて文字列の最後の
位置を与えていました。
ABCD の 'D' の位置です。
これでは結果が求められないわけです。

関数の中で文字列の最後は調べられます。
わざわざ関数を呼ぶ側で調べる必要はない
わけです。
自分でこの関数を作ったとしてもこのような
仕様にするだろうになぜぱっと頭に
うかばなかったのだろうとなさけなかったです。

関数を作った人は知りません。
でも関数の影に作った人がいるということは
想像できるでしょ。相手がどのように考えるか
思い描いてごらん、と教えられたものでした。
会うこともない人との対話です。

ケーブルを付け替える時は

2008-09-19 20:15:28 | コンピュータ
2台のパソコンのある設定をたのまれました。
その部門へ行きました。
2台のパソコンがまだ使用者の元に届けられて
いなくて予備の机の上に積んでありました。
1台だけディスプレィ、マウス、LANケーブルが
セットしてあります。
1台の設定が終わったら周辺機器はもう1台に
付け替えて設定して欲しいとのことでした。

1台を設定し終えてケーブル類を抜いていました。
それを見ていたその部門の担当者、
「そんなむちゃなことしたらだめ。」
と飛んできました。(ちょっと大げさ)
「まず電源コードを抜いて、それから周りのコード
を抜く。今度は周りのコードをつないでから
電源コードをつなぐ。これ常識だよ。」
と自分でやってみせてくれました。
「そんなこと今まで気にしたことない。」と私。
怒ってはいませんでしたが、あきれていました。

言われてみれはその通りで過剰な電流が流れる
ようなことがあれば基板がショートしてしまいます。
壊されてはたまらないと気が気ではなかった
ことでしょう。
皆さんもパソコンを移動させるときは注意
しましよう。
なに、そんな常識知っているって。
知らないのは私だけですか。

prompt

2008-09-16 22:20:01 | コンピュータ
古い本が手元にあります。
発行日が1986年となっています。
"MS-DOS ファイル整理学"です。
MS-DOS からしていったい何といわれそうです。
本の内容はバッチファイルの作り方です。
もう古くて今では使えなくなっているかと
思ったらそうでもないのです。
ちゃんと昔のものも残っているのですね。

prompt $t

これなんだと思います。
この1行を xxx.BAT というバッチファイルに
して実行すると

D:>prompt $t
22:05:50.04

時刻を表示します。
(コマンドプロンプトに直接入力しエンターでも
表示します。) 
こんなこと知っている人もういないでしょうね。
使い道もなさそうですし。

追伸)
あぁ、びっくりした。
よく調べもしないで書いてしまいました。
PROMPT どんな場面で使うのかまだよく
わかりません。
コマンドプロンプトで実行させると
入力位置を示す > がPROMPT で指定したものに
変わってしまいます。
10:10:30.10 見たいな感じに。
これではこの後にコマンドを入力するのだとは
わかりません。
どうしちゃったんだろうとあせりました。9/17

走っているプログラムを別物にするには

2008-09-04 20:47:26 | コンピュータ

今日は何も書くことがないなぁと
ぼんやり考えていました。
会社ではなんかなかったかなぁ。
で,会社では全然頭に浮かばなかったのに
今思い出しました。

"EXEファイルのリネーム" 2006/05/19だって。
よく書いたこと思い出せたものです。
そうそうこれが今日できなくてどうしようと
頭を悩ませていたのでした。
1台だけならなんということはないのだけど
何十台となるとどうしようということに
なります。

しめしめです。明日試してみます。

便利なショートカットキー

2008-08-27 21:07:06 | コンピュータ
Windows XP で使用可能なショートカット キー一覧
をみてみると山のようにあります。
でもほとんど知りません。
使いこなせれば処理が格段に早くなることでしょう。
ユーザのところへ行って作業をしているのを
のぞいているとあれれ、効率よく作業して
いるなあと教えらることがあります。

Windows ロゴ + D キー(デスクトップを表示する
            /非表示にする)
これが前から知りたかったのです。
Windows ロゴ + M キー (ウィンドウをすべて最小化する)  
Windows ロゴ + Shift + M キー (最小化した
             ウィンドウを元のサイズに戻す)
これとどう違うのかよくわかりません。
結果は同じなんですけど。

自分のパソコンでは全画面で画面いっぱいに
開いて作業することはありません。
だから別のアプリケーションを立ち上げる時
ディスクトップにあるアイコンにさわれない
ということはありません。
でもユーザのところへいくと全画面でしかも
5、6個開いて作業をしています。
別のアプリケーションを立ち上げたい時
ディスクトップのアイコンにさわれなくて
とても困ります。
しょうがないので1つずつ最小化しています。
これはあまりにもプロらしくありません。
かっこ悪いなあと思いつつやってます。
いつかショートカットを探しておかなければと
思いつつ忘れてしまいまた同じことをしています。

やっと探しました。さて次に使いたい時まで
覚えていられるかどうか心もとないです。

全選択のCtrl + A キーは1年ぐらい前から
使い始めました。
なぜ使わなかったのだろうと今では思います。

不便でたまらないという時に何かないかと
探して使う、でいいのだと思います。
たまにしかしないことはこつこつやっても
気になりませんし、覚えてもすぐ忘れます。


覚えておくといいなと思うものです。


Windows ロゴ ([スタート] メニューを表示するか、または非表示にする)
Windows ロゴ + D キー (デスクトップを表示する)
Windows ロゴ + M キー (ウィンドウをすべて最小化する)
Windows ロゴ + Shift + M キー (最小化したウィンドウを元のサイズに戻す)
Windows ロゴ + L キー (コンピュータをロックする)
Windows ロゴ + R キー ([ファイル名を指定して実行] ダイアログ ボックスを開く)
WINDOWS ロゴ + E キー (エクスプローラ起動)
WINDOWS ロゴ + F キー (検索画面起動)

Ctrl + C キー (コピー)
Ctrl + X キー (切り取り)
Ctrl + V キー (貼り付け)
Ctrl + Z キー (元に戻す)
Ctrl + A キー (すべてを選択)
Alt + Tab キー (開いている項目を切り替える)
Alt + Esc キー (項目を開いた順に切り替える)




追伸)
今日もう一つ覚えました。
ツールバーのクイック起動に"ディスクトップの表示"
というアイコンがあるのですね。
知らないなんて情けないですね。 8/28

レジストリの読み出し

2008-08-25 21:15:53 | コンピュータ
レジストリからデータを読みたいという
状況になりました。
始めてやることはなかなかうまくいきません。
でもわかってしまうと何だ簡単だということに
なります。

読み取り方をCで書いてみました。
参考に載せておきます。
ブログに載せるのに空白をうまくコントロール
できないので半角の空白を全角に変えてあります。
読み取りですから何かを壊すということは
ないとは思いますが、これを使って問題が
起きても責任は持ちませんので試してみようと
いう方は自分の責任でおやりください。

#include <string.h>
#include <windows.h>
#include <winreg.h>
/*-----------------------------------------------------------------------*/
/*-----------------------------------------------------------------------*/
int main(int argc,char *argv[])
{

  HKEY   handle;
  DWORD  len,dwtype;
  char data[256],Name[80],SubKey[256];
  long rc;

  strcpy(SubKey,"AutoCADSheetSet.17\\shell\\open\\command");
  
  rc =RegOpenKeyEx(HKEY_CLASSES_ROOT,SubKey,0,KEY_ALL_ACCESS,&handle);

  strcpy(Name, "");

  rc =RegQueryValueEx(handle,Name,0,&dwtype,data,&len);

  printf("data=%s\n",data);

  RegCloseKey(handle);

 exit(0);

}

女神?

2008-08-18 20:03:41 | コンピュータ
休みが終わって今日から仕事です。
休み明けはばたばたすることが多いの
ですが今日は特に問題もなく過ぎました。

休みが長く続くとなんか物足りない気が
してきますが、さりとて仕事に戻っても
楽しいという気分にはなりません。
ひところのようにコンピュータは敵だと
いうほどの嫌悪感は薄れましたが、
もうあこがれの人とか友達だという感覚
には戻れない気がします。
淡々と付き合っていくことになるでしょう。
離れたくても離れられない腐れ縁ですね。

昔大型コンピュータを使っていたころは
CPUはホストコンピュータ1台が持っていて
それに繋がっているデマンドという
ディスプレイにキーボードがついた入出力
装置で操作していました。
1つのコンピュータが数百台のデマンドに
CUPを分け与えているわけです。

デマンドを使っている人たちは1つの
コンピュータを共有しているわけですから
妙な親密感がありました。
コンピュータをあたかも生きている人間の
ように親しく感じていました。
さながら女神を奉る信者のようでした。

WINDOWS コマンド FOR

2008-08-12 22:18:01 | コンピュータ
ユーザがある拡張子のファイルすべてに
対してある処理をしたい。
それにはWINDOWS のコマンドの FOR を
使うと出来るらしいからどうやったらいいか
見て教えてと資料を渡されました。

FOR は使ったことがありません。
コマンドプロンプトを開いて HELP と入力して
エンターキーを押すとコマンド一覧が表示
されます。
それによると
"FOR: 指定されたコマンドを、ファイルの
集合の各ファイルに対して実行します。"
と表示されます。
これではなんのことだかさっぱりです。
次に HELP FOR と入力しエンターすると FORの
説明が表示されます。
A4で2ページぐらいになりますので興味ある方は
ご自分で表示してみてください。

DIR  /B D:TEMP*.DOS >D:TEMPDOS.LST
FOR /F %%i "delims=" IN (D:TEMPDOS.LIST) DO
DMNDOS F=E:CAD,TRAIN DW=%%i.DOS I=MASTER,MASTER

こんな感じでBATファイルを作成します。
(2行目,3行目は続いていて1行です。)
DIR で .DOS ファイルの一覧表を D:TEMPDOS.LST
に作成します。
FOR でこの一覧ファイルから1行ずつ読み込んで
DO 以降の処理を行数分します。
"delims=" は今回のファイルのファイル名が
空白を含んでいるため空白を区切り文字
ではありませんと指示するためのオプションです。
%%i にD:TEMPDOS.LST より読み込まれた
ファイル名が設定されます。
実行はコマンドプロンプトよりバッチファイルを
起動します。

コマンドプロンプトから1行ずつ実行しても
動きます。
その場合は FOR の %%i は %i にして下さい。

何かの折に全ファイルに同じ処理をしたいと
思うことがあったら FOR を思い出して
下さい。

Internet Explore

2008-08-11 23:05:24 | コンピュータ
Internet Exploreのホームページ(立ち上げた
時に現れる画面)を自分の都合のいいものに設定
しても設定しても MSN Japan に切り替わって
しまいます。
どうしてもMSN が一番になりたいというのなら
どうぞおなりなさいとあきらめました。
IE のバージョンは 7、何かバグがあるのだろうと
思いました。
こんな時は意地になってさわると却ってますます
壊れてしまいます。
前に経験があります。
ちょっと不便でも致命的でない限りほっておくのが
無難です。

もうずいぶん経ちました。先日ふっとホーム
ページを書き換えてみました。
正常になっています。
自分の気に入ったものに書き換えられました。
きっといつの間にかバグフィックスしたものが
インストールされていたのに違いありません。

パソコンは自分のものだと思っていても勝手に
中身は入れ替わっていきます。
何年かしたら買った時とは別物になってたり
するかもしれません。
へんな感じです。

今日のオリンピックでは水泳100メートル平泳ぎで
北島康介さんが世界新で金メダルです。
すごいです。

文字の整形

2008-08-06 20:37:00 | コンピュータ
自分が当然のことと思うことでも当然では
ないことがあるものです。
プログラムを大勢の人に使ってもらうため
にはユーザが戸惑ったり面倒でないよう
充分考えます。
プログラム側で処理できるものはユーザに
負担をかけないようプログラム側で処理
したいと考えて作ります。

最近、「おかしい」というユーザの声が
聞こえてきます。
このソフトは私が計画したものではなく
作成にも関わっていません。
たまたま私の所へ持ち込まれたものです。

それでそのソフトを使ってみてわかったことは
大文字での入力はOK,小文字はダメと
なることです。
パスワードのようようなもので大文字と
小文字は別物という認識のあるものは
別物と扱わなければいけません。
でもそうでないものは大文字と小文字は
同じものとして処理して欲しいと思います。

文字が入力されたら大文字変換してから
処理するというのが私にとっては定番に
なっています。
今回のソフトをみて、へぇ文字を大文字か
小文字に整形してから処理するというのは
世の中の定番ではないのだと、ちょっと
びっくりしました。

雷のせい?

2008-07-28 20:55:56 | コンピュータ
今日は涼しいです。
毎日こんな気温なら最高です。
今日出かける時、雨が降るなんて思いませんでした。
それが午前中の早い時から降りだして午後は3時ごろ
まで降っていました。
空は暗くて、雷がゴロゴロと鳴り続けました。
4~5時間も雷が鳴り続けるなんて始めての
経験のような気がします。
雷はすぐに通り過ぎるというのが認識です。
建物の中にいる時にはいくら鳴っていてもどうと
いうことありません。でも外に出たくはありません。


昨日の雷のせいかどうか、パソコンが1台壊れました。
電源が入れっぱなしのものです。
まったく起動せず、マザーボードが壊れたかと
思いました。ハードディスクだったらやっかいです。
保守契約期間中だったパソコンのため、すぐに
修理にやってきてくれました。
グラフィックボードの故障で交換で直りました。
グラフィックボードの故障だったらディスプレイに
表示しないだけで他のパソコンと交信できそうな
感じがしますが出来ないものなんですね。
ハードディスクの故障でファイルが消えたという
ことにならないで、やれやれです。

休日出勤

2008-07-19 20:41:16 | コンピュータ
今日は午後から出勤しました。
暑いさなかの通勤で会社についたらぐだっと
してしまいました。
忙しいのにも二種類あって上向きの忙しさと
下向きの忙しさです。
今の忙しさは下向きの忙しさで"明るい未来が待っているよ"
とはいきません。
でも人生も仕事も波うっていていいんだと
思えるようになりました。
いつもいつも上向いている人生なんてありえません。
それは幸せというよりつらいだろうと思います。
サインとかコサインのカーブみたいで、ならしたら
中央よりちょっと上だったというのがいいのじゃ
ないかと思います。

今のばたばたがもうじき終わります。
そうしたら、がたっと暇になってしまうかもしれません。
ま、いいか。またじょじょに上に向かっていこう。

アイコン

2008-07-17 19:44:49 | コンピュータ
パソコンを立ち上げた時、時々現れる「使われて
いないアイコンがあります。」という表示が
あります。
これ、アイコンに指定してあるリンク先に
ソフトが無くなってしまってリングが切れて
しまったといっているのだと思っていました。

どうもそうじゃないのですね。
ほんとに使っていないといっているようです。
ということは、使ったかどうかチェックしている
ということになります。
相手がパソコンで、別に悪用されるわけではない
のだけどパソコンに向かって"余計なお世話"と
言ってしまいます。

アイコンがたくさんあるといろいろ弊害があるとは
聞いていますが、使ったかどうかチェックする
意味がいまいちわかりません。
やはり処理スピードが落ちるのを防ごうという
意味合いが大きいのでしょうね。