4.C,Delphi,JAVA & パソコンのちょっとしたメモ(CONTENT)
このページの最終行に移動2Gバイトを超えるファイルサイズの取得(Delphi)
Rec: TSearchRec;
if FindFirst('a.dat', faAnyFile, Rec) = 0 then begin
ShowMessage(FormatFloat('#,##0',Rec.FindData.nFileSizeHigh shl 32
+ Rec.FindData.nFileSizeLow));
end
FormatFloat('#,##0',Rec.Size);ではinteger型(符号付き32ビット)のため
2147483647バイトまでしか表示できません。
C言語でフラグの管理をする
#include</stdio.h>
#define hat 0x01
#define shirts 0x02
#define pants 0x04
#define shoes 0x08
unsigned char wear=0x00;
main(){
//パンツとシャツを着ていることにする
//論理和
wear = wear|pants;
wear = wear|shirts;
//体に身につけているものを判断(論理積)
if(wear&hat){printf("帽子をかぶっている\n");}
if(wear&shirts){printf("シャツを着ている\n");}
if(wear&pants){printf("パンツはいている\n");}
if(wear&shoes){printf("靴を履いている\n");}
}
<説明>
wearは0(0x00[0000 0000])~255(0xff[1111 1111])であるが
2進数で表すと
hat [0000 0001]
shirts[0000 0010]
pants [0000 0100]
shoes [0000 1000]
分かりやすいように下位4ビットで説明
パンツ[0100]とシャツ[0010]を着ていることにするために、論理和をとると
wear [0110]
身に着けているものを判断するため論理積をとって調べる
hat [0110]&[0001] = [0000]
shirts[0110]&[0010] = [0010]
pants [0110]&[0100] = [0100]
shoes [0110]&[1000] = [0000]
c言語の条件式では「0」なら偽、「0」以外では真なので
シャツとパンツを身に着けていることが分かる
定型句の自動入力(Delphi)
> Ctrl+Jを入力すると、自動入力できます。
while do
begin
end;
C:\Program Files\Borland\Delphi6\Bin\DELPHI32.DCI
を編集することもできます。
型キャスト(Delphi)
(1)PCharにキャスト
var
Fname: string;
nSize:DWORD
begin
Fname := 'c:\abc.exe';
nSize := GetFileVersionInfoSize(PChar(Fname), nSize);
(2)Stringにキャスト
var
Cname: array[0..255] of Char;
Str:String;
begin;
GetComputerName(Cname,SizeOf(Cname));
Str = 'ComputerName = ' + String(Cname);
&を表示させる(Delphi)
「&&」と二つ並べると「&」を表現できます。
Showmessage('表示&&実行');
windows2000,xpにおけるコンピュータへの接続制限の対応(Memo)
Windows 2000 Professional,Windows XP
Professionalでは同時接続の最大数は10(Windows XP Home Editionでは5)ですが
下記のコマンドで切断までの時間を短くすることにより、接続可能な状態を作ります。
net config server /autodisconnect:1>
Accessのファイル作成者を見る(Memo)
メニューバーの[ファイル]-[データベースプロパティ」をクリックして確認します。
配布するときは注意しましょう。
Excelのファイル作成者を見る(Memo)
設定はexcelでメニューバーの[ツール]-[オプション]を選択し[全般]タブの[ユーザー名]ボックスで行います。
エクスプローラーのプロパティの[概要]タブで確認します。
[前回保存者]情報を消すにはどうすれば良いか分からなかったのでFpgchgを作ってしまいました。
配布するときは注意しましょう。
OLEAUT32.DLL(Memo)
「プログラム開始エラー FILEXIST.EXE ファイルは欠落エクスポート
OLEAUT32.DLL:VarNot にリンクされています。」
FILEXIST.EXE システムに装着してあるデバイスは動作しません。」
というメッセージがでることがあります。
このような場合はOLEAUT32.DLLのバージョンを上げてください。
VB6のランタイムをインストールする良いようです。
フレームで作成しているホームページから外部のサイトへジャンプする(Memo)
他のフレームが生きたまま、リンク元のフレームの中に外部サイトが表示されないようにするには
TARGET="_top"をつける
(例)
<a href="http://www.vector.co.jp/" TARGET="_top">
メールソフトからyahooメールを送信できないときは(Memo)
popで受信できれば送信もできますが、送信できない場合は次のことが考えられます。
プロバイダーが「Outbound Port25 Blocking」していてる可能性があるので
Submissionポートの設定を「25」から「587」に変更する必要があります。
キー入力が半角カナになってしまったとき(Memo)
[ctrl]+[CapsLock]で英数に直ります
htmlタグの特殊文字(Memo)
< <
> >
& &
" "
¥ ¥
隠しシステムファイルを消す(Memo)
DOSプロンプトで
attrib -s -h [filename]
del [filename]
もしくは、exploreのフォルダオプションの表示タブで
保護されたオペレーションシステムファイルを表示しないのチェックを外し
表示させ、exploreで消します。
自作パソコンのススメ
最近は一体型のパソコンが主流ですが、拡張性、故障したときを考えるとタワー型が優れています。自分自身、PC-9801、ノート、スリムデスクトップ、SOTECのマイ
クロタワーを使ってきましたが、タワー型が一番良かったと思っています。DELLなどのマイクロタワーで十分過ぎますが、拡張したときにサ
ポートが受けられなくなることを聞き、少し手間はかかりますが自作でもいいかなという認識です。費用的には自作よりもパソコン本体を購入した
方が安くなることもあります。ただ、パソコンを置くスペースがあれば、通販サイトの店舗を比較し一番価格の安いパーツを買い、プラスのドライ
バー1本でパソコンを作り上げることができます。組み上げた後も、パーツを買い拡張も可能です。OSについてもDSP版を購入することで費用
を抑えることができます。
自作するには、まず、CPUとPCケースを考えてからマザーボードを選ぶと良いと思います。そして電源ユニット、メモリ、光学ドライブ、
HDDを選びます。グラフィックボードは内臓されているもので済む場合もありますが、必要であればつけてください。後はお好みのマウスとキー
ボードとモニターです。OSはWindows、Linuxなどありますが、普通はWindowsを選択します。
パーツを選んだ後は、excelなどで表にまとめ金額を合計し予算と比べます。予算が超えていた場合は違うパーツに取り替えるなど修正を行っ
ていき、最終的な形を考えます。
以下は、各パーツのごとの説明となります。
【CPU】
IntelまたはAMDのCPUを選択します。そして、マザーボードもどちらか対応のものを選ぶことになります。CPUを買えば、CPUクー
ラーもついてきます(BOXと書いてあります)ので特にこだわりがなければ、別のCPUクーラーを買う必要はありません。また、CPUと
CPUクーラーをグリスを塗って接触させるとよくホームページに書いてありますが、新品の場合にはCPUに既についているので購入する必要は
ありません。2010/5月時点ではIntelでは Core
i7,i5,I3。AMDではPhenomII,AthlonIIがなどありますが、クアッドコアにするかデュアルコアで選択します(6コアも出てきています)。この中で
コストパフォーマンスが優れているのはAMDですがターボ・ブーストはIntelのCorei7,i5にあります。それとグラフィック機能内
蔵のものなど特性を考えて選んでください。価格は5000円位からありますが、全体の予算と使用用途(ゲーム、ワープロ、動画処理等)によっ
て考えてください。
【マザーボード】
CPUによって選ぶボードも変わってきますのでCPUを選んでからCPUスロットとチップセットを確認します。また、通常はATXですが、
PCケースの大きさが小さければMicroATXとなります。最近はS-ATA接続が主流ですが、昔のものはIDE接続です(両方ついている
ものもあります)。それとUSB3.0ですがマザーボードに装備しているものにするか、拡張カードで対応することもできます。次のような項目
がありますので、いろいろと確認する所があります。
・拡張スロット PCI-Express(1X,4X,8X)、PCIスロット
・メモリタイプ DDR3とメモリスロット数
・Serial ATA 接続可能数
・(IDE ) 接続可能数
・USB 接続可能数
・LAN
・(オンボードオーディオの有無)
・(オンボードグラフィックの有無)
・HDMI
価格は5000円位からあり、ASUS,GIGABYTE,ASRock,MSI,FOXCONNなどのメーカーがあります。
【PCケース】
通常はATXかMicroATXとなります。(Cube型もありますが)
3.5インチシャドウベイ(HDDなどで使用)と5.25インチベイ(DVDドライブなどで使用)の数とファンがついているかどうか確認します。ファンがついていない場合
はファンを後からつけた方がよいと思います。やはり最後は高さ、幅、奥行きを考えて購入してください。
マザーボードをPCケースにつける際は直接つけるのではなく、スペーサといわれるネジをつけた後にとりつけます。穴の場所はATXの場合はMicroATXのマザーボード
も取り付けることができます。
価格は4000円位からありサイズ,クーラーマスター,AOPEN,ANTEC,SILVERSTONE,GIGABYTEなどのメーカーが
あります。
【電源ユニット】
300W,500W,700Wなどいろいろありますが、電源供給が不十分だと誤動作する場合があるので500Wくらいは欲しいところです。グ
ラフィックボード他、機器を多く取り付ける場合は大きめにする必要があると思います。、
価格は3000円位からありHEC,KEIAN,玄人志向,オウルテック、エバーグリーンなどのメーカーがあります。
【メモリ】
2010/5月時点ではDDR3の2Gバイトが主流です。
規格がPC3-12800(DDR3-1600)、PC3-10600(DDR3-1333)などありますので、マザーボードに適合するか確認する必要があります。
価格が上下するので、変動を見て買いたいものです。
【光学ドライブ】
将来的にはBlu-Rayドライブと思います。ただ、価格がまだ高いのでDVDドライブで十分と思われます。2000円台で購入可能です
【HDD/SSD】
HDDでは2Tバイトのものが安くなってきています。システムはSSDを使用するのが流行っているみたいですが、HDDでも問題ないと思いま
す。ただ、大容量のHDDをシステム用として使うのはお勧めできないとホームページでよく見かけます。バックアップが大変という意味合いから
と思います。S-ATAのハードディスクを増設する場合はS-ATAケーブルを買う必要がありますが1000円弱位費用がかかります。IDE
のときは基本で4つケーブルがあったのですが。
【ビデオカード】
グラフィックボードとも言いますが、ATI/RADEONかNVIDIA/GeForceとなるでしょう。発売しているところは玄人志
向,GIGABYTE,ASUSなどいろいろあります。PCIExp 16Xに挿す形となります。
ゲーム、動画を扱う人にはあった方が良さそうです。
【マウス】
光学マウスを選びましょう。USBマウスが普通となってきたようです。無線のものがありますが、電池交換がありますのでメリット、デメリット
を考えて選択してください。
【キーボード】
USBキーボードがよさそうです。マウスと同様無線のものがあります。
【モニタ】
液晶モニタで21~24インチ位が良さそうです。最近はLCDのものが出てきました。
今後のためにHDMIがついているものがよいでしょう。
【テレビチューナー】
あればよいかもしれません。バッファローなど通常のユーザ向けのものから、KEIAN,SKNETなどマニア向けのものまであります。
TVtestなどのフリーソフトもあるようです。
【OS】
Windows7
ProfessionalがXPモードが使えて便利です。これからは64ビット版にするべきです。自作するならば周辺機器と合わせて買うことのできるDSP版がお買い得で
す。セットアップ後、認証が必要です。
excel2003とexcel2010の共存でexcel2010が起動できなくなったとき には(Memo)
excel2010優先なら"C:\Program Files\Microsoft
Office\OFFICE14\excel.exe" /regserver
excel2003優先なら"C:\Program Files\Microsoft
Office\OFFICE11\excel.exe" /regserver
VB4からVB2005のソースコンバートエラーについて(Memo)
VisualBaisc4からVisualBaisc2005にソースを移行したとき、Dao2535.tlbが無くてソースのコンバートができません。
ファイルを入手後
C:\Program Files\Common Files\Microsoft Shared\Dao\Dao2535.tlb
C:\Program Files\Common Files\Microsoft Shared\Dao\Dao350.dll
を入れcmd.exeを管理者権限で動かし、regsvr32 dao350.dllと実行します。
windows7の場合はフォルダがx86になっています。
c:\windwos\system32\MSJTER35.DLL
c:\windwos\system32\MSJINT35.DLL
c:\windwos\system32\MSVCRT40.DLL
がない場合はこれも入れてください。
HDDからデータが読めなくなり、フリーズしてしまうとき(Memo)
HDDに不良セクタが発生し、ファイルにアクセスすると動いているアプリがフリーズしてWindowsが操作できなくなりました
そのHDDの復旧方法についてまとめました
Linuxにdd_rescueというセクタ単位にコピーするツールがあり、不良セクタがあった場合は
読み飛ばしてくれるものです
Windowsの環境ではないので、環境が必要ですが、KnoppixなどのCDやDVDから
起動できるものを使用すると便利です
今回はknoppix_v5.3.1CD_20080326-20080520-AC.isoを使用して行いました
サイトからダウンロードしCDRに焼き、起動させます。
1.起動オプションを聞いてくるので「knoppix noswap」としてハードディスクにスワップファイルを作らないようにします
2.ルート権限のコンソールを開き、dd_rescue /dev/hdb /dev/hda
入力ドライブと出力ドライブは環境によって変えてください
2TBで2日間弱かかりました。
3.Windowsで起動して、chkdskを行いますが、ディスクのプロパティのツールから
「ファイルシステムエラーを自動的に修復する」を選び実行します。
[ルート権限のコンソールを使うには]
a.コンソールで「sudo -s」
b.仮想コンソール X-windowからCTRL+ALT+F2、もとに戻るにはCTRL+ALT+F?
c.メニューよりroot shellを選ぶ
[途中から流すには]
dd_rescue -i87301 -o87301 /dev/hdb /dev/hda
[HDDを名前が分かる方法]
X-windowでHDDの名前と中身を確認できます。
SATAのHDDの場合はsda、sdb、sdc・・・
IDEのHDDの場合はhda、hdb、hdc・・・
パーティションが分かれているとsda1、sda2などのようになります
Delphiライクなフリーの開発環境(Memo)
Delphi6は入手できなくなっていますので、これからpascalを使うことは難しくなっています。
また、64ビットのプログラムを作るにもDelphi6ではできません
そこで、フリーのpascalコンパイラがありますので、紹介します。
【lazarus】 dephiのソースそのままではコンパイルが通らないようなので、変更してコンパイルが必要です
共有ファイルにバッチファイルでアクセスするには(Memo)
DOSプロンプトでコピーなどしようとしても、初回は接続できていない為、共有ファイルが参照できません
一度、エクスプローラで接続すればよいのですが、バッチファイルで自動化する場合は次のコマンドを使って接続します
ログインするには
net use \\192.168.xxx.yyy /user:Username password
ログアウトするには
net use * /delete /yes
cドライブ以外のルートにmsdia80.dllがあるとき(Memo)
msdia80.dllを、C:\Program Files\Common Files\Microsoft Shared\VC
にコピー
管理者権限のDOSプロンプトで
regsvr32 "c:\Program Files\Common Files\Microsoft
Shared\VC\msdia80.dll"
成功のダイアログが表示されいます。
うまくいったら、もとのmsdia80.dllを消します。
スマホで見ると画像横の文章の見栄えが悪い時
画像の近くにある文章を回り込ませている場合、スマホで表示すると見栄えが悪くなるときがあります。
スマホの場合、レスポンシブウェブデザインのCSSで「@media screen and (max-width:
767px)」のように画面サイズによって定義することができるため
スタイル定義の項目名を .imgL { float : none ; }のように
スマホサイズの場合は回り込みをやめる定義をすると表示がきれいになります。
オープンソースソフトウェアのススメ
オープンソースソフトウェアはOSSと略されていますが、ソースコードが公開されているところがフリーソフトと違う所です。使用するにあた りライセンス条項を理解して、それに合うように運用していく必要があります。
GPL(GNU General Public License)
LGPL(GNU Lesser General Public License)
AGPL (GNU Affero General Public License)
BSD(Berkeley Software Distribution License)
New BSD License
MIT License
MPL(Mozilla Public License)
EPL (Eclipse Public License)
IBM ICU License
Apache License 2.0
などが一例です。
企業でも使用することが多くなり、家電製品でも使用しているものも見受けられます。
どのようなものがあるかというと
[RDB]
・MySQL
・PostgreSQL
[ETL]
・Pentaho
・Talend
[インメモリDB]
・VoltDB
[BI]
・Pentaho
・JasperReportso
・Power BI
・Eclipse BIRT
[帳票作成]
・JasperStudio
・Eclipse BIRT
[メールサーバ]
・sendmail
・OPEN SSL
・OPEN SSH
[アプリケーションサーバ]
・Tomcat
・JBOSS
[ファイルサーバ]
・SAMBA
・hinemos
基本的に自分でコミュニティなどを通して解決する必要がありますが、英語のサイトでは厳しいところがあります。費用がかかりますが、日本で もOSSのサポートを行っていることろが増えていますので、導入、解決の敷居は低くなっています。
talendについて(Memo)
Talend Open StudioはオープンソースのETLツールで、無料で使用できます。
(ETL ・・・ Extract、Transform、Loadの略でデータを抽出し、加工、データベースなどに出力)
有償版はサーバで環境に導入しグループで開発できますが、無料版はスタンドアロンのパソコンに導入して使用します。
作成した処理はZIP形式でエクスポートができ、エクスポートしたZIPファイルを展開することでTalendをインストールしていないパソコンでもプログラムが動きます。
解凍したフォルダには作成したJARファイルとライブラリ、実効するためのバッチファイルなどが入っています。実行するにはJAVAが必要です。
インストールは簡単でダウンロードしたZIPファイル任意のフォルダに解凍します。そのため、違うバージョンのTalendを1つのパソコンで管理できUSBに入れることもできます。
初期設定としては
(1)最初の実行時にプロジェクトの選択画面で新規プロジェクトを作成 「Local_Project」の選択状態(デフォルト)のまま「終了」ボタンを押下します。
(2)実行すると、TalendForgeへの接続ダイアログが起動しますが、右下の「スキップ」ボタンを押下します
(3)最初に表示される Additional Talend Packages ダイアログで、次のサードパーティライブラリを選択します。
・Optional third-party libraries
・Required third-party libraries
選択後、右下の「終了」ボタンを押下します。
(4)承認する必要があるすべてのサードパーティーライセンスが表示されるので、「選択されたライセンスに同意します」を選択して、「全て同意」ボタンを押下します。
(5)追加ライブラリのダウンロードが完了するまでしばらく待ちます。100%になったら完了です。
様々な種類のファイル(excel,csv,xmlなど)やDBの使用可能、マッピング機能、と無償版でも十分な機能ですので、データ加工を伴うバッチ処理をする場合にとても有効なツールです。
そのほかにも、自作の関数の作成、Javaコードでの処理の作成、分岐処理、ユーザコンポーネント(Talend Exchangeにログイン必要)対応も素晴らしいところです
sort[unix]のオプション(Memo)
Unixのsortは便利ですが、よく使うオプションです。
CSVファイルをインプットにし、項目2は昇順、項目1は降順、項目3は数値として昇順
sort -t, -k 2,2 -k 1,1r -k 3,3n
数値のオプションはgまたはnです。
123,3を昇順にした場合、数値のオプションをつけないと123<3となります。
talendの文字コード設定(Talend)
talendで入力ファイル、出力ファイルのシフトJISの設定はメニューにはありませんが「MS932」「SJIS」を指定します。
talendのシンタックスエラー(Talend)
talendで「Syntax error on token "Invalid Character",delete this token」を出て困ったときは、項目名に
使用できない文字が入っている場合があります。例えば「(」「)」「・」の文字でエラーがでていました。
出力ファイルの項目名に中黒や括弧はダメなようです。
talendのエラーの理由を調べる(Talend)
talendでjavaのエラーの行数が出ていますのが、その内容が分からないときは
[design]タブから「code」タブに切り替えるとjavaのソースが出てきます。
その行数でエラーが分かりますが、右クリックのメニューでブレイクポイントも設定可能です。
talendのファイル個別の設定をするには(Talend)
talendでリポジトリを設定すると楽ですが、ファイル名を個別に変更したいときなどに「組み込み」に変更するとよいです。
[コンポーネント]タブからプロパティを組み込みに変更します。
キーが同じだった場合、読んだ順に出力するsort[unix]のオプション(Memo)
Unixのsortは指定した項目で並び替えたときに、同じ並び順なら若い項目順の出力になります
これを同じ並び順のときに読み込んだ順に出力するオプション(-s)があります。
sort -s -t, -k 2,2
1,a → 1,a
2,a → 2,a
0,a → 0,a
stabilize sort by disabling last resort comparison
安定ソート 最終手段の比較を無効にする
sort -t, -k 2,2
「-s」オプションをつけないと次のように出力されます。
1,a → 0,a
2,a → 1,a
0,a → 2,a