テキスト広告:Amazon Primeday

金曜日, 9月 26, 2008

[VB2005]Load後のイベント処理(初期表示処理)

▼質問
初期表示で特定のコントロールにフォーカスをしたいんだ。

そこで、Loadイベントの最後でFocusイベントを入れたんだが、うまくいかないんだ。

どうやったらできるか教えてくれ!

▼回答
フォームのイベントには、Loadイベントの後に実行されるイベントがあるんだ。

それは、フォームが初めて表示されるたびに発生するイベントなんだ。

だから、初期表示に1回だけ実行したい処理は、そこに入れればいいんだ。

そのイベントとは、Shownイベントだ。

■参考サイト
Form メンバ (System.Windows.Forms)
http://msdn.microsoft.com/ja-jp/library/system.windows.forms.form_members(VS.80).aspx

月曜日, 9月 15, 2008

[VB2005]DataGridの行の高さを固定にする

▼質問
DataGridの高さを固定にしたいんだ。どうやったらできるか教えてくれ!

▼回答
DataGridの高さを制御するには、Layoutイベントで高さを制御すればできるんだ。

行を追加する後に、現在値の高さをPreferredRowHeightプロパティに設定する。

LayoutイベントでSetRowHeight関数を呼んでやることで制御できる。

PreferredRowHeightプロパティに現在値(前回値)を設定する。

If (Me.DataGrid1.VisibleRowCount > 0) Then
Me.DataGrid1.PreferredRowHeight = _
GetRowHeight(i, Me.DataGrid1.PreferredRowHeight, Me.DataGrid1)
End If

行の高さを取得・設定する関数

Private Sub SetRowHeight()
'全行数分ループする
For i As Integer = 0 To Me.DataGrid1.VisibleRowCount - 1
If (Me.DataGrid1.PreferredRowHeight <> _
GetRowHeight(i, Me.DataGrid1.PreferredRowHeight, Me.DataGrid1)) Then
SetRowHeight(i, Me.DataGrid1.PreferredRowHeight, Me.DataGrid1)
End If
Next i
End Sub

Public Function GetRowHeight(ByVal Row As Integer, ByVal height As Integer, ByVal oDG As DataGrid) As Integer
Dim p As Reflection.PropertyInfo = _
GetType(DataGrid).GetProperty("DataGridRows", _
Reflection.BindingFlags.FlattenHierarchy Or _
Reflection.BindingFlags.IgnoreCase Or _
Reflection.BindingFlags.Instance Or _
Reflection.BindingFlags.NonPublic Or _
Reflection.BindingFlags.Public Or _
Reflection.BindingFlags.Instance Or _
Reflection.BindingFlags.Static)

Dim obj As Object = _
CType(p.GetValue(oDG, _
Reflection.BindingFlags.Instance Or Reflection.BindingFlags.Static Or _
Reflection.BindingFlags.GetProperty Or Reflection.BindingFlags.Public Or _
Reflection.BindingFlags.SuppressChangeType, _
Nothing, Nothing, Nothing), Object)

If (Row < propertyinfo =" _" object =" _" type =" _" height =" height">



■参考サイト
VBレスキュー(花ちゃん)のVB.NET・VB2005用掲示板
http://hanatyan.sakura.ne.jp/vbnetbbs/wforum.cgi?no=7871&reno=7851&oya=7850&mode=msgview&page=0
DataGridの行の高さを文字列にあわせて設定する: DOBON.NETプログラミング掲示板過去ログ
http://dobon.net/vb/bbs/log3-27/15680.html

日曜日, 9月 14, 2008

[VB2005]DataGridの幅を固定にする(操作不可)

▼質問

DataGridのヘッダを表示すると列の幅が変更できるんだ。これを、固定表示にしたいんだ。

どうやったらできるか教えてくれ!

▼回答

DataGridには、列の幅を固定にするプロパティはないんだ。だから固定にはできないんだ。

だけど、カスタムコントロールを作成して列の幅の変更操作をできないようにすればできるよ。

その方法の一部を下記に示しておくから参考にしてくれ!

DataGridTextBoxColumnの参考例

Public MyWidth As Integer = 0
Public MyWidthFlag As Boolean = False

'''
''' コントロールの幅を取得または設定します。
'''

''' コントロールの幅。
Public Property CustomWidth() As Integer
Get
Return MyWidth
End Get
Set(ByVal value As Integer)
Me.MyWidth = value
End Set
End Property

'''
''' コントロールの幅を固定にできるかの有無を示す値を取得または設定します。
''' 幅を固定にできる場合は true。それ以外の場合は false。既定値は false です。
'''

''' コントロールの幅を固定にできるかの有無。
Public Property CustomWidthFlag() As Boolean
Get
Return MyWidthFlag
End Get
Set(ByVal value As Boolean)
Me.MyWidthFlag = value
End Set
End Property

Private Sub DataGridCustomTextBoxColumn_WidthChanged( _
ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.WidthChanged
Dim obj As DataGridCustomTextBoxColumn = _
CType(sender, DataGridCustomTextBoxColumn)
If (obj.MyWidthFlag) Then obj.Width = obj.MyWidth
End Sub


■参考サイト

DataGridの列の幅をユーザーが変更できないようにする: .NET Tips: C#, VB.NET, Visual Studio

http://dobon.net/vb/dotnet/datagrid/lockcolumnwidth.html

土曜日, 9月 13, 2008

[VB2005]DataGridBoolColumnのチェックボックスを制御する

▼質問
DataGridにチェックボックを表示するためにDataGridBoolColumnを使ってチェックボックスを

作成したんだけど、プログラムからチェックボックスのチェックを表示・非表示するやり方が

わからないんだ。どうやったらできるか教えてくれ!

▼回答
MouseClickイベントに下記のコードを記述すればできるから参考にしてくれ!!


Dim dg As DataGrid = CType(sender, DataGrid)
Dim row As Integer = dg.CurrentCell.RowNumber : Dim col As Integer = dg.CurrentCell.ColumnNumber
If (dg.TableStyles.Item(0).GridColumnStyles(col).GetType.Name = "DataGridBoolColumn") Then
Dim BoolColumn As DataGridBoolColumn = _
CType(dg.TableStyles.Item(0).GridColumnStyles(col), DataGridBoolColumn)
Dim Bind As BindingManagerBase = _
Me.BindingContext(DirectCast(dg.DataSource, DataTable))
Dim value As Boolean = False
Dim drv As DataRowView = _
CType(DirectCast(Bind.Current, DataRowView), DataRowView)
Dim value As Boolean = _
CBool(IIf(CType(BoolColumn.PropertyDescriptor.GetValue(drv), Boolean), _
False, True))
BoolColumn.PropertyDescriptor.SetValue(drv, value)
End If
BoolColumn.DataGridTableStyle.SelectionBackColor = SystemColors.Window


■参考サイト
VB コントロールのデータ連結
http://homepage1.nifty.com/rucio/main/VBdotNet/Database/Database6.htm

金曜日, 9月 12, 2008

[VB2005]DataGridを編集可能で新規追加行(*行)を非表示にする

▼質問

DataGridを編集可能にすると新規追加行(*行)が表示されるんだ。

これを表示しないようにする方法はないのか教えてくれ!

▼回答

あるよ!下記のサイトを参考にしてくれ!

■参考サイト

DataGridの一番下の新しい行(*行)が表示されないようにする: .NET Tips: C#, VB.NET, Visual Studio

http://dobon.net/vb/dotnet/datagrid/allownew.html

おーすばらしい!!できた。

関数にしてみた。


Public Sub SetAllowNew(ByVal b As Boolean, ByVal oDG As DataGrid)
Dim objCurrencyManager As CurrencyManager = _
CType(oDG.BindingContext(oDG.DataSource, oDG.DataMember), CurrencyManager)
'DataViewを取得する
Dim objDataView As DataView = CType(objCurrencyManager.List, DataView)
'新しい行の追加を設定する
objDataView.AllowNew = b
End Sub
 
▼質問
「CurrencyManager」って何?
 
▼回答

オブジェクトのプロパティ値とコントロールのプロパティ値との間の単純バインディングの

リストを管理するオブジェクトらしい。

▼質問

新規追加行は表示されずに編集は可能になったんだけど・・・。

これだと、全てのセルが編集可能になってしまって困るんだ。

特定のセルだけを編集可能にするにはどうしたらいいの?

▼回答

DataGridのCurrentCellChangedイベント、MouseClickイベント、MouseDownイベント、

MouseUpイベントでカレントセルをチェックするればできるよ。

こんな関数を作成してみたから、参考にしてくれ!

各イベントで呼ぶだけでOKだ!!



Private Sub CheckCurrentCell(ByVal sender As Object, _
ByVal e As System.Windows.Forms.MouseEventArgs)
Dim dg As DataGrid = CType(sender, DataGrid)
Dim row As Integer = dg.CurrentCell.RowNumber
Dim col As Integer = dg.CurrentCell.ColumnNumber
Select Case dg.CurrentCell.ColumnNumber
Case 対象列番号
Case Else
End Select
End Sub

月曜日, 9月 01, 2008

[VB2005]SystemColorsからBrushの変換

▼質問
SystemColorsで使っている色をBrushクラスに変換したいんだ。どうしたらできるんだい。

▼回答
SolidBrushクラスを使用してやればできるよ。下記を参考にしてくれ!

Dim b As Brush = New SolidBrush(SystemColors.ActiveCaption)

月曜日, 8月 11, 2008

[VB2005]DataGridのセルの色替え

▼質問
DataGridのセルの色を替えたいんだけど・・・どうしたらできるの?

▼回答
DataGridTextBoxColumnを継承してオリジナルのクラスを作成すればできるよ。

細かいところは、次のサンプルを参照してくれ!!


Public Class DataGridCustomTextBoxColumn
Inherits DataGridTextBoxColumn

Private MyBackColor As Color = SystemColors.Window
Private MyForeColor As Color = SystemColors.WindowText

'/******************************************************************************/
' Paint処理
'/******************************************************************************/
Protected Overloads Overrides Sub Paint(ByVal g As Graphics, _
ByVal bounds As Rectangle, _
ByVal [source] As CurrencyManager, _
ByVal rowNum As Integer, _
ByVal backBrush As Brush, _
ByVal foreBrush As Brush, _
ByVal alignToRight As Boolean)

'基本クラスのPaintメソッドを呼び出す。
MyBase.Paint(g, bounds, source, rowNum, _
New SolidBrush(MyBackColor), _
New SolidBrush(MyForeColor), alignToRight)

End Sub

'''
''' コントロールの背景色を取得または設定します。
'''

''' コントロールの背景色を表す System.Drawing.Color。
Public Property BackColor() As Color
Get
Return MyBackColor
End Get
Set(ByVal value As Color)
MyBackColor = value
End Set
End Property

'''
''' コントロールの前景色を取得または設定します。
'''

''' コントロールの前景色を表す System.Drawing.Color。
Public Property ForeColor() As Color
Get
Return MyForeColor
End Get
Set(ByVal value As Color)
MyForeColor = value
End Set
End Property

End Class

■参考サイト
DataGrid内の特定のセルの色を変える: .NET Tips: C#, VB.NET, Visual Studio
http://dobon.net/vb/dotnet/datagrid/coloredcell.html

[VB2005]DataGridのDataGridBoolColumn

▼質問
DataGridにチェックボックスをDataGridBoolColumnを使って表示したんだが・・・

半透明の状態で表示されるんだ。どうしてか教えてくれ!

▼回答
DataColumnのDataTypeに、「GetType(Boolean)」が設定されているかチェックしてくれ!!

■参考サイト
@IT:.NET TIPS DataGridコントロールの入力項目でチェック・ボックスを使用するには? - C# VB.NET Windowsフォーム
http://www.atmarkit.co.jp/fdotnet/dotnettips/105dgchkbox/dgchkbox.html

水曜日, 8月 06, 2008

[VB2005]Application.myappのエラー

▼質問
既存の画面をコピーして画面を作成しようとしたら次のエラーがでるんだ。

「カスタム ツール エラー: ファイルの生成に失敗しました: XML ドキュメント (1,1) でエラーが発生しました。 Application.myapp」

どうしたら解決するか教えてくれ!

▼回答
俺には、わからんかった。(>_<)

結局、バックアップしてあったファイルを上書きして対処したよ!

▼追記
この問題の原因がわかった。(^^)v

プロジェクトファイル(「プロジェクト名.vbproj」)から下記のコードが削除されていることがわかった。


True
Application.myapp


これを、下記の前にコピーしたら解決した。


True
True
Resources.resx


■参考サイト
MyApplicationCodeGeneratorの警告 - MSDN フォーラム
http://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=324276&SiteID=7

木曜日, 7月 31, 2008

[VB2005]DataGridのヘッダとデータのスタイル

▼質問
DataGridのヘッダとデータのスタイルを変更することはできないの?

▼回答
できないよ!でも方法がないわけじゃないみたいだけど・・・。

参考サイトを覗いてみてくれ!!

この方法がいやなら、DataGridをヘッダとデータで分けて作成すればできるよ。

■参考サイト
DataGridの列ヘッダテキストの配置方法のみを変更する: .NET Tips: C#, VB.NET, Visual Studio
http://dobon.net/vb/dotnet/datagrid/aligncolumnheaderonly.html

月曜日, 7月 28, 2008

[VB2005]DataGrid関連

▼質問
DataGridを追加すると紺色の帯が上の部分に表示されるんだけど?!

これは何?消せないの?

▼回答
グリッドの上部に表示できるキャプション(=タイトル)だよ。

消し方は、プロパティの「CaptionVisible 」を「False」に設定するか、次のコードを書くかどちらかだね!
Me.DataGrid1.CaptionVisible = False

▼質問
タイトルを表示したいんだけど・・・サンプルはないかな?

▼回答
とりあえず、次に示しておくから参考にしてくれ!

Dim objDataSet As New DataSet
Dim objDataTable As DataTable = New DataTable("objDataTable")

DataGrid1.TableStyles.Clear()
DataGrid1.DataSource = Nothing

Dim strName() As String = {"タイトル1", "タイトル2", "タイトル3"}
Dim intColumnWidth() As Integer = {50, 100, 150}
Dim TableStyle As DataGridTableStyle = New DataGridTableStyle()

For i As Integer = 0 To strName.Length - 1
'タイトル名称設定
Dim DataColumn As DataColumn = New DataColumn
DataColumn.ColumnName = strColumnName(i)
objDataTable.Columns.Add(DataColumn)
DataColumn.Dispose()
DataColumn = Nothing
'タイトルスタイル設定
Dim TextBoxColumn As DataGridTextBoxColumn = New DataGridTextBoxColumn
TextBoxColumn.MappingName = strName(i)
TextBoxColumn.HeaderText = strName(i)
TextBoxColumn.Width = intColumnWidth(i)
TableStyle.GridColumnStyles.Add(TextBoxColumn)
TextBoxColumn.Dispose()
TextBoxColumn = Nothing
Next i

TableStyle.MappingName = "objDataTable"
TableStyle.AllowSorting = False
TableStyle.HeaderFont = DataGrid1.HeaderFont
DataGrid1.TableStyles.Add(TableStyle)
TableStyle.Dispose()
TableStyle = Nothing

objDataSet.Tables.Add(objDataTable)
DataGrid1.DataSource = objDataSet.Tables("objDataTable")

▼質問
タイトルは、表示できたんだけど・・・。グリッドの左に表示されている列の幅を制御したいんだ!

どうしたらいいか教えてくれ!!

▼回答
それは、「行ヘッダー」って言うんだ。プロパティの「RowHeaderWidth」を設定すれば幅を制御

できるよ。行ヘッダーを非表示にしたい時は、「RowHeadersVisible」を「False」に設定すれば

非表示にできるんだ。「RowHeaderWidth」を、「0」に設定しても非表示にはならないから気を

つけてくれ!あと、15以下を設定しても幅は最小幅が決まっているので最小幅以下には変わら

ないから気をつけてくれ!

▼質問
今度は、データをグリッドに表示したいんだ。どうしたらいいの?

いろいろやってみたが、うまくいかないんだ!

DataGridの内容をDataSetにバインドできればできそうな気がするんだけど・・・。

▼回答
いいとこついてるね!それで、できるよ!

こうやってやればいいんだ。

Dim objDataSet As New DataSet
Dim objDataTable As DataTable = DirectCast(DataGrid1.DataSource, DataTable)
objDataSet.Tables.Add(objDataTable.Copy())

これで、データを追加する準備が整ったから、次に、このコードを書いて行が追加できるよ!

objDataTable.Rows.Add(New [Object]() {"データ1", "データ2", "データ3"})

▼質問
セルを選択すると選択した内容が反転表示するんだ。行毎で選択したいんだ!どうしたらいいの?

▼回答
DataGridの「Paint」イベントに次のコードを追加するとできるぞ!試してみてくれ!!

Me.DataGrid1.Select(Me.DataGrid1.CurrentCell.RowNumber)

■参考サイト
DataGrid コントロール (Windows フォーム)
http://msdn.microsoft.com/ja-jp/library/keb37h7b(VS.80).aspx
DataGridのレコードセレクタについて - Insider.NET
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=9895&forum=7
DataGridの中身をDataSetにテーブルとして保存する方法 (初心者) -OKWave
http://okwave.jp/qa2114885.html
@IT:.NET TIPS DataGridコントロールを行選択モードにするには? - C# VB.NET Windowsフォーム
http://www.atmarkit.co.jp/fdotnet/dotnettips/126dgselline/dgselline.html
Visual Basic .NET を使用して DataTable 間で DataRow をコピーする方法
http://support.microsoft.com/kb/305346/ja

金曜日, 7月 04, 2008

個人情報保護対策(定義・プライバシーポリシー/ステートメント)

■個人情報定義
個人情報ドットコム:個人情報保護対策:個人情報定義
http://www.kojinjoho.com/privacymesure/01.html

■プライバシーポリシー
個人情報ドットコム:個人情報保護対策:プライバシーポリシー
http://www.kojinjoho.com/privacymesure/02.html

■プライバシーステートメント
個人情報ドットコム:個人情報保護対策:プライバシーステートメント
http://www.kojinjoho.com/privacymesure/03.html

木曜日, 7月 03, 2008

[PHP]WordPressとMySQLのインストール or トラブルシューティング

▼質問
ブログツールのWordPressをWindowsで動かしたいんだ。どうやったらいいか教えてくれ!

▼回答
ここでは、IISでPHPが動いていることを前提に話すから、そこまではやっておいてくれ!

1.MySQLを下記のサイトからダウンロードする。
  今回はバージョン4.1.22のmysql-4.1.22-win32.zipをダウンロードした。
  http://dev.mysql.com/downloads/mysql/4.1.html
2.ダウンロードしたファイルを解凍する。Setup.exeファイルができる。
3.「Setup.exe」をダブルクリックすると対話形式でインストールができる。その手順を下記に示す。
①「Next >」ボタンを押下する。
②「Custom」を選択し、「Next >」ボタンを押下する。
③インストールディレクトリの変更がなければ、「Next >」ボタンを押下する。
 インストールディレクトリを変更したい時は、ここで「Change」ボタンをクリックし指定する。
④インストール内容を確認し、「Install」ボタンを押下する。
⑤「Skip Sign-Up」を選択し、「Next >」ボタンを押下する。
⑥「Finish」ボタンを押下する。
⑦「Next >」ボタンを押下する。
⑧「Detailed Configuration」を選択し、「Next >」ボタンを押下する。
⑨「Developer Machine」を選択し、「Next >」ボタンを押下する。
⑩「Multifunctional Database」を選択し、「Next >」ボタンを押下する。
⑪テーブルスペースのドライブとディレクトリの場所を確認し、「Next >」ボタンを押下する。
⑫「Decision Support(DSS)/OLAP」を選択し、「Next >」ボタンを押下する。
⑬ネットワークオプションを確認し、「Next >」ボタンを押下する。
⑭「Manual Selected Default Character Set / Collation」を選択する。
 Character Setから「sjis」を選択し、「Next >」ボタンを押下する。
⑮Windowsオプションを確認し、「Next >」ボタンを押下する。
⑯「Modify Security Settings」のみがチェックされていることを確認する。
 パスワードを入力し、「Next >」ボタンを押下する。
⑰「Execute」ボタンを押下する。
⑱「Finish」ボタンを押下し、MySQLのインストールは終了です。
4.WordPressを下記のサイトからダウンロードする。
  今回はバージョン2.3.3のwordpress-2.3.3-ja.zipをダウンロードした。
  http://ja.wordpress.org/releases/
2.ダウンロードしたファイルをIISが動いているホームディレクトリに解凍する。
  例: C:\InetPub\wwwroot\wordpress
3.「インターネット インフォメーション サービス」 から仮想ディレクトリの設定をする。
  設定方法については省略する。下記参照。
  http://phponwindows.net/WordPress.aspx
4.WordPress用のデータベースをMySQLに作成する。
  実行した手順を下記に示す。コマンドプロンプトから次の実行を行う。

①ログイン
C:\>mysql -u root -p
Enter password: *****
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2 to server version: 4.1.22-community-nt

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

②データベースの作成
mysql> create database wordpressdb;
Query OK, 1 row affected (0.02 sec)

mysql> show create database wordpressdb;
+-------------+----------------------------------------------------------------------+
Database Create Database

+-------------+----------------------------------------------------------------------+
wordpressdb CREATE DATABASE `wordpressdb` /*!40100 DEFAULT CHARACTER SET sjis */
+-------------+----------------------------------------------------------------------+
1 row in set (0.02 sec)

③ユーザーの作成
mysql> grant all on wordpressdb.* to 'user'@'localhost' identified by 'pass';
Query OK, 0 rows affected (0.17 sec)

5.

▼質問
次のエラーが出てデータベースに接続できないんだ。どうしてなのか教えてくれ!

C:\Program Files\MySQL\MySQL Server 4.1\bin>mysqladmin ping -u root -p
Enter password: *****
mysqladmin: connect to server at 'localhost' failed
error: 'Can't connect to MySQL server on 'localhost' (10061)'
Check that mysqld is running on localhost and that the port is 3306.
You can check this by doing 'telnet localhost 3306'

タスクマネージャにもmysql.exeがいるのに?!なぜ、つながらない!!

▼回答
も一度、インストールしなおせばうまくいくかもよ!

もう一回、インストールしてみることにしよう!

うまくつながった!v(^^)v

▼質問
http://localhost/wordpress/wp-admin/install.phpを実行すると次のエラーが出る。
「データベース接続確立のエラー」

▼回答
次のコマンドを試してみてくれ!

SET PASSWORD FOR root@localhost = OLD_PASSWORD('*****')

水曜日, 7月 02, 2008

[C#]ファイル操作

▼質問
C#でファイルを操作したいんだ。どうやったらできるか教えてくれ!

▼回答
主に2通りのやり方があるんだ。そのやり方のサンプルを示しておくから参考にしてくれ!

private void FileTest()
{
if (!System.IO.Directory.Exists("Dir")) System.IO.Directory.CreateDirectory("Dir");
string fileName = string.Format(@"Dir\{0}.txt", System.DateTime.Now.ToString("yyyyMMddHHmmss"));
string contents = "";
for (int i = 0; i < 5; ++i)
{
contents = contents + string.Format("Test file RowNo. {0}\n", i + 1);
}
System.IO.File.WriteAllText(fileName, contents);
}

private void StreamWriterTest()
{
if (!System.IO.Directory.Exists("Dir")) System.IO.Directory.CreateDirectory("Dir");
string fileName = string.Format(@"Dir\{0}.txt", System.DateTime.Now.ToString("yyyyMMdd"));
System.IO.StreamWriter sw = new System.IO.StreamWriter(fileName);
string contents = "";
for (int i = 0; i < 5; ++i)
{
contents = contents + string.Format("Test file RowNo. {0}\n", i + 1);
}
sw.WriteLine(contents);
sw.Close();
}

private void StreamReaderTest()
{
if (!System.IO.Directory.Exists("Dir")) System.IO.Directory.CreateDirectory("Dir");
string fileName = string.Format(@"Dir\{0}.txt", System.DateTime.Now.ToString("yyyyMMdd"));
System.IO.StreamReader sr = new System.IO.StreamReader(fileName);
string line;
while ((line = sr.ReadLine()) != null)
{
Console.WriteLine(line);
}
sr.Close();
}

土曜日, 6月 21, 2008

[PHP]WindowsでPHP

▼質問
WindowsにPHPをインストールしたいんだ。インストール手順を教えてくれ!

▼回答
1.PHPを下記のサイトからダウンロードする。
  今回はバージョン3.2.3のphp-4.2.3-Win32.zipをダウンロードした。
  http://jp.php.net/releases/index.php
2.ダウンロードしたファイルをC:\に解凍し、フォルダ名をphpにする。
3.解凍してできた下記のファイルを複製しファイル名をphp.iniに変更する。
4.変更したphp.iniファイルの設定内容を変更する。
①magic_quotes_gpc を修正する。
; Magic quotes for incoming GET/POST/Cookie data.
; magic_quotes_gpc = On
magic_quotes_gpc = Off
②文字コードを修正する。
; As of 4.0b4, PHP always outputs a character encoding by default in
; the Content-type: header. To disable sending of the charset, simply
; set it to be empty.
;
; PHP's built-in default is text/htmldefault_mimetype = "text/html"
;default_charset = "iso-8859-1"
default_charset = "Shift_JIS"
③PHPの拡張関係のディレクトリを設定する。
; Directory in which the loadable extensions (modules) reside.
; extension_dir = ./
extension_dir = "C:\php\extensions"
④マルチバイト(日本語など)が使えるように設定する。
;Windows Extensions;Note that MySQL and ODBC support is now built in, so no dll is needed for it.
;
;extension=php_bz2.dll
;extension=php_ctype.dll
;extension=php_cpdf.dll
;extension=php_curl.dll
;extension=php_cybercash.dll
;extension=php_db.dll
;extension=php_dba.dll
;extension=php_dbase.dll
;extension=php_dbx.dll
;extension=php_domxml.dll
;extension=php_dotnet.dll
;extension=php_exif.dll
;extension=php_fbsql.dll
;extension=php_fdf.dll
;extension=php_filepro.dll
;extension=php_gd.dll
;extension=php_gettext.dll
;extension=php_hyperwave.dll
;extension=php_iconv.dll
;extension=php_ifx.dll
;extension=php_iisfunc.dll
;extension=php_imap.dll
;extension=php_ingres.dll
;extension=php_interbase.dll
;extension=php_java.dll
;extension=php_ldap.dll
;extension=php_mbstring.dll
extension=php_mbstring.dll
;extension=php_mcrypt.dll
;extension=php_mhash.dll
;extension=php_ming.dll
;extension=php_mssql.dll
;extension=php_oci8.dll
;extension=php_openssl.dll
;extension=php_oracle.dll
;extension=php_pdf.dll
;extension=php_pgsql.dll
;extension=php_printer.dll
;extension=php_shmop.dll
;extension=php_snmp.dll
;extension=php_sockets.dll
;extension=php_sybase_ct.dll
;extension=php_tokenizer.dll
;extension=php_w32api.dll
;extension=php_xslt.dll
;extension=php_yaz.dll
;extension=php_zlib.dll
⑤マルチバイトを利用する際は「日本語」であると設定する。
[mbstring]
;mbstring.internal_encoding = EUC-JP
;mbstring.http_input = auto
;mbstring.http_output = SJIS
;mbstring.detect_order = auto
;mbstring.substitute_character = none
;mbstring.language = Japanese
mbstring.internal_encoding = SJIS
mbstring.http_input = auto
mbstring.http_output = SJIS
mbstring.encoding_translation = On
mbstring.detect_order = auto
mbstring.substitute_character = none;
5.作成したINIファイルと下記のファイルをウィンドウズのsystem32フォルダにコピーする。
  C:\php\php.ini
  C:\php\php4ts.dll
  C:\php\dllsの全てのdllファイル
6.IISの設定をする。
①「インターネット インフォメーション サービス」から「既定の Web サイト」を選択し、プロパティ
  ウィンドウを表示する。
② 「ホーム ディレクトリ」タブをクリックする。
③「構成(G)...」ボタンを押下する。
④「追加」ボタンを押下する。
⑤下記の設定をする。
  実行ファイル:「C:\php\sapi\php4isapi.dll」
  拡張子:「.php」
  動詞:制限を選択する。
     :GET,HEAD,POST,TRACE
  ファイルの存在を確認する:チェックを外す。
⑥「OK」ボタンを押下する。
⑦「適用(A)」ボタンを押下する。




■参考サイト
2php : PHPのインストール(Windows)
http://2php.jp/php/install_php_windows.html
Windows で PHP > インストール・設定方法(IIS 編) @みっちーわーるど
http://www1.mahoroba.ne.jp/~mitt/itmemo/php/04.htm

水曜日, 6月 18, 2008

[VB→C#]VB 6 Functions to C#
































VB 6 FunctionsC# code
AbsSystem.Math.Abs
ArrayNew Object() { }
Asc, AscB, AscWMicrosoft.VisualBasic.Strings.Asc
AtnSystem.Math.Atan
ChooseInteraction.Choose
CBoolSystem.Convert.ToBoolean
CByteSystem.Convert.ToByte
CCurSystem.Convert.ToDecimal
CDateSystem.Convert.ToDateTime
CDblSystem.Convert.ToDouble
Chr(char)
CIntSystem.Convert.ToInt32
CLngSystem.Convert.ToInt64
CosSystem.Math.Cos
CommandInteraction.Command
CreateObjectCreateObject or New Instance in .NET
CStrSystem.Convert.ToString
CurDirFileSystem.CurDir
DateDateTime.Today
DateAddMicrosoft.VisualBasic.DateAndTime.DateAdd
DateDiffMicrosoft.VisualBasic.DateAndTime.DateDiff
DatePartMicrosoft.VisualBasic.DateAndTime.DatePart
DateSerialMicrosoft.VisualBasic.DateAndTime.DateSerial
DateValueMicrosoft.VisualBasic.DateAndTime.DateValue
DayMicrosoft.VisualBasic.DateAndTime.Day
DDBFinancial.DDB
DirFileSystem.Dir
EnvironInteraction.Environ
EofFileSystem.EOF
ExpSystem.Math.Exp
FileAttrFileSystem.FileAttr
FileDateFileSystem.FileDateTime
FileLenFileSystem.FileLen
FilterMicrosoft.VisualBasic.Strings.Filter
FixMicrosoft.VisualBasic.Conversion.Fix
FormatCurrencyMicrosoft.VisualBasic.Strings.FormatCurrency
FormatDateTimeMicrosoft.VisualBasic.Strings.FormatDateTime
FormatNumberMicrosoft.VisualBasic.Strings.FormatNumber
FreeFileFileSystem.FreeFile
FVFinancial.FV
GetAllSettingsInteraction.GetAllSettings
GetAttrFileSystem.GetAttr
GetObjectMicrosoft.VisualBasic.Interaction.GetObject
HexMicrosoft.VisualBasic.Conversion.Hex
HourMicrosoft.VisualBasic.DateAndTime.Hour
IIFInteraction.IIf
InputFileSystem.InputString
InputBoxMicrosoft.VisualBasic.Interaction.InputBox
InStr, InstrBMicrosoft.VisualBasic.Strings.InStr
InStrRevMicrosoft.VisualBasic.Strings.InStrRev
IntMicrosoft.VisualBasic.Conversion.Int
IpmtFinancial.IPmt
IRRFinancial.IRR
IsArrayMicrosoft.VisualBasic.Information.IsArray
IsDateMicrosoft.VisualBasic.Information.IsDate
IsEmptyMicrosoft.VisualBasic.Information.IsEmpty
IsMissingInformation.IsNothing
IsNullSystem.Convert.IsDBNull
IsNumericMicrosoft.VisualBasic.Information.IsNumeric
IsObjectInformation.IsReference
JoinMicrosoft.VisualBasic.Strings.Join
LBoundMicrosoft.VisualBasic.Information.LBound
LCaseSystem.String.ToLower
Left, LeftBSystem.String.Substring(0,..)
Len, LenBStrings.Len
LocFileSystem.Loc
LofFileSystem.LOF
LogSystem.Math.Log
LTrimSystem.String.TrimStart
Mid, MidBSystem.String.Substring
MinuteMicrosoft.VisualBasic.DateAndTime.Minute
MirrFinancial.MIRR
MonthMicrosoft.VisualBasic.DateAndTime.Month
MonthNameMicrosoft.VisualBasic.DateAndTime.MonthName
MsgBoxSystem.Windows.Forms.MessageBox.Show
NowSystem.DateTime.Now
NPerFinancial.NPer
PMTFinancial.Pmt
PPMTFinancial.PPmt
PVFinancial.PV
OctMicrosoft.VisualBasic.Conversion.Oct
QBColorInformation.QBColor
RateFinancial.Rate
ReplaceMicrosoft.VisualBasic.Strings.Replace
RGBMicrosoft.VisualBasic.Information.RGB
Right, RightBSystem.String.Substring
RndMicrosoft.VisualBasic.VBMath.Rnd
RoundSystem.Math.Round
RTrimSystem.String.TrimEnd
SecondMicrosoft.VisualBasic.DateAndTime.Second
SeekFileSystem.Seek
SgnSystem.Math.Sign
ShellInteraction.Shell
SinSystem.Math.Sin
SLNFinancial.SLN
Spacenew String(' ',...)
SPCFileSystem.SPC
SplitMicrosoft.VisualBasic.Strings.Split
SqrSystem.Math.Sqrt
StrConversion.Str
StrConvStrings.StrConv
StrCompSystem.String.Compare
StringNew String()
StrReverseMicrosoft.VisualBasic.Strings.StrReverse
SwitchInteraction.Switch
SydFinancial.SYD
TabFileSystem.TAB
TanSystem.Math.Tan
TimeMicrosoft.VisualBasic.DateAndTime.TimeOfDay
TimerMicrosoft.VisualBasic.DateAndTime.Timer
TimeSerialMicrosoft.VisualBasic.DateAndTime.TimeSerial
TimeValueMicrosoft.VisualBasic.DateAndTime.TimeValue
TrimSystem.String.Trim
TypeNameMicrosoft.VisualBasic.Information.TypeName
UBoundMicrosoft.VisualBasic.Information.UBound
UCaseSystem.String.ToUpper
ValConversion.Val
VarTypeMicrosoft.VisualBasic.Information.VarType
WeekdayMicrosoft.VisualBasic.DateAndTime.Weekday
WeekdayNameMicrosoft.VisualBasic.DateAndTime.WeekdayName
YearMicrosoft.VisualBasic.DateAndTime.Year
DoEventsSystem.Windows.Forms.Application.DoEvents()
CallByNameUNSUPPORT
CVErrUNSUPPORT
ErrorUNSUPPORT
GetAutoServerSettingsUNSUPPORT
GetAutoServerSettingsUNSUPPORT
IMEStatusUNSUPPORT
IsErrorUNSUPPORT
LoadPictureUNSUPPORT
LoadResPictureUNSUPPORT
LoadResDataUNSUPPORT
LoadResStringUNSUPPORT


■参考サイト
Netcoole Migration Solutions
http://www.netcoole.com/default.htm

[C#]日付関連(日数・・・)

▼質問
2つあるDateTime型の日付範囲の日数を知りたいんだけど・・・。どうしたらよいの?

▼回答
C#で簡単にやるには次の様にすると良いよ!

Microsoft.VisualBasic.DateAndTime.DateDiff(Microsoft.VisualBasic.DateInterval.Day,fromDate, toDate,Microsoft.VisualBasic.FirstDayOfWeek.System,Microsoft.VisualBasic.FirstWeekOfYear.System)

なぜか?C#では、パラメータの4と5がないとエラーになる。

■参考サイト
DateDiffをC#で使いたい。: DOBON.NETプログラミング掲示板過去ログ
http://dobon.net/vb/bbs/log3-14/7944.html

金曜日, 6月 06, 2008

[C言語]プリプロセッサ命令

__LINE__と__FILE__マクロは現在処理中の行数と現在処理中のファイル名を表す
__DATE__マクロには現在の日付が月/日/年 というフォーマットで入る
__TIME__マクロには現在の時刻が時/分/秒 というフォーマットで入る
_cplusplusはC++のソースコードをコンパイルしているときに定義される
__STDC__はC言語のソースコードをコンパイルしているときに定義される。C++のソースをコンパイルしているときにもおそらく定義される

■参考サイト
プリプロセッサ命令
http://www.cppll.jp/cppreference/preproc_details.html

[C++]エラーメッセージを取得する

▼質問
予期しないエラーでアプリケーションが終了したんだ。

そのときのエラー内容を取得したいんだ。どうしたらいいの?

▼回答
GetLastError関数とFormatMessage関数で次の様に取得できるよ。

#include
#include
#include
using namespace std;

try {
throw "Exception";
bool b;
if (b) throw 10.1;
else throw 100;
}
catch ( ... ) {
LPTSTR lpBuffer = NULL;
BOOL result = FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER FORMAT_MESSAGE_FROM_SYSTEM FORMAT_MESSAGE_IGNORE_INSERTS,
NULL, GetLastError(), MAKELANGID( LANG_NEUTRAL, SUBLANG_DEFAULT ),
(LPTSTR)&lpBuffer, 0, NULL );
CString str = (LPCTSTR)lpBuffer;
str.Replace( "\r\n", "" );
logprintf( "エラー番号:%d,エラー内容:%s", GetLastError(), str );
// MessageBox( NULL, lpBuffer, "Last Error Message", MB_ICONHANDMB_OK );
LocalFree( lpBuffer );
// cout << "Exception : " << e << '\n'; exit( EXIT_FAILURE );
}


■参考サイト
peslab C,C++
http://peslab.blog70.fc2.com/category5-1.html
FormatMessage 関数
http://msdn.microsoft.com/ja-jp/library/cc428939.aspx
[C/C++]なんとエラーメッセージが取得出来た

http://blogs.wankuma.com/ch3cooh/archive/2008/03/22/129144.aspx


木曜日, 6月 05, 2008

[C++]例外処理(try文)

▼質問
アプリケーションがメッセージを出して死んじゃうんだ。どう対処したらよいの?

とりあえず、途中でメッセージを出して止まらないようにしたいんだ。

▼回答
try文を使ってエラーをキャッチすればエラーで止まることは対処できると思うよ。

次の方法は、あらゆる型の例外を受け取ることができるよ。

try {
}
catch ( ... ) {
}
finally {
}

■参考サイト
例外処理
http://wisdom.sakura.ne.jp/programming/cpp/cpp35.html