2008年10月30日

ファイルの更新日時と作成日を求める

PC上にあるファイルの作成日とか
最終更新日(最後に書き込んだ日時)の求め方の例です。



この例は

VBのbin\debug\Keyword.txtの作成日と更新日を求めます



        Dim FileName As String = Application.StartupPath() & "\Keyword.txt
        Dim LastDate as Date


        If IO.File.Exists(FileName) Then
        'ファイルが存在するかどうか確認する


            LastDate = IO.File.GetLastWriteTime(FileName)
            msgbox("最終更新日は" & LastDate)
            'GetLstWriteTimeは最後にファイルが書き込まれた日


            LastDate = IO.File.GetCreationTime(FileName)
            msgbox("作成日は" & LastDate)
            'GetCreationTimeはファイルを作成した日時


        Else

            msgbox(FileName & " がありません")
            'FileNameがなかったらメッセージを出す

        End If


という感じで

作成日と更新日を求めることができます。



たとえばローカルに保存してあるHPの更新日を求めることで
そろそろ更新しておかなきゃとかなるわけですね

posted by kiyo at 13:31| ファイル | このブログの読者になる | 更新情報をチェックする

2008年10月28日

メッセージボックスの簡単な使い方

メッセージボックスでOkボタンとキャンセルボタンで動作を分岐してみましょう。
基本的には
MessageBox.Show("メッセージボックスで表示するコメント","メッセージボックスの名前","メッセージボックスの種類")となります。


以下のサブルーチンは

Formの×を押して、クローズしようとしたときにメッセージボックスが、終了しますか?と聞いて


OKだったら

終了


Cancelだったら終了しないという簡単なものです。



 Private Sub 終了_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.FormClosing
'MyBase.FormClosingで、×ボタンを押すイベントでこのサブルーチンが起動します


        If (MessageBox.Show("終了しますか", "testmsg", MessageBoxButtons.OKCancel)) = Windows.Forms.DialogResult.OK Then
        'メッセージボックスに「終了しますか」と表示してそのメッセージボックスの上に testmsgと表示されますとともに、OKとキャンセルボタンを表示します。


            End
            'OKが押されたときにだけEnd プログラムの実行を終了します


        End If

    End Sub



これは終了するという簡単な動作だけですが


この


End


を変更すれば


メッセージボックスを出して動作を選択して

そこからまた



次の動作に移ることができます。

posted by kiyo at 21:01| メッセージボックス | このブログの読者になる | 更新情報をチェックする

2008年10月27日

リストビューで選択した項目を取得

リストビューで選択した項目を、メッセージボックスで表示する簡単なサンプルプログラムです。


リストビューの項目は単純にキーワードの一列だけだとします。


特定のキーワードをクリックすると、メッセージボックスで選択したキーワードを表示するようになっています。



Private Sub ListView1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListView1.Click
'ListView1をクリックするイベントが起こったら起動します


      Dim indexes As ListView.SelectedIndexCollection = ListView1.SelectedIndices
      'indexesをリストビューの選択された項目だと定義します。

       
      Dim Keyword As String = ""
      'Keywordを文字列型だと宣言します。

 

       For Each index In indexes
      '選択されてindexesでループします

 

            Keyword = BeforeSearchKeywordListVew.Items(CInt(index.ToString)).Text
            '選択した行の最初のテキストをKeywordにセットします。

 

            Messagebox(Keyword)
            'メッセージボックスに選択されたキーワードを表示します。

 
        Next


End Sub


もし、ListView1の定義が
ListVew1.MultiSelect = True
や、
プロパティーでMultiSelectを定義している場合

 

上記のFor eachで
複数行が選択されていれば、それらすべてがメッセージボックスで表示されます。

ラベル:MsgBox ListView For Each
posted by kiyo at 19:46| ListView(リストビュー) | このブログの読者になる | 更新情報をチェックする

2008年10月14日

ListViewにアイテムを追加する

VB2008でListViewにアイテムを追加する方法は簡単です


ListViewに列として


俳優の名前

女優か俳優か
年齢


というリストを足してみましょう


ここでは


ほしのあき
女優
30才


と足してみます


え?


ほしのあきが

女優かって問題はさておき


'Items にListViewのアイテムとして、Items を宣言して最初の「ほしのあき」をitemsに追加
Dim Items As ListViewItem = New ListViewItem("ほしのあき")



'Itemsのサブアイテムとして女優を追加
Items.SubItems.Add("女優")



'Itemsに年齢を追加して、色をブルーにする
Items.SubItems.Add("30才").ForeColor = Color.Blue



'ListView1にItemsを追加
ListView1.Items.Add(Items)


これを繰り返すだけです
簡単ですね

posted by kiyo at 21:43| ListView(リストビュー) | このブログの読者になる | 更新情報をチェックする

2008年10月13日

ListViewの設定

ListViewはVB2008でVB6.0とは多少扱い方が違ってきています。

まずFormにListView1を貼り付けたとします
プロパティーで設定したもいいのですが

私はForm load イベントで設定しています。

'ListViewの設定
クリアーする必要はないのですが、一応定型でクリアー
ListView1.Clear()


イメージアイコンを使わずに一覧形式にします
ListView1.View = View.Details


チェックボックスが必要でしたら、True いらなければFalse
ListView1.CheckBoxes = True


リストビューの行を選択するときに、最初の項目以外でも選択できるかどうか
ListView1.FullRowSelect = True


リストビューに表示されたテキストを編集できるかどうか
ListView1.LabelEdit = True


Keywordという列を幅165で追加しています
ListView1.Columns.Add("Keyword", 165)


Indexという列を追加しています 右詰ですね
ListView1.Columns.Add("Index", 70, HorizontalAlignment.Right)


Titleという列を追加しています
ListView1.Columns.Add("Title", 70, HorizontalAlignment.Right)


複数行を一緒に選択できるようにする
KeywordListView1.MultiSelect = True



このような設定を最初にしておきます。

ラベル:VB2008 ListView
posted by kiyo at 20:55| ListView(リストビュー) | このブログの読者になる | 更新情報をチェックする

2008年10月12日

全角カナを半角カナに変換

全角のカナを半角のカナに変換しようと思った。
しかし、半角カナへの変換というので調べるとなかなか出てこない。
パソコン上で半角カナは、あまり使うべきではないと言われているからね。


しかし

携帯電話用のホームページを作るためのソフトを作っていたので、
半角カナに変換したかった。
なんのことはない


Zenkaku = "ポルシェPorshe"

Hankaku = StrConv(Zenkaku, VbStrConv.Narrow)
といれると
Hankaku = "ポルシェPorshe"となる
F8 のキーを押したときと同じことになる


もちろんこのStrConvは他にも変換できる


StrConv(Hankaku,VbStrConv.Wide)

だと全角になおしてくれる


小文字に変換
VbStrConv.lowercase


大文字に変換
VbStrConv.Uppercase

ひらながに
VbStrConv.Hiragana

かたかなに
VbStrConv.Katakana

posted by kiyo at 08:16| VB2008の文字変換 | このブログの読者になる | 更新情報をチェックする

2008年10月06日

Shift-JIS でファイルを書き出す

前回も書いたけれど、Visual Basic 2008にはVB6.0と違って内部コードがUTF-8になっている
そのことは、UTF-8で提供されることが多い、Web ServiceとかAPIとか言われるものを使う時には便利なんですが、困るのは、携帯用とかMobileでもでShift-jis でホームページを作るためにVisual Basic 2008でファイルを出力したい場合が困る。
それで、テンプレートはUTF-8でもよいけれど、読み込んで加工して
たとえば
HTML = "<title>{Title}</title>"
というhtmlがあって、タイトルにVB2008と入れたいとかだと
HTML=Replace("HTML","{Title}","VB2008")
などとVB内部で加工していきます
それをSift-JIS で書き出したいときに
 Dim TextFile As IO.StreamWriter

        TextFile = New IO.StreamWriter(DirectoryPath & WriteFileName, False, System.Text.Encoding.GetEncoding("Shift-JIS"))
        TextFile.Write(HTML)
        TextFile.Close()

とか書くと、Shift-JISで書き出されます
TextFile = New IO.StreamWriter(DirectoryPath & WriteFileName, False, System.Text.Encoding.GetEncoding("Shift-JIS"))
部分を
TextFile = New IO.StreamWriter(DirectoryPath & WriteFileName)

だと
Visual Basic 2008 はUTF-8で書き出してくれます

ちょっとそれますが、FomaとかでXHTMLと認識してもらうのにはまったので、VBで書き出したヘッダだけのせておきます

Mobile Adsenseを使って見たかったので、拡張子をphpにしたのでと
サーバーがヘッダで、xmlを送ってくれないので苦労しました。

<?php
header('Content-Type: application/xhtml+xml; charset=Shift_JIS');
echo '<?xml version="1.0" encoding="Shift_JIS"?>'."\n"
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja">
<head>
<title>VB2008</title>
</head>

posted by kiyo at 20:41| VB2008の文字コード | このブログの読者になる | 更新情報をチェックする
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。