'************************************************ * * ' 説明: 人物クラス ' 著者: gwd 2002-11-06 ' 参照: pub/constpub.asp '************************************************ * * Class Cls_Person Private m_intId 'Id、Persons コレクション内の Person ノードの位置に対応します。 プライベート m_strName ' 名前 プライベート m_strNick ' 英語名 プライベート m_strMobile '携帯電話 プライベート m_strTel '電話 プライベート m_strEmail ' 電子メール プライベート m_strQQ 'QQ 番号 プライベート m_strCompany ' 会社 プライベート m_strError 'エラー メッセージ ' クラスの初期化 プライベートサブクラス_Initialize() m_strError = "" m_intId = -1 End Sub ' クラスのリリース プライベートサブクラス_Terminate() m_strError = "" End Sub '-----各プロパティの読み取りと書き込み-------------------------- Public Property Get Id ID = m_intId End プロパティ Public プロパティ Let Id(intId) m_intId = intId End プロパティ Public プロパティ Get Name 名前 = m_strName End プロパティ Public プロパティ Let Name(strName) m_strName = strName End プロパティ Public プロパティ Get Nick ニック = m_strNick End プロパティ Public プロパティ Let Nick(strNick) m_strNick = strNick End プロパティ Public プロパティ Get Mobile モバイル = m_strMobile End プロパティ Public プロパティ Let Mobile(strMobile) m_strMobile = strMobile End プロパティ Public プロパティ Get Tel 電話番号 = m_strTel End プロパティ Public プロパティ Let Tel(strTel) m_strTel = strTel End プロパティ Public プロパティ Get Email 電子メール = m_strEmail End プロパティ Public プロパティ Let Email(strEmail) m_strEmail = strEmail End プロパティ Public プロパティ Get QQ QQ = m_strQQ End プロパティ Public プロパティ Let QQ(strQQ) m_strQQ = strQQ End Property Public Property Get Company 会社 = m_strCompany End プロパティ Public プロパティ Let Company(strCompany) m_str会社 = str会社 終了プロパティ '------------------------------------------------- -- 'エラー情報の取得 パブリック関数 GetLastError() GetLastError = m_strError End Function ' プライベート メソッド、エラー メッセージを追加 プライベートサブAddErr(strEcho) m_strError = m_strError + "<Div CLASS=""alert"">" & strEcho & "</Div>" End Sub 'エラーメッセージをクリア パブリック関数 ClearError() m_strError = "" End Function '指定したノードのデータをXmlから読み込み、各属性を埋め込む '最初に ID を設定する必要があります パブリック関数 GetInfoFromXml(objXmlDoc) Dim objNodeList
objXmlDoc が何もない場合は Dim I ClearError GetInfoFromXml = False AddErr "Dom オブジェクトが null です" 終了関数 End If CStr(m_intId) = "-1" then GetInfoFromXml = False AddErr "連絡先オブジェクトの ID 属性が正しく設定されませんでした" 終了関数 それ以外 I = m_intId - 1 'ノードの位置を読み取るEnd If 'ノード情報を選択して読み取り、各属性を付与 Set objNodeList = objXmlDoc.getElementsByTagName("person") objNodeList.length - m_intId >= 0 の場合 エラー時は次へ再開 m_strName = objNodeList(I).selectSingleNode("名前").Text m_strNick = objNodeList(I).selectSingleNode("Nick").Text m_strMobile = objNodeList(I).selectSingleNode("Mobile").Text m_strTel = objNodeList(I).selectSingleNode("Tel").Text m_strEmail = objNodeList(I).selectSingleNode("電子メール").Text m_strQQ = objNodeList(I).selectSingleNode("QQ").Text m_strCompany = objNodeList(I).selectSingleNode("会社").Text GetInfoFromXml = True それ以外 GetInfoFromXml = False AddErr "連絡先情報の取得中にエラーが発生しました" objNodeList = なしを設定します 終了関数 終了の場合 objNodeList = なしを設定します End Function 'XML ファイルに情報を追加します '最初に入力する属性を設定する必要があります パブリック関数 AddToXml(objXmlDoc) Dim objPerson、objNode ClearError objXmlDoc が何もない場合 AddToXml = False AddErr "Dom オブジェクトが null です" 終了関数 End If ' 人物ノードを作成 Set objperson = objXmlDoc.createElement("person") objXmlDoc.documentElement.appendChild objperson '各子ノードの作成'------------------------------------- --- --------------- objNode = objXmlDoc.createElement("名前") を設定します objNode.Text = m_strName objPerson.appendChild objNode Set objNode = objXmlDoc.createElement("Nick") objNode.Text = m_strNick objPerson.appendChild objNode Set objNode = objXmlDoc.createElement("Mobile") objNode.Text = m_strMobile objPerson.appendChild objNode Set objNode = objXmlDoc.createElement("Tel") objNode.Text = m_strTel objPerson.appendChild objNode Set objNode = objXmlDoc.createElement("電子メール") objNode.Text = m_strEmail objPerson.appendChild objNode Set objNode = objXmlDoc.createElement("QQ") objNode.Text = m_strQQ objPerson.appendChild objNode Set objNode = objXmlDoc.createElement("会社") objNode.Text = m_strCompany objperson.appendChild objNode '------------------------------------------------ - --- objNode = なしを設定します
エラー時は objperson = Nothing を設定し 、次を再開します objXmlDoc.save Server.MapPath(C_XMLFILE) 'XML ファイルを保存If Err.Number = 0 then AddToXml = True それ以外 AddToXml = False 追加エラー エラーの説明 終了の場合 関数終了
'XML ファイルからデータを削除します '最初に ID を設定する必要があります パブリック関数 DeleteFromXml(objXmlDoc) Dim objNodeList、objNode ClearError objXmlDoc が何もない場合 DeleteFromXml = False AddErr "Dom オブジェクトが null です" 終了関数 End If CStr(m_intId) = "-1" then DeleteFromXml = False AddErr "連絡先オブジェクトの ID 属性が正しく設定されませんでした" 終了関数 End If Set objNodeList = objXmlDoc.getElementsByTagName("person") objNodeList.length - m_intId < 0 の場合 DeleteFromXml = False AddErr「対応する連絡先が見つかりませんでした」 objNodeList = なしを設定します 終了関数
エラーの場合は終了 次へ再開 objNode = objXmlDoc.documentElement.removeChild(objNodeList(intId-1)) を設定します。 objNode が何もない場合 DeleteFromXml = False AddErr「連絡先の削除に失敗しました」 objNodeList = なしを設定します 終了関数 それ以外 objXmlDoc.save Server.MapPath(C_XMLFILE) 終了の場合 objNode = なしを設定します objNodeList = Nothing を設定します 。Err.Number = 0 の場合は、 DeleteFromXml = True それ以外 DeleteFromXml = False 追加エラー エラーの説明 終了の場合 End Function 'XML ファイルのデータを変更する '最初に ID を設定する必要があります パブリック関数 EditToXml(objXmlDoc) Dim objPersonList、objOldperson、objNewperson、objNode ClearError If objXmlDoc is nothing then EditToXml = False AddErr "Dom オブジェクトが null です" 終了関数 End If CStr(m_intId) = "-1" then EditToXml = False AddErr "連絡先オブジェクトの ID 属性が正しく設定されませんでした" 終了関数 End If Set objパーソンリスト = objXmlDoc.getElementsByTagName("パーソン") objPersonList.length - m_intId < 0 の場合 DeleteFromXml = False AddErr「対応する連絡先が見つかりませんでした」 objPersonList = なしを設定します 終了関数 End If Set objOldPerson = objPersonList(m_intId-1) ' 変更する古いノード Set objNewPerson = objXmlDoc.createElement("Person") ' 古いノードを置き換えるために使用される新しいノード Set objNode = objXmlDoc.createElement("Name") objNode.Text = m_strName objNewPerson.appendChild objNode Set objNode = objXmlDoc.createElement("Nick") objNode.Text = m_strNick objNewPerson.appendChild objNode Set objNode = objXmlDoc.createElement("Mobile") objNode.Text = m_strMobile objNewPerson.appendChild objNode Set objNode = objXmlDoc.createElement("Tel") objNode.Text = m_strTel objNewPerson.appendChild objNode Set objNode = objXmlDoc.createElement("電子メール") objNode.Text = m_strEmail objNewPerson.appendChild objNode Set objNode = objXmlDoc.createElement("QQ") objNode.Text = m_strQQ objNewPerson.appendChild objNode Set objNode = objXmlDoc.createElement("会社") objNode.Text = m_strCompany objNewPerson.appendChild objNode エラー時は次へ再開 ' 置換セット objNode = objXmlDoc.documentElement.replaceChild(objNewperson, objOldperson) objNode が何もない場合 EditToXml = False AddErr「連絡先の変更に失敗しました」 objOldPerosn = なしを設定します objNewPerson = なしを設定します objPersonList = なしを設定します 終了関数 それ以外 objXmlDoc.save Server.MapPath(C_XMLFILE)
objOldperson = Nothing を設定した 場合は終了 objNewPerson = なしを設定します objPersonList = Nothing を設定します
。Err.Number = 0 の場合、その後 EditToXml = True それ以外 EditToXml = False 追加エラー エラーの説明 終了の場合 終了関数 終了クラス |