.NET开发

本类阅读TOP10

·NHibernate快速指南(翻译)
·vs.net 2005中文版下载地址收藏
·【小技巧】一个判断session是否过期的小技巧
·VB/ASP 调用 SQL Server 的存储过程
·?dos下编译.net程序找不到csc.exe文件
·通过Web Services上传和下载文件
·学习笔记(补)《.NET框架程序设计(修订版)》--目录
·VB.NET实现DirectDraw9 (2) 动画
·VB.NET实现DirectDraw9 (1) 托管的DDraw
·建站框架规范书之——文件命名

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
vCard Reader Class

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

Imports System.IO
Public Class vCardReader
#Region "Define"
    Public vCards As vCard()
#End Region
#Region "Subs"

    Sub New(ByVal vCardFileStream As FileStream)
        DecodeVCardFromFileStream(vCardFileStream)
    End Sub

    Private Function Split(ByVal Content As String) As CardProperty
        Dim CardProperty As CardProperty
        Dim PropertyAndParametreString As String = Content.Split(":")(0)
        Dim ValueString As String = Content.Split(":")(1)
        Dim Temp As String() = PropertyAndParametreString.Split(";")
        CardProperty.Name = Temp(0)
        If Temp.Length > 1 Then
            ReDim CardProperty.Parametres(Temp.GetUpperBound(0) - 1)
            Temp.Copy(Temp, 1, CardProperty.Parametres, 0, Temp.Length - 1)
        Else
            CardProperty.Parametres = Nothing
        End If
        CardProperty.Values = ValueString.Split(";")
        Return CardProperty
    End Function

    Public Sub DecodeVCardFromFileStream(ByVal vCardFileStream As FileStream)
        Dim Reader As New StreamReader(vCardFileStream)
        ReDim vCards(0)
        Dim CurrentVcard As Integer
        Do
            'Search for vCard
            ReDim vCards(CurrentVcard).Properties(-1)
            If InStr(Reader.ReadLine, "BEGIN:VCARD") Then
                'Start Processing vCard object
                Dim Content As String
                Dim cardProperty As CardProperty
                Do
                    Content = Reader.ReadLine
                    If Content = "END:VCARD" Then Exit Do
                    'The "=" in then end of a stream indicates message is not complete. Read next line and contact them.
                    Do

                        If Content.LastIndexOf("=") = Content.Length - 1 Then
                            Content = Content.Substring(1, Content.Length - 2) + Reader.ReadLine
                        Else : Exit Do
                        End If
                    Loop
                    'Split properties , parametres and values.
                    cardProperty = Split(Content)
                    Dim PropertyNumber As Integer = vCards(CurrentVcard).Properties.Length
                    ReDim Preserve vCards(CurrentVcard).Properties(PropertyNumber)
                    vCards(CurrentVcard).Properties(PropertyNumber) = cardProperty
                Loop
            End If
            If Reader.Peek() < 0 Then
                Return
            End If
            CurrentVcard += 1
            ReDim Preserve vCards(CurrentVcard)
        Loop
    End Sub
#End Region

#Region "Structures"
    Public Structure vCard
        Public Properties As CardProperty()
    End Structure

    Public Structure CardProperty
        Public Name As String
        Public Parametres() As String
        Public Values() As String
    End Structure

#End Region

End Class




相关文章

相关软件