Perlでファイルパスを分解

ファイルパスからディレクトリパスとファイル名を分解する例です。


#!/usr/bin/perl

use File::Basename;

$str = "/home/hoge/test.txt";

$path = dirname($str);
$file = basename($str);

print $path . "n";
print $file . "n";

テーマ : プログラミング
ジャンル : コンピュータ

2007-08-31 : Work-Linux-Perl : コメント : 0 : トラックバック : 0
Pagetop

効率的に勉強法しよう

1. 勉強しよう
もしもあなたが幸せになりたいと思っているのなら、年収を上げることが必要です。今後は格差社会化がいっそう進むことにより、勉強の有無によって階級が決定され、下位階層では年収が低いままになってしまいます。年収を増やす手っ取り早い方法は年収増につながるような勉強をして、それを実践の場で生かすことです。勉強は自分への投資です。勉強によって利益を得ると、それを再投資して勉強することにより、さらに高い利益を得ることができます。逆に自分自身に勉強という形で投資をしていかないと、倒産してしまうこともあり得るわけです。勉強の最大の敵はモチベーションが続かないことです。前述したことが皮膚感覚で分かっている人と分かっていない人との間では、勉強に対する価値観や優先順位が異なります。勉強するほど幸せになるという成功体験を作ってしまえば、勉強することが習慣化されます。
高い意識を持っていても、根性で睡眠時間を削って無理すると長続きしません。勉強で大事なのは内容ではなく、勉強をうまく続かせるしくみ作りです。最初は半ば強制的に自分を追い込み、進捗状況を測るなど勉強が続くしくみを工夫するのに加え、勉強の結果をちゃんとアウトプットするという一連の流れを作ることがスタートとなります。

2. 勉強方法
どんな勉強にも共通する「①5つのコツ」があり、まずはこれを理解します。勉強には道具が必要です。ITを駆使し、「②書斎を持ち歩く」準備をしましょう。道具を揃えたら、次は「③コンテンツ」を用意しましょう。また具体的な勉強対象として、「④英語、会計」が挙げられます。最後に、「⑤身につけたものをお金に変える」を実践しましょう。以下にそれぞれについて説明します。

① 5つのコツ
勉強にも料理やスポーツと同じで共通のコツがあります。これをマスターすると、一見関係無い勉強でも短時間で身につけることができるようになります。そのコツを以下に示します。
・ 基礎を最初に徹底的に学ぶ:最初はひたすら基礎訓練
・ 先達から勉強の仕方をしっかり聞く:まずは人から学ぶ
・ 学ぶ対象の基本思想を理解する:一度大局的に俯瞰することが大事
・ 学んだことを自分の言葉でアウトプットする:アウトプットしてみてはじめて分かる
・ 勉強を楽しむ:RPGと同じで自分の能力が上がれば楽しい

② 書斎を持ち歩く
今やITが安価になり、紙やペンよりも数十倍も効果的に勉強ができる道具や手法が発達してきています。以下に挙げるものを一通り揃えましょう
・ ノートパソコン:勉強のベースとなり、情報処理を行うための補助脳となる
・ 速読術:だいだい何が書いてあるかを把握し、気になる箇所のみゆっくり読む
・ 音楽プレーヤー:耳は場所によらず活用可能
・ 親指シフトとマインドマップ:すばやいメモとアウトプット

③ コンテンツ
勉強の基本は何かから情報をインプットする、ということですが、インプットの入り口は目と耳しかありません。まずは自分の目と耳を勉強の道具として意識していきます。
・ 目:「本」が最も汎用的に使える情報源です。雑誌を読む時間を減らし、その分専門誌または書籍を読むのを薦めます。なぜかというと、雑誌は教養、雑学止まりになる可能性が高いからです。他の情報はネットで収集します。なお、テレビは情報が少なすぎるために時間の無駄です。
・ 耳:「オーディオブック」を使えば、得られる気づきが本よりもはるかに深い上、聞ける時間が本よりも多く、集中力が本よりも長く続きます。
・ セミナー:実際に勉強する場で人に教えてもらうのは非常に効果が高いです。
・ 学校:さまざまな学習法のうち最も効率が高いのは同じぐらいのスキルの生徒がお互い切磋琢磨しあうコミュニティラーニングという手法で、その場を提供してくれるのが学校です。また人脈作りという面でも得るものが多いです。

④ 英語、会計
「英語」ができると年収が上がる確率が高まるだけでなく、アクセス市場、情報や製品、サービスの入手先が日本だけから世界に広がります。英語はTOEIC860点を目指しましょう。
「会計」はビジネスリテラシーとして必須科目です。実は公認会計士に受かることは英語をマスターするよりも敷居が低いのです。

⑤ 身につけたものをお金にしよう
訓練時間を長く要する職業ほど供給が少なく、給与が高くなります。勉強の成果を収入に結びつけたいならば、このような職業に就く必要があります。しっかりとした金融の知識に裏付けられた長期による資産運用も転職と違った軸で収入を増やすことができます。

3. 勉強で豊かな暮らしを
ワークバランスを整えるためには長時間労働をやめて効果的に仕事をする必要があります。そのためには勉強が必要ですが、WHYとWHATを先にし、それからHOWを逆算しましょう。

参照:
http://www.amazon.co.jp/dp/4887595441/
2007-08-30 : Home-Money-Incoming : コメント : 3 : トラックバック : 0
Pagetop

端末で強調表示の文字化けを直す

manの結果等をテキストファイルに落とすと、強調表示の制御コードも一緒にテキスト化されてしまい、非常に読みにくいです。そんな時は、colコマンドに-bオプションをつけてパイプでフィルタリングすればきれいなテキストを作る事ができます。

<例>
$ man ls | col -b > tmp.txt

テーマ : UNIX/Linux
ジャンル : コンピュータ

2007-08-29 : Work-Linux-Command/Editor : コメント : 0 : トラックバック : 0
Pagetop

iconvを使用した文字コード変換

Fedoraではツール間でかなり文字コードの統一がなされていますが、EnterpriseLinuxでは一方はUTF-8、片方はEUC等ばらばらなことがあります。しかも困ったことにnkfが使えません。そんな時に困らないよう、iconvの使い方も覚えておきましょう。以下はUTF-8からEUCに変換する例です。

$ iconv -f UTF-8 -t EUC-JPファイル等

テーマ : UNIX/Linux
ジャンル : コンピュータ

2007-08-28 : Work-Linux-Command/Editor : コメント : 0 : トラックバック : 0
Pagetop

ボーンシェルで関数

ボーンシェルで関数を使う方法をまとめます。関数の引数はシェルの引数の使用方法と同じで、関数の戻り値は"$?"を使います。戻り値には数字の0~255しか
使えないようです。



#!/bin/sh

function test
{
echo $1;
echo $2;

return 255;
}

val1="hoge";
val2="fuga";

test $val1 $val2;

echo $?;


■ 出力
hoge
fuga
255

テーマ : UNIX/Linux
ジャンル : コンピュータ

2007-08-27 : Work-Linux-Makefile/Sh/Csh : コメント : 0 : トラックバック : 0
Pagetop

Jasperのコンパイル方法

jpeg2000のエンコードソフト、Jasperのコンパイル方法をまとめます。単にソフトを使用するだけならパッケージで十分ですが、自分でコンパイルするとコードにプリント文を仕込んだりして動作の解析が可能です。

まず以下のURLからソフトをダウンロードします。

http://www.ece.uvic.ca/~mdadams/jasper/

圧縮ファイルを解凍し、コンパイルします。

$ unzip Desktop/jasper-1.900.1.zip
$ cd jasper-1.900.1
$ ./configure
$ make

コンパイルできたらヘルプを一度見ておきましょう。

$ jasper-1.900.1/src/appl/jasper --help

ためしにjpeg2000のファイルを作成してみます。

$ src/appl/jasper --input data/images/goldenears.pnm --input-format pnm --output test.jp2 --output-format jp2

画像を閲覧するために、パッケージのJasperをインストールしておきます。

# yum install jasper

jivを使用して画像を確認します。

$ jiv test.jp2

テーマ : UNIX/Linux
ジャンル : コンピュータ

2007-08-25 : Work-Linux-Env : コメント : 0 : トラックバック : 0
Pagetop

DDR2の規格書

ついでにDDR2の規格書のダウンロード方法をまとめておきます。

一番基本的なドキュメントは「JEDEC STANDARD DDR2 SDRAM SPECIFICATION」ですが、こちらは特にメンバー登録等は必要無く、以下のURLにアクセスして右上の検索するところで「DDR2」を検索するだけです。

http://www.jedec.org/

他にも「DDR2 使い方」で検索すると、わかりやすいドキュメントが出てきます。

テーマ : PC周辺機器
ジャンル : コンピュータ

2007-08-24 : Work-Product-Spec : コメント : 0 : トラックバック : 0
Pagetop

OCPの規格書

OCPプロトコルの規格書のダウンロード方法をまとめておきます。

といってもやり方は簡単で、以下のURLにアクセスし、メールアドレスと必要事項を書いて送信すれば、大体1日後にアカウント情報がメールで送られてきて、そこから仕様書をダウンロードすることができます。

http://www.ocpip.org/socket/ocpspec/licensesignup

その他にも、「OCP-IP」や「OCP Specification」で検索するといろいろ出てきます。

テーマ : プログラミング
ジャンル : コンピュータ

2007-08-24 : Work-Product-Spec : コメント : 0 : トラックバック : 0
Pagetop

Perlで32bit以上の計算

32bit以上の変数や計算を行う際には、

use bigint;

や、

use Math::BigInt;

を使用します。両者は微妙に精度が異なります。


#!/usr/bin/perl

use bigint;

$a = 0x300000000;
$b = 0x200000000;

print $a+$b . "n";
print $a-$b . "n";
print $a*$b . "n";
print $a/$b . "n";

結果
21474836480
4294967296
110680464442257309696
1



#!/usr/bin/perl

use Math::BigInt;

$a = 0x300000000;
$b = 0x200000000;

print $a+$b . "n";
print $a-$b . "n";
print $a*$b . "n";
print $a/$b . "n";

21474836480
4294967296
1.10680464442257e+20
1.5

テーマ : プログラミング
ジャンル : コンピュータ

2007-08-23 : Work-Linux-Perl : コメント : 0 : トラックバック : 0
Pagetop

CVSサーバー構築

簡単なCVSサーバーの構築方法をまとめておきます。

■ CVSを操作するアカウントを作成
CVSサーバーのみ関係するアカウントを用意してもいいのですが、普通にログインアカウントで代用します。

# adduser cvsusr
# passwd cvsusr

■ CVSインポート
CVSのレポジトリの用意します。

# export CVSROOT=/home/repository
# cvs init
# chmod 777 $CVSROOT

$ export CVSROOT=/home/repository
$ touch tmp.txt
$ cvs import test hoge start

これでチェックアウトルートtestにtmp.txtが登録されました。

■ 次にxinetdにPserverをセットアップします。

# cd /etc/xinetd.d/
# vi cvspserver

service cvspserver
{
disable = no
socket_type = stream
protocol = tcp
wait = no
user = root
passenv =
server = /usr/bin/cvs
server_args = -f --allow-root=/home/repository pserver
}

# service xinetd restart

■ CVSチェックアウト&コミット
rootやcvsusr(CVSを操作するアカウント)以外で実際にCVSを操作してみましょう。

$ export CVSROOT=:pserver:cvsusr@localhost:/home/repository
$ cvs login
$ cvs co test

テーマ : UNIX/Linux
ジャンル : コンピュータ

2007-08-22 : Work-Linux-Env : コメント : 0 : トラックバック : 0
Pagetop

libdvのコンパイル、実行

フリーで使えるDV動画のデコーダーソフト、libdvの紹介をします。
このソフトはソースコードが付属していますので、DVデコードの勉強にも使えます。

こんパイルの前に、必要なものをインストールしておく必要があります。


yum install libdv libdv-devel libdv-tools
yum install glib-devel
yum install gtk+-devel


以下のページからlibdvとサンプル動画をダウンロードしておきます。

http://sourceforge.net/projects/libdv/

そしてLinux上でコンパイルを行います。


tar -xzvf libdv-1.0.0.tar.gz
cd libdv-1.0.0
./configure
make


自分の環境ではなぜかシェアードオブジェクトのセキュリティに関するエラーが出たので、以下のコマンドを入力しておきます。


chcon -c -v -R -u system_u -r object_r -t textrel_shlib_t libdv/.libs/libdv.so.4.0.3


無事にコンパイルが終われば、ローカルのlibdvを実行してみましょう。


./playdv/playdv -d 1 ../4x3.dv


※4x3.dvはサンプル

テーマ : フリーソフト
ジャンル : コンピュータ

2007-08-21 : Work-Linux-Env : コメント : 0 : トラックバック : 0
Pagetop

emacsのキーボードマクロ

テキストファイルを編集中に同じ操作を繰り返す場合はキーボードマクロを使います。ここではemacsのキーボードマクロの使い方についてまとめておきます。

まず、
Ctrl+x (
を入力した後、繰り返す動作を入力します。入力が終了したら、
Ctrl+x )
を入力します。

キーボードマクロを使用する際には、
Ctrl+x e
を入力します。

テーマ : UNIX/Linux
ジャンル : コンピュータ

2007-08-16 : Work-Linux-Command/Editor : コメント : 0 : トラックバック : 0
Pagetop

個人用フィルタ

Linuxからだとブログのコード部分に改行が追加され、<→"<"、>→">"の変換がうまく行われないため、このフィルタを使います。個人的なメモ用にのせておきます。


#!/usr/bin/perl

# 引数分ループ
foreach (@ARGV) {
# 入出力ファイル名決定
$in_file_name = $_;
$out_file_name = $in_file_name . ".tmp";

# 入出力ファイルハンドル確保
open (INFILE, "<$in_file_name") || die "$in_file_name: $!";
open (OUTFILE, ">$out_file_name") || die "$out_file_name: $!";

# 入力ファイル内を走査
$bit = 1;
while (<INFILE>) {
s/</</g; # 左は<
s/>/>/g; # 左は<
if ($bit) { print OUTFILE; } # 出力ファイルに置換結果を書き込み
$bit = !$bit;
}

# 入出力ファイルハンドル開放
close (INFILE);
close (OUTFILE);

# 出力ファイルで入力ファイルを上書き
system "mv -f $out_file_name $in_file_name";
}

テーマ : プログラミング
ジャンル : コンピュータ

2007-08-16 : Work-Linux-Perl : コメント : 0 : トラックバック : 0
Pagetop

C++の文字列置換

残念ながら正規表現は標準C++には実装されておらず、boostを使用しない限りは使う事が出来ません。さしあたって単純な文字列置換で我慢しておきましょう。

※以下のWebページを参考にさせてもらいました。
http://www.s34.co.jp/cpptechdoc/aftercare/art_24_01.html


#include <string>
#include <iostream>
using namespace std;

string replace_all (
const string & source,
const string & pattern,
const string & placement
)
{
string result;
string::size_type pos_before = 0;
string::size_type pos = 0;
string::size_type len = pattern.size();
while ((pos = source.find(pattern, pos)) != string::npos) {
result.append(source, pos_before, pos - pos_before);
result.append(placement);
pos += len;
pos_before = pos;
}
result.append(source, pos_before, source.size() - pos_before);
return result;
}

int main()
{
string source = "hogehogehoge"; // 置換対象
string pattern = "hoge"; // 検索パターン
string placement = "fuga"; // 置換パターン
cout << replace_all(source, pattern, placement) << endl;

return 0;
}

テーマ : プログラミング
ジャンル : コンピュータ

2007-08-15 : Work-Linux-C/C++/Java : コメント : 0 : トラックバック : 0
Pagetop

C++のファイルIO

Cの文法の範囲で使用可能なfopen()を使用するのもいいのですが、せっかくC++が使えるので、fstreamを使用してみましょう。


#include <string>
#include <iostream>
#include <fstream>
using namespace std;

int main()
{
const long max_buf_size = 1000; // バッファの最大文字数

string infname; // 入力ファイル名
string outfname; // 出力ファイル名
ifstream inf; // 入力ファイルハンドル
ofstream outf; // 出力ファイルハンドル
char buf[max_buf_size]; // 入力ファイルの1行バッファ

// 入出力ファイル名設定
infname = "input.txt";
outfname = "output.txt";

// 入出力ファイルオープン
inf.open(infname.c_str());
if (!inf) { cout << "Error: cannot open file(" << infname << ")" << endl; return 1; }
outf.open(outfname.c_str());
if (!outf) { cout << "Error: cannot open file(" << outfname << ")" << endl; return 1; }

// ファイル読み込みと書き込み
while (inf.getline(buf, max_buf_size))
{
outf << buf << endl;
}

// 入出力ファイルクローズ
inf.close();
outf.close();

return 0;
}

テーマ : プログラミング
ジャンル : コンピュータ

2007-08-15 : Work-Linux-C/C++/Java : コメント : 0 : トラックバック : 0
Pagetop

文字コード、改行コード変換スクリプト

おもいきりnkfに頼った実装ですが、-wでWindows、-uでUnix形式に変換します。


#!/usr/bin/perl

use Getopt::Std;

$opt_h = 0;
$opt_w = 0;
$opt_u = 0;

getopts('hwu');

if ($opt_h) {
printf("txtconf.pl [optin] [file]\n");
printf(" -h ヘルプ\n");
printf(" -w Windowsの文字コード、改行コードに変換\n");
printf(" -u Unixの文字コード、改行コードに変換\n");
}
else {
# 引数分ループ
foreach (@ARGV) {
# 入出力ファイル名決定
$in_file_name = $_;
printf("$in_file_name\n");

# 変換
if ($opt_w) { system "nkf -s -Lw --overwrite $in_file_name"; }
elsif ($opt_u) { system "nkf -e -Lu --overwrite $in_file_name"; }
}
}

テーマ : UNIX/Linux
ジャンル : コンピュータ

2007-08-14 : Work-Linux-Perl : コメント : 0 : トラックバック : 0
Pagetop

shの基本文法

時として基本的なボーンシェルを使用しなければならない場合があるので、基本的な文法は覚えておいた方がいいです。

■ if文


#!/bin/sh

str1=100;
str2=100;

if [ $str1 -eq $str2 ]
then
echo "equal";
else
echo "not equal";
fi


<出力>
equal

■ 文字列比較


#!/bin/sh

str1="hoge";
str2="hoge";

if [ $str1 = $str2 ]
then
echo "equal";
else
echo "not equal";
fi


<出力>
equal

■ for文


#!/bin/sh

str="A B C";

for i in $str
do
echo $i
done


<出力>
A
B
C

■ ファイルリストの展開


#!/bin/sh

for i in `\ls -1`
do
echo $i
done


<出力>
カレントディレクトリのファイルリスト

テーマ : UNIX/Linux
ジャンル : コンピュータ

2007-08-12 : Work-Linux-Makefile/Sh/Csh : コメント : 0 : トラックバック : 0
Pagetop

Windowsでの各種設定

■ Beep音を消す
特にサウンドボードが無いマシンではよく無効な動作をするとBeep音が鳴ってしまいますが、それを消す設定を以下にまとめます。

1.コントロールパネル→システム→ハードウェア→デバイスマネージャ
2.表示→非表示のデバイスを表示
3.プラグアンドプレイではないドライバのBeepを選択し、無効を選択

■ ポップアップアイコンの表示/非表示
画面右下のポップアップアイコンは、デフォルトでは使用状態によって表示/非表示が自動的に切り替わります。これを常に表示/非表示という具合に設定することが可能です。設定箇所は以下の通りです。

スタートメニュー→設定→タスクバーと[スタートメニュー]のプロパティ→アクティブでないインジゲーターを隠す→カスタマイズ

■ ログインIDの履歴無効
デフォルトの状態だと、最後にログインしたログインIDがそのまま表示された常態になっています。設定箇所を以下に示します。(設定からコントロールパネルが展開されるようになっている場合)

スタートメニュー→設定→コントロールパネル→管理ツール→ローカルセキュリティポリシー→ローカルポリシー→セキュリティオプション

■ パフォーマンス調整
デフォルト状態だと作業に不必要な演出に関する処理が行なわれます。基本的にこれらはすべて必要無いので、以下の設定で無効にしてしまいましょう。(設定からコントロールパネルが展開されるようになっ
ている場合)

スタートメニュー→設定→コントロールパネル→システム→詳細設定→パフォーマンス→設定

テーマ : Windows 全般
ジャンル : コンピュータ

2007-08-11 : Work-Win-Env : コメント : 0 : トラックバック : 0
Pagetop

Excelの文字列置換

Excelで正規表現を利用した文字列置換です。この例では10×10のセル内のhogeという文字列をfugaに置換しています。
Replaceメソッドの第1引数に検索対象の文字列を設定し、第2引数に置換する文字列を設定します。置換した文字列はReplaceメソッドの戻り値として返されます。


'正規表現を利用した文字列置換
Sub RegExpSubst()
Dim row As Long 'row方向のインデックス
Dim col As Long 'col方向のインデックス
Dim RE '正規表現オブジェクト
Set RE = CreateObject("VBScript.RegExp") 'オブジェクト生成

'正規表現オブジェクトのメンバ設定
RE.Pattern = "hoge" '検索パターンを設定
RE.IgnoreCase = False '大文字と小文字を区別する
RE.Global = True '文字列全体を検索

'検索開始
For row = 1 To 10 Step 1
For col = 1 To 10 Step 1
Cells(row, col) = RE.Replace(Cells(row, col), "fuga") '検索パターンを置換
Next col
Next row

Set RE = Nothing 'オブジェクト破棄
End Sub

テーマ : エクセル
ジャンル : コンピュータ

2007-08-10 : Work-Win-Office/Acrobat : コメント : 0 : トラックバック : 0
Pagetop

ExcelのファイルIO

input.txtを読んでそのままoutput.txtに出力します。


'テキストファイルの読み込みと書き込み
Sub TextFileRW()
Dim RFname As String 'リードファイル名
Dim WFname As String 'ライトファイル名
Dim RFno As Long 'リードファイルハンドル
Dim WFno As Long 'ライトファイルハンドル
Dim Buf As String 'ファイルの1行バッファ

RFname = ThisWorkbook.Path & "\input.txt" 'リードファイル名設定
WFname = ThisWorkbook.Path & "\output.txt" 'ライトファイル名設定

RFno = FreeFile() '使用可能なファイル番号を取得
Open RFname For Input As #RFno 'ファイルをシーケンシャル入力モードで開きます
WFno = FreeFile() '使用可能なファイル番号を取得
Open WFname For Output As #WFno 'ファイルをシーケンシャル出力モードで開きます

Do While Not EOF(RFno) 'ファイルの終端までループを繰り返します
Line Input #RFno, myBuf 'リードファイルから行を変数に読み込みます
Print #WFno, myBuf '変数をライトファイルに書き込みます
Loop

Close #RFno 'ファイルを閉じます
Close #WFno 'ファイルを閉じます
End Sub

テーマ : Officeソフト
ジャンル : コンピュータ

2007-08-08 : Work-Win-Office/Acrobat : コメント : 0 : トラックバック : 0
Pagetop

Excelの基本

Linuxプログラミングと言っておきながら、少しExcelについて書こうと思います。Excelマクロって案外万能なんで重宝します。

■ 用語説明
・プロシージャ
関数の事です。

・プロパティとメソッド
プロパティはクラスのメンバ変数、メソッドはクラスのメンバ関数の事です。

・コレクション
複数のクラスオブジェクトから構成された配列の事です。ActiveWorkbook.Worksheetsもコレクションで、ワークシート名もしくはインデックスでオブジェクトの選択が可能です。

■ プロシージャ
標準モジュール内の最小のアクセス単位であるプロシージャは以下のように記述します。


Sub test()
'内容
End Sub


■ マクロの記録
Excel VBAのマクロの記録方法を以下に示します。複雑な動作はとりあえずマクロの記録を行い、そこからコピーペーストすれば良いでしょう。

1.Visual Basicツールバーを表示させます。
2.ツールバーのマクロの記録ボタンを押します。
3.保存先を決めて、保存したい操作を行なった後、マクロの記録ボタンを押して処理を終了します。

■ セルの操作
Excelシート内の各セルに対する、VBA側からのライト/リード/セレクトはCells()を使用します。そのプロトタイプは以下の通りです。


Cells(Integer Row, Integer Col)


Rowは↓方向、Colは→方向にインクリメントし、1から始まるインデックス値になります。指定したセルに対するライトは"Cells() = "、リードは"= Cells()"で行ないます。セレクトは"Cells().Select"で行ないます。

■ セルの範囲セレクト
セルの開始位置(左上)と終了位置(右上)を指定してセルの選択を行なうにはRange()を使用します。そのプロトタイプは以下の通りです。


Range(Cells(開始位置), Cells(終了位置)).Select


■ シートセレクト
Excelのシートの選択にはSheets()を使用します。引数にはシート名とシートインデックスを使用する場合があります。まず、シート名を使用する際のプロトタイプは以下の通りです。


Sheets("シート名").Select


シート番号を使用する際のプロトタイプは以下の通りです。シート番号は1から開始します。


Sheets(シート番号).Select


■ 変数
数値はLong、文字列はStringを使用しておけばほとんど問題無いでしょう。


Dim num As Long
Dim str As String


■ ループ
C等とは少し記述方法が異なりますので、注意して下さい。特にExcel VBAでは、インデックスは1スタートが基本であることを忘れないで下さい。


For i = 1 To 10 Step 1
Next i

テーマ : Officeソフト
ジャンル : コンピュータ

2007-08-08 : Work-Win-Office/Acrobat : コメント : 0 : トラックバック : 0
Pagetop

特定の文字列を含んだファイル名のファイルをgrep

あるディレクトリ以下の、ある拡張子のみにgrepをかけたい時等に使用する方法です。


find . | grep \.txt | xargs grep hoge


やり方は他にもいろいろあるかと思いますが、これが一番簡単で応用の利くやり方だと思います。

"find ."でカレント(パスを指定しても可)のファイルリストを取得し、ファイルリストをgrepでフィルタリング。非マッチングファイルや、正規表現を使うとより細かくファイル指定可能です。

その後パイプでxargsにつないで改行を取り除いた後、普通にgrepをかけます。

テーマ : Linux
ジャンル : コンピュータ

2007-08-06 : Work-Linux-Command/Editor : コメント : 0 : トラックバック : 0
Pagetop

自動的に収入が得られるシステムを作ろう

・仕組みとは作ってしまえば自動的に収入が得られるシステム
・金持ち父さんとユダヤ人大富豪を読む
・仕事をするのもしないのも自由な状態を目指す

■ インターネットビジネス
・近藤勉さん
- 駐車場予約
- ただでホームページを作って信用を得る

・奥山祐介さん
- ビジネスマッチング
- メディアや発行部数の多いメルマガで信用を得る

・石井貴士さん
- プチリタイヤ関連ビジネス
- アナウンサーに内定した成功体験をノウハウにして商材にしている
- 思い付いたことをやってみる
- 失敗した理由を潰していくと必ず成功する

・森英樹さん
- メルマガによる広告収入
- 部数が増えても手間は変わらない
- ネタ切れにならないテーマ選び 役に立ったと思わせる工夫

・富田貴典さん
- 外国人向けドロップシッピング 無料翻訳サイトで世界中から客を集める
- アンケートでニーズを探る
- 有料サービスを作る
- メールアドレスを集め、オートレスポンダーでメールを送る
- 単価を安くして継続的に儲ける

■ 情報起業
・室賀博之さん
- タイトルとセールスレター
- 売れ筋商材は、恋愛、お金、ダイエット

■ ビジネスオーナー
・田渕裕哉さん
- 仲介してコミッション
- リピートが見込める商材を選ぶ
- 株を持って直接取引を防ぐ
- 他人の能力やスキルをうまく利用する

■ 投資
・藤山勇司さん
- 大家さん
- エリア限定
- 純利回り12%

・甲田英司さん
- 個人向けベンチャーキャピタル
- 継続的なコンサルタント料

■ 発明
・五十嵐隆雄さん
- 材料を継続的に販売するライセンス契約

■ テクニック
- テーマ決め
- Googleでリサーチ
- サイト構築
- SEO対策
- メルマガとの併用

■ 気づき
- 週末起業で始める
- クレジット決済等のASPを利用
- 自分はビジネスの新規開発や意志決定などに徹し、日常の業務は他人に任せる
- 長期的継続
- 常にビジネスの種を捜す
- マスコミを利用する
- 世界を相手にビジネスをする

参照:
http://www.amazon.co.jp/dp/4334934161/
2007-08-05 : Home-Money-Incoming : コメント : 7 : トラックバック : 0
Pagetop

1日30分間勉強する事を習慣化しよう

長期投資ならぬ長期勉強をしましょう。

・1日30分も勉強に使えない人は勉強したくない人
・勉強したい時がチャンス
・本は一冊づつ購入し、購入した日に読み始める
・本は読みたいと思ったら即購入
・本は消耗品
・記憶は繰り返しインプットしないと長期記憶化しない
・勉強の成果に1番必要な要素は時間
・勉強の成果はすぐに出ないので諦めない
・全体の20%が自己投資を惜しまないタイプで、この中だけで競争が行われる
・自己投資をすれば必ず数年後にリターンとして反ってくる
・テレビを見ない
・仕事の処理時間を先に決めて、仕事を早くこなす
・カフェ、電車を利用する
・歩いている時はiPod
・気持ちいい状態を作って勉強する
・集中→休憩のサイクルを短くする
・休憩中は別のインプットをする
・勉強に飽きたら場所を変える
・少ないくらいの勉強量で毎日続ける
・英会話はフレーズ丸暗記
・リスニングはフレーズ暗記+発音の訓練
・自分で発音できない音は気聞き取れない
・リーディングは二時間ひたすら英字新聞
・ライティングは英文を書いて添削してもらう
・先にゴールを決める、決断が1番大事
・目標を毎日読むことは自分の習慣を書き換える事
・食事は勉強の効率を下げる敵、よく噛んで腹八分にする
・7時間は寝る必要がある
・アーロンチェアフルセットがオススメ

参照:
http://www.amazon.co.jp/dp/4838717776/
2007-08-03 : Home-Money-Incoming : コメント : 0 : トラックバック : 0
Pagetop

emacsで必要最低限のコマンド

リファレンスはたくさんあるかと思いますが、本当に必要なものに絞ってまとめます。
基本的にエディタを立ち上げ、そこからファイルをオープン、クローズしながら使います。

・起動
emacs &

・フォント調整
Shift+マウス右クリック

・ファイルオープン
Ctrl+x Ctrl+f

・2画面
Ctrl+x 2

・1画面
Ctrl+x 1

・画面切り替え
Ctrl+x o

・カット
Ctrl+@でマークし、カーソルを移動した後、Ctrl+w

・ペースト
Ctrl+y

・ファイル切り替え
Ctrl+x b

・ファイルクローズ
Ctrl+x k

・終了
Ctrl+x Ctrl+c

テーマ : UNIX/Linux
ジャンル : コンピュータ

2007-08-02 : Work-Linux-Command/Editor : コメント : 0 : トラックバック : 0
Pagetop

Javaで正規表現を使用した文字列置換

文字列置換正規表現を使用した文字列置換を行ないます。正規表現の詳細はjava.util.regexパッケージのJava APIドキュメントをご参照ください。


import java.io.*;
import java.util.regex.*;

//
// ファイル入出力
//
public class Test {
public static void main (String[] args) {
try
{
FileReader inFile = new FileReader("input.txt"); // 入力ファイルオープン
BufferedReader inBuffer = new BufferedReader(inFile); // 入力ファイルリーダー
String line; // ファイル1行バッファ

while (!((line = inBuffer.readLine()) == null)) { // ファイルリード
//
// 正規表現による文字列置換
//
Pattern pattern = Pattern.compile("perl"); // 正規表現のパターン設定
Matcher matcher = pattern.matcher(line); // 対象文字列設定
System.out.println(matcher.replaceAll("java")); // 置換
}

inBuffer.close(); // 入力ファイルクローズ
}
catch (IOException e)
{
System.out.println("Error!!");
}
}
}

テーマ : プログラミング
ジャンル : コンピュータ

2007-08-01 : Work-Linux-C/C++/Java : コメント : 0 : トラックバック : 0
Pagetop

JavaのファイルIO

Fedora Core6でJavaを使用するにはSunのものを使用する方法もありますが、手間がかかるためにgcjを使用します。

gcjを使用するにはあらかじめ以下のパッケージをyumでインストールしておく必要があります。


gcc-java
libgcj
libgcj-devel


まず、実行用のMakefileを作成しておきます。


all: run

Test.class: Test.java
gcj -C Test.java

run: Test.class
java Test

clean:
rm -fr Test.class


次にファイルIOの例を示します。このコードはinput.txtをoutput.txtとして出力するものです。


import java.io.*;

//
// ファイル入出力
//
public class Test {
public static void main (String[] args) {
try
{
FileReader inFile = new FileReader("input.txt"); // 入力ファイルオープン
FileWriter outFile = new FileWriter("output.txt"); // 出力ファイルオープン
BufferedReader inBuffer = new BufferedReader(inFile); // 入力ファイルリーダー
BufferedWriter outBuffer = new BufferedWriter(outFile); // 出力ファイルリーダー
String line; // ファイル1行バッファ

while (!((line = inBuffer.readLine()) == null)) { // ファイルリード
line = line.concat("\n"); // 改行追加
outBuffer.write(line); // バッファへ挿入
outBuffer.flush(); // ファイルライト
}

inBuffer.close(); // 入力ファイルクローズ
outBuffer.close(); // 出力ファイルクローズ
}
catch (IOException e)
{
System.out.println("Error!!");
}
}
}

テーマ : プログラミング
ジャンル : コンピュータ

2007-08-01 : Work-Linux-C/C++/Java : コメント : 0 : トラックバック : 0
Pagetop
ホーム

プロフィール

Author:zive
大阪在住、男

ブログ検索

月別アーカイブ

FC2カウンター