會員登入 新使用者?立即註冊

保存程式設計與電腦資訊之倉庫,程式部分請先俱備 VB6/VB2005/C/C++ 閱讀能力,只負責提供相關技術性之章文。本單位嚴禁注音文、火星文、灌水,以及各式商品販售廣告。我只是一個業餘程式設計的玩家,應用電腦程式來解決實際問題,請多指教。舉手之勞做環保,資料搜尋快又好。

關閉
看不懂沒關係,請轉台即可;請花點時間認識您手中強大的工具:電腦 我要留言

最新文章

分類: 進階技巧
2008/02/20 10:27

鑑於編譯器版本之不同,新舊版本對於程式語法的要求也不會一致,本篇刊載內容是大部分使用者會遇到的問題,在此一專欄裡逐步揭露。

Visual Studio 2008 下載
Visual Studio 2010 Express
Visual Studio 2010 Ultimate 企業旗艦版
Visual Studio 2010 Service Pack 1

VB6 VB2005
宣告
Integer Short,Int16
Long Integer,Int32
Currency Long,Int64
Type(不需 Dim 敘述) Structure(需 Dim 敘述)
函數
= String(1024, Chr(0)) = New String(Chr(0), 1024)
DoEvents My.Application.DoEvents()
App.Path My.Application.Info.DirectoryPath
物件(通用)
.Caption .Text
.hWnd .Handle
.SetFocus .Focus()
.ZOrder 0
.ZOrder 1
.BringToFront()
.SendToBack()
Combo, ListBox 物件
.AddItem 資料 .Items.Add(資料)
.Clear .Items.Clear()
.ListCount .Items.Count
.List(索引) .Items.item(索引)
.ListIndex .SelectedItems.item(0)
.Selected(索引) = True
註:True 表示被選取,反之為否
.SelectedItems.item(索引)
註:所有被選取的項目全都在此集合裡
.RemoveItem 索引 .Items.RemoveAt(索引)
TextBox 物件
.Locked .ReadOnly
.SelLength .SelectionLength
.SelText .SelectedText
.SelStart .SelectionStart

簡易自製工具:VB6/VB.Net/VB2005 變數宣告轉換器

修訂:2009/01/08-0915
2011/02/17-1746
最後修訂:2011/05/29-0855

回應(2) 引用(0)
分類: 公告與索引
2006/01/11 13:49

我一向討厭取名字,自然連取什麼為部落格的名字亦是。

這裡,我打算用來存放一些我個人認為非常不錯的程式碼或心得技巧,所使用的電腦語言為 Visual Basic 6.0 (VB6) 、 Visual Basic 2005 (VB8) 與 Dev-C++  。當然,要看懂我這裡保存的程式,請先自行俱備相關基礎,恕不做基礎式的新手教學,這裡並不屬於新手或入門者的園地,免得文章讀起來像啃天書一般難懂,嫌文章有寫跟沒寫一樣。

好的程式技巧全都來自於最基礎的指令運用,程式設計其實就是利用電腦指令來處理數位資訊的運用,細節不是三言兩語即可說明,請務必先累積足夠的撰寫經驗。

不需要成立的祝福,只希望小小的經驗可以大大的應用。

我個人喜歡保持固定每天刊登一些資訊,似乎有點把部落格搞成報紙一樣,要是哪天沒有貼新東西上來,那肯定是我放假了,恕不繳交請假單喔。另外會不定時針對舊文加以修詞,這部份是不會有任何更新通知的,挖到寶時請好好享用。

由於計劃存放許多個人認為極為不錯的電腦相關資訊,命名為「倉庫」不為過吧,話又說回來,恐怕整理倉庫時才會是我這個管理員高頻的嫌懶狀況,呵呵,貼文容易管文難,請饒過我吧。

2008/04/18 決定新增的「股市小散戶」分類。

聲明:

注音文、火星文、各式電子廣告與純灌水無意義性質留言或回應殺無赦;請別在事後追問那些東西到哪裡去了,盡管向雅虎部落格官方洽詢即可。

讓我感到厭惡的東西,我都是向官方檢舉來解決困擾。

這裡只收知識或經驗,謝謝合作。

鳴謝:

bauann 、 JOJO 、 KevinKu3 、 MicoAg 、 小琳、志堅、阿虹、啟民(豬頭小瓜瓜)璉璉,等網友批評與指教。(依照英中文筆劃次序)

旁邊的部落格廣告可以為部落格作者增加收入,有興趣者可以點這裡申請刊登

最後修訂:2008/05/01-1035

回應(1) 引用(0)
分類: 股市小散戶
2011/12/22 09:28

請先看以下新聞連結:

國安基金點火 台股狂熱盤中250檔漲停

5000億元銀彈上膛 隨時投入救市

這新聞出來後是什麼意思呢?

答案很簡單,就是股票市場交易低迷,資金雄厚的單位不怎麼想承接股票(沒支撐),見不到底的情況下,政府出面護盤了。

當然,請搞清楚護盤的意思,再講簡單點,就是想辦法讓台股「指數」好看一點,這麼一來,怎麼散戶怎麼選股就應該很容易了吧。再不清楚怎麼選,可以先參考上回國安基金護盤標的,再參考該股票的近半年的K線走勢圖,加上外資持股率下降得很厲害的,大概可以猜得出國安基金會選哪幾支了。

請別抱著買到股票後就狂漲的心態來股資,肯定會讓您失望的。

如果假設您來操控國安基金來護盤的話,您會怎麼操盤?當然,首先要設法維持股價的穩定就是,而不是護股價狂飆,這麼一來也就沒有操盤技術可言。已有舊文說明過,不再贅言。

猜到國安護盤的股票後,您只要靜靜的抱上半年,等到哪一天忽然宣佈,國安基金全部出場完畢時,也就可以賣股票了,簡單吧。

回應(0) 引用(0)
分類: 進階技巧
2011/10/08 15:56

請填入1-9的數字,使每邊和皆相等。條件是:要列出所有的組合,不可對稱或旋轉。




這個是不重複排列組合的數學,在寫程式解法之前,我們先預設一下空格編號,頂端開時逆時針方向,分別順序標上1~9,然後就很好處理了。

這裡使用暴力破解法來列表,也就是說,將所有的排列組合全給列出來之後,才去核算是否符合邊長和是否相等。當然,每一個都要檢查也不是不行,對電腦的運算來說有點浪費效能,於是我設定了檢查的設定,只要前兩個邊的和不相等,就不用再檢查第三邊了,以節省時間。

演算法參考:
Algorithm Gossip: 排列組合

需要一個 ListBox 與 Button 即可。
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim i As Int32
Dim num(10) As Int32 ' 組合暫存陣列
' 預設組合起點
For i = 1 To 9
num(i) = i Next
ListBox1.Items.Clear()
旋轉(num, 1)
MsgBox("總共組合:" & vbNewLine & ListBox1.Items.Count.ToString)
End Sub

Public Sub 旋轉(ByRef num() As Int32, ByRef i As Int32)
Dim j, k As Int32
Dim tmp As Int32
If i < 9 Then
For j = i To 9
tmp = num(j)
' 旋轉該區段最右邊數字至最左邊
For k = j To i + 1 Step -1
num(k) = num(k - 1)
Next
num(i) = tmp
旋轉(num, i + 1)

' 還原
For k = i To j - 1
num(k) = num(k + 1)
Next
num(j) = tmp
Next
Else
' 顯示此次排列
檢查(num)
End If
End Sub

Public Sub 檢查(ByRef num() As Int32)
Dim i, j As Int32
Dim sum(2) As Int32
num(10) = num(1) ' 複製尾項

' 計算各邊總合
For i = 0 To 2
sum(i) = 0
For j = 1 To 4
sum(i) += num(i * 3 + j)
Next
If i > 0 Then
If sum(i - 1) <> sum(i) Then Exit Sub ' 總合不符提早結束
End If
Next

' 處理旋轉、對稱之重複
Dim s1 As String = ""
Dim s2 As String = ""

' 轉成正向與反向兩種字串
For i = 1 To 9
s1 &= Format(num(i), "0")
s2 &= Format(num(10 - i), "0")
Next
s1 &= s1 ' 字串加長處理旋轉用

For i = 0 To ListBox1.Items.Count - 1
' 檢查旋轉, 重複則不列表
If InStr(1, s1, ListBox1.Items(i)) > 0 Then Exit Sub
End If

' 檢查對稱, 重複則不列表
If InStr(1, ListBox1.Items(i), s2) > 0 Then
Exit Sub End If
Next
ListBox1.Items.Add(Mid(s1, 1, 9)) ' & " - " & Format(sum(0), "00")) ' 錄記該次組合
End Sub
End Class
符合條條件的組合數為 288 組。

列表如下:

排列順序 - 邊長和
129735468 - 19
129735486 - 19
129753468 - 19
129753486 - 19
137924568 - 20
137924586 - 20
137942568 - 20
137942586 - 20
138726459 - 19
138726495 - 19
138762459 - 19
138762495 - 19
149357268 - 17
149357286 - 17
149375268 - 17
149375286 - 17
159248367 - 17
159248376 - 17
159284367 - 17
159284376 - 17
159426738 - 19
159426783 - 19
159462738 - 19
159462783 - 19
167348259 - 17
167348295 - 17
167384259 - 17
167384295 - 17
168257349 - 17
168257394 - 17
168275349 - 17
168275394 - 17
168435729 - 19
168435792 - 19
168453729 - 19
168453792 - 19
168524937 - 20
168524973 - 20
168542937 - 20
168542973 - 20
173924568 - 20
173924586 - 20
173942568 - 20
173942586 - 20
176348259 - 17
176348295 - 17
176384259 - 17
176384295 - 17
183726459 - 19
183726495 - 19
183762459 - 19
183762495 - 19
186257349 - 17
186257394 - 17
186275349 - 17
186275394 - 17
186435729 - 19
186435792 - 19
186453729 - 19
186453792 - 19
186524937 - 20
186524973 - 20
186542937 - 20
186542973 - 20
192735468 - 19
192735486 - 19
192753468 - 19
192753486 - 19
194357268 - 17
194357286 - 17
194375268 - 17
194375286 - 17
195248367 - 17
195248376 - 17
195284367 - 17
195284376 - 17
195426738 - 19
195426783 - 19
195462738 - 19
195462783 - 19
219745368 - 19
219745386 - 19
219754368 - 19
219754386 - 19
219834567 - 20
219834576 - 20
219843567 - 20
219843576 - 20
237816549 - 20
237816594 - 20
237861549 - 20
237861594 - 20
246718359 - 19
246718395 - 19
246781359 - 19
246781395 - 19
249516837 - 20
249516873 - 20
249561837 - 20
249561873 - 20
259318746 - 19
259318764 - 19
259381746 - 19
259381764 - 19
264718359 - 19
264718395 - 19
264781359 - 19
264781395 - 19
267534819 - 20
267534891 - 20
267543819 - 20
267543891 - 20
268345719 - 19
268345791 - 19
268354719 - 19
268354791 - 19
273816549 - 20
273816594 - 20
273861549 - 20
273861594 - 20
276534819 - 20
276534891 - 20
276543819 - 20
276543891 - 20
286345719 - 19
286345791 - 19
286354719 - 19
286354791 - 19
291745368 - 19
291745386 - 19
291754368 - 19
291754386 - 19
291834567 - 20
291834576 - 20
291843567 - 20
291843576 - 20
294516837 - 20
294516873 - 20
294561837 - 20
294561873 - 20
295318746 - 19
295318764 - 19
295381746 - 19
295381764 - 19
318924657 - 21
318924675 - 21
318942657 - 21
318942675 - 21
319726548 - 20
319726584 - 20
319762548 - 20
319762584 - 20
319824756 - 21
319824765 - 21
319842756 - 21
319842765 - 21
327915648 - 21
327915684 - 21
327951648 - 21
327951684 - 21
329715846 - 21
329715864 - 21
329751846 - 21
329751864 - 21
346815729 - 21
346815792 - 21
346851729 - 21
346851792 - 21
348526719 - 20
348526791 - 20
348562719 - 20
348562791 - 20
348615927 - 21
348615972 - 21
348651927 - 21
348651972 - 21
356724819 - 21
356724891 - 21
356742819 - 21
356742891 - 21
357624918 - 21
357624981 - 21
357642918 - 21
357642981 - 21
364815729 - 21
364815792 - 21
364851729 - 21
364851792 - 21
365724819 - 21
365724891 - 21
365742819 - 21
365742891 - 21
372915648 - 21
372915684 - 21
372951648 - 21
372951684 - 21
375624918 - 21
375624981 - 21
375642918 - 21
375642981 - 21
381924657 - 21
381924675 - 21
381942657 - 21
381942675 - 21
384526719 - 20
384526791 - 20
384562719 - 20
384562791 - 20
384615927 - 21
384615972 - 21
384651927 - 21
384651972 - 21
391726548 - 20
391726584 - 20
391762548 - 20
391762584 - 20
391824756 - 21
391824765 - 21
391842756 - 21
391842765 - 21
392715846 - 21
392715864 - 21
392751846 - 21
392751864 - 21
419627538 - 20
419627583 - 20
419672538 - 20
419672583 - 20
429518637 - 20
429518673 - 20
429581637 - 20
429581673 - 20
437618529 - 20
437618592 - 20
437681529 - 20
437681592 - 20
438527619 - 20
438527691 - 20
438572619 - 20
438572691 - 20
473618529 - 20
473618592 - 20
473681529 - 20
473681592 - 20
483527619 - 20
483527691 - 20
483572619 - 20
483572691 - 20
491627538 - 20
491627583 - 20
491672538 - 20
491672583 - 20
492518637 - 20
492518673 - 20
492581637 - 20
492581673 - 20
716924835 - 23
716924853 - 23
716942835 - 23
716942853 - 23
726815934 - 23
726815943 - 23
726851934 - 23
726851943 - 23
734915826 - 23
734915862 - 23
734951826 - 23
734951862 - 23
735824916 - 23
735824961 - 23
735842916 - 23
735842961 - 23
743915826 - 23
743915862 - 23
743951826 - 23
743951862 - 23
753824916 - 23
753824961 - 23
753842916 - 23
753842961 - 23
761924835 - 23
761924853 - 23
761942835 - 23
761942853 - 23
762815934 - 23
762815943 - 23
762851934 - 23
762851943 - 23

回應(1) 引用(0)
分類: 進階技巧
2011/08/20 14:21

寫程式最常用的功能,就是搜尋與取代了,如果想讓程式碼能有這功能又該如何製作呢?其實很簡單,利用 InStr/InStrRev 這兩支函數就能輕而易舉的辦到,接下來就實做一個。

先準備一個您自個的專案後,再來加入一個新的 Windows Form 即可。

再設定該 Form 的屬性:

Name = "SearchDlg"
FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog
MaximizeBox = False
MinimizeBox = False
ShowInTaskbar = False
StartPosition = System.Windows.Forms.FormStartPosition.CenterParent
TopMost = True ' 這個值必要, 才不會在使用期間老是失蹤

其他的就看您的喜好增減啦~

接下來您的對話框裡需要的元件有 TextBox 兩個,與 Button 四個。

TextBox : txtFind 、 txtTr 。
Multiline = True
ScrollBars = System.Windows.Forms.ScrollBars.Both

Button : OK_Button 、 OK2_Button 、 OK3_Button 、 Cancel_Button 。

佈置如下圖:


接下來在這個 SearchDlg 的 Form 裡放入下列的程式碼:

Imports System.Windows.Forms

Public Class SearchDlg
Public strSearch As String
Public txtSearch As TextBox

Public Sub Find(ByRef 來源 As TextBox)
If 來源.SelectedText <> "" Then strSearch = 來源.SelectedText
txtFind.Text = strSearch
txtSearch = 來源
Me.Show()
txtFind.Focus()
End Sub

Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK_Button.Click
' 往下搜尋
Dim i As Int32
If txtFind.Text.Length > 0 Then
i = txtSearch.Text.IndexOf(txtFind.Text, txtSearch.SelectionStart + txtSearch.SelectionLength)
If i < 0 Then
MsgBox("沒有符合字串!", 16)
Else
txtSearch.SelectionStart = i
txtSearch.SelectionLength = txtFind.Text.Length
txtSearch.Focus()
txtSearch.ScrollToCaret()
End If
End If
End Sub

Private Sub OK2_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK2_Button.Click
' 往前搜尋
Dim i As Int32
If txtFind.Text.Length > 0 Then
i = InStrRev(txtSearch.Text, txtFind.Text, txtSearch.SelectionStart)
If i < 1 Then
MsgBox("沒有符合字串!", 16)
Else
txtSearch.SelectionStart = i - 1
txtSearch.SelectionLength = txtFind.Text.Length
txtSearch.Focus()
txtSearch.ScrollToCaret()
End If
End If
End Sub

Private Sub OK3_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK3_Button.Click
' 有反白才做取代動作
If txtSearch.SelectionLength > 0 Then txtSearch.SelectedText = txtTr.Text
txtSearch.Focus()
End Sub

Private Sub Cancel_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cancel_Button.Click
txtSearch.Focus()
Me.Close()
End Sub
End Class

使用時請需配合 TextBox 物件呼叫:

If TextBox1.Text.Length > 0 Then SearchDlg.Find(TextBox1)

結論:

本方法不使用強制回應對話框,也就是當該對話框出現時,您還是可以繼續操作底下的原有視窗,看起來就是一個浮動工具箱而已。

這個浮動對話框的最大缺點是:會顯示在桌面最上層!其實應該顯示在您的程式最上層就可以了,不需要優先權那麼高,暫時沒有辦法,因為 VB2010 內建的屬性就是這樣,沒有第三個選擇。

本話對框適用於文字輸入框,對應 TextBox 編輯時的狀態顯示,當然,您要改成 RichTextBox 也行,請修改參數屬性即可。

可以針對換行(vbCrLf 或 vbNewLine)處理,當然您的 TextBox 屬性 Multiline = True 才行。

回應(0) 引用(0)
分類: 進階技巧
2011/07/26 10:04

在 VB6 底下宣告 API 最常用的資料型態 Any ,升級成 VB.Net 後要怎麼宣告?很簡單,改成 Object 就行了。

Declared API in VB6 :
Declare Sub CopyMemory Lib "KERNEL32" Alias "RtlMoveMemory" (ByVal hpvDest As Any, ByVal hpvSource As Any, ByVal cbCopy As Long)

Declared API in VB.NET :
Declare Sub CopyMemory Lib "KERNEL32" Alias "RtlMoveMemory" (ByVal hpvDest As Object, ByVal hpvSource As Object, ByVal cbCopy As Integer)

原出處:CopyMemory/RtlMoveMemory API Not Work In VB.NET

筆記一下防忘。

回應(0) 引用(0)
分類: 進階技巧
2011/07/24 10:33

相信使用過 Windows Vista/7 的朋友應該有這樣的經驗,在工作列上的程式鈕居然有顯示的進度功能!像底下這樣:



在 VB2010 裡要怎麼做出來呢?請照著底下的步驟來做。

先到微軟 http://archive.msdn.microsoft.com/WindowsAPICodePack 下載一個名叫 Windows API Code Pack v1.1 (Binaries, Source, Docs) 的檔案回來,在下載的時候一定要同意其授權書才會允許您下載使用。

下載回來後,請自行解壓,放到您喜歡的磁碟路徑底下管理就好,其他的不用傷腦筋。

接下來開一個新專案,緊接著是 VB2010 IDE 操作使用的步驟:



功能表單「專案」,選擇「加入參考」功能。


選擇「瀏覽」,在搜尋位置上指定您剛在解壓的 Windows API Code Pack 1.1 路徑,在 Windows API Code Pack 1.1\binaries 底下可以找到如圖的檔案列表。

請連擊「Microsoft.WindowsAPICodePack.Shell.dll」即可加入參考。當然,選擇該檔案後按下「確定」亦可。


您可以重複選擇「加入參考」,再選「最近使用的」來確認參考加入的狀況。

在您的空白表單裡替換成底下的程式碼:

' http://archive.msdn.microsoft.com/WindowsAPICodePack

Imports Microsoft.WindowsAPICodePack.Taskbar

Public Class Form1
    Dim tmr As New Timer
    Dim butButton As New Button
    Dim iCount As Int32

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        With butButton
            .Parent = Me
            .Size = New Size(48, 34)
            .Location = New Point(8, 8)
            .Font = New System.Drawing.Font("新細明體", 12.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(136, Byte))
            If TaskbarManager.IsPlatformSupported Then  ' Taskbar 只支援 Vista/Win7
                .Enabled = True
                .Visible = True
            End If
            .Text = "啟動"
            AddHandler .Click, AddressOf butbutton_Click
        End With

        With tmr
            .Interval = 500
            AddHandler .Tick, AddressOf tmr_Tick
        End With
        iCount = 0
    End Sub

    Private Sub butbutton_Click(ByVal sender As Object, ByVal e As System.EventArgs)
        tmr.Enabled = Not tmr.Enabled
        If tmr.Enabled Then
            butButton.Text = "停止"
        Else
            butButton.Text = "啟動"
        End If
    End Sub

    Private Sub tmr_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs)
        iCount += 1
        If iCount < 10 Then
            TaskbarManager.Instance.SetProgressValue(iCount, 10)    ' 填入當前進度與最大值
            TaskbarManager.Instance.SetProgressState(TaskbarProgressBarState.Normal)    ' 正常顯示 (綠色)
        Else
            TaskbarManager.Instance.SetProgressState(TaskbarProgressBarState.NoProgress)    ' 停止顯示
            iCount = 0
        End If
    End Sub
End Class

執行它,就能看到示範的效果。

進度顯示的方法有:

NoProgress  (不顯示進度)
Indeterminate  (跑馬燈方式,綠色,往右邊跑一次就沒了)
Normal  (綠色正常顯示)
Error  (顯示紅色,表示錯誤)
Paused  (顯示黃色,表示暫停)
結語:

試完這個功能我才發現,會在發行軟體時得附加額外的檔案,感覺有點囉嗦,您選擇的參考檔案會自動替您複製過去,打包時會一併附在一起才是。

由於不是 VB2010 內建的功能,使用上還算挺便利的,可惜 Windows API Code Pack 1.1 範例我一個也開不了,得宣告成「Imports Microsoft.WindowsAPICodePack.Taskbar」才能使用,而不是早期版本的範例「Imports Microsoft.WindowsAPICodePack.Shell.Taskbar」,微軟做了很大的變更。

我未來使用這功能的機會不大,得外掛。

至於 VB2008 以前的版本在此未做測試,請勿來信詢問。

回應(0) 引用(0)
分類: 進階技巧
2011/07/19 10:54

這個方法能讓您捲動控制項的內容,直到插入號在控制項區域內的可見位置為止。 如果插入號位於控制項的可見區域之下,ScrollToCaret 方法會捲動控制項的內容直到插入號可見於控制項下方為止。

如果插入號位於控制項的可見區域之上,這個方法會捲動控制項的內容直到插入號可見於控制項上方為止。 您可以在多行文字方塊中使用這個方法,來確定目前的文字進入點是在控制項的可見區域之內。


注意事項

如果控制項不具有焦點,或插入號已位於控制項的可見區域,則這個方法無效


原出處:http://msdn.microsoft.com/zh-tw/library/system.windows.forms.textboxbase.scrolltocaret.aspx

筆記一下防忘。

回應(0) 引用(0)

部落格聯播

月下詩扉

月下閒詩

雜貨店的小moo老闆娘

現在開始 我的身分有兩種 一個是醫護人員 一個是網拍工作者 這裡有我們遠從泰國帶回的創意物品 都是我們費盡千辛萬苦帶回來的 希望有空可以來走走逛逛喔

賴忠義

歡迎大家一起關心台灣的教育問題!

熟男的出品

看帖不回文~~你給我記住!!!!

廣告

更新日期

2012/05/23 08:27

搜尋

統計資料

  • 今日人數:13
  • 累計人數:342159
  • 發表文章:1662
  • 相片數量:65
  • 回應數量:181
  1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31  
雅虎資訊 版權所有 © 2012 Yahoo! Taiwan All Rights Reserved
「本服務設有管理員」 服務條款 隱私權政策