《后汉书》九十卷,南朝宋范晔撰。范晔字蔚宗,顺阳郡顺阳县(今河南省淅川县)人。出身于一个世族家庭。他的祖父范宁曾任晋豫章太守,著《谷梁集解》一书。《十三经注疏》中的《谷梁传注疏》就是以《谷梁集解》为基础写成的。他的父亲范泰官拜金紫光禄大夫,加散骑常侍,是宋武帝刘裕的得力助手。他博览群书、潜心著述,作《古今善言》二十四篇。所以范晔有很深的家学渊源,一直以名门之后自居,生性孤傲,不拘小节,仕宦不甘居人后,著述也不甘居人后。以此成名,也以此丧身。
元嘉九年,范晔在为彭城太妃治丧期间,行为失检得罪了司徒刘义康,被贬为宣城太守,范晔郁郁不得志,就借助修史来寄托他的志向,开始写作《后汉书》。
元嘉二十二年,当他完成了本纪、列传的写作,同时又和谢俨共同完成《礼乐志》、《舆服志》、《五行志》、《天文志》、《州郡志》等五志的时侯,有人告发他参与了刘义康的篡位阴谋,因此下狱而死。谢俨怕受牵连,毁掉了手中的志稿,使《后汉书》只有纪传部分流传了下来。
在范晔《后汉书》之前,已问世的有关东汉历史的重要著作不下十部,范晔以《东观汉记》为基本史料依据,以华峤书为主要蓝本,吸取其他各家书的长处,删繁补缺,整齐故事,超越众家,后来居上。所以到了唐代,范晔《后汉书》取代《东观汉记》,与《史记》、《汉书》并称“三史“,盛行于世。而诸家《后汉书》,除袁宏《后汉纪》外,都相继散亡。于是范晔《后汉书》成为我们现在研究东汉历史的最基本的依据。
范晔《后汉书》的记述,起于刘秀起兵推翻王莽,终于汉献帝禅位于曹丕,详载了东汉一百九十五年的历史。
作者: 老王
AutoCAD 从 Dictionarys 中读取数据
‘绑定 AutoCAD
Dim I As Integer, J As Integer
Dim oAutoCAD As Object ‘AutoCAD Application 本身
Call BindAutoCAD(True)
Dim oDraw As Object ‘AutoCAD 多文档之一
‘打开并绑定文件 D:/Test.dwg
Set oDraw = oAutoCAD.Application.Documents.Open(“D:/Test.dwg”)
‘在 Dictionarys 中查找 “New Dic”,并读取”属性” App 的值
Dim sTemp As String
sTemp = GetDicString(oDraw, “New Dic”, “属性”)
Public Function GetDicString(ByVal vDraw As Variant, ByVal sDic As String, ByVal sApp As String) As String ‘在 Dictionarys 中查找 “New Dic”,并读取”属性” App “1000” 位码的值
GetDicString = “”
Dim I As Integer, J As Integer
Dim XTypeOut As Variant
Dim XValueOut As Variant
Dim oDic As Object
Set oDic = vDraw.Dictionaries.Item(sDic)
oDic.GetXData sApp, XTypeOut, XValueOut
If Not IsArray(XTypeOut) Or Not IsArray(XValueOut) Then Exit Function
For I = LBound(XTypeOut) To UBound(XTypeOut)
If XTypeOut(I) = 1000 Then GetDicString = XValueOut(I)
Next I
End Function
二十四史简介——汉书
继司马迁撰写《史记》之后,班固撰写了《汉书》。班固,字孟坚,扶风安陵人,生于东汉光武帝建武八年。父亲班彪是一个史学家,曾作《后传》六十五篇来续补《史记》。《汉书》就是在《后传》的基础上完成的。和帝永元元年,班固随从车骑将军窦宪出击匈奴,参预谋议。后因事入狱,永元四年死在狱中。那时《汉书》还有八表和《天文志》没有写成,汉和帝叫班固的妹妹班昭补作,马续协助班昭作了《天文志》。班昭是“二十四史”中绝无仅有的女作者。
《汉书》包括本纪十二篇,表八篇,志十篇,列传七十篇,共一百篇,后人划分为一百二十卷。它的记事始于汉高帝刘邦元年,终于王莽地皇四年。
《汉书》的体例与《史记》相比,已经发生了变化。《史记》是一部通史,《汉书》则是一部断代史。《汉书》把《史记》的“本纪”省称“纪“,“列传”省称“传”,“书”改曰“志”,取消了“世家”,汉代勋臣世家一律编入传。
这些变化,被后来的一些史书沿袭下来。
《汉书》记载的时代与《史记》有交叉,汉武帝中期以前的西汉历史,两书都有记述。这一部分,《汉书》常常移用《史记》。
但由于作者思想境界的差异和材料取舍标准不尽相同,移用时也有增删改易。
《汉书》新增加了《刑法志》、《五行志》、《地理志》、《艺文志》。
《刑法志》第一次系统地叙述了法律制度的沿革和一些具体的律令规定。《地理志》记录了当时的郡国行政区划、历史沿革和户口数字,有关各地物产、经济发展状况、民情风俗的记载更加引人注目。《艺文志》考证了各种学术别派的源流,记录了存世的书籍,它是我国现存最早的图书目录。《食货志》是由《平准书》演变来的,但内容更加丰富了。它有上下两卷,上卷谈“食”,即农业经济状况;下卷论“货”,即商业和货币的情况,是当时的经济专篇。
《汉书》八表中有一篇《古今人表》,从太昊帝记到吴广,有“古”而无“今”,因此引起了后人的讥责。后人非常推崇《汉书》的《百官公卿表》,这篇表首先讲述了秦汉分官设职的情况,各种官职的权限和俸禄的数量,然后用分为十四级、三十四官格的简表,记录汉代公卿大臣的升降迁免。它篇幅不多,却把当时的官僚制度和官僚的变迁清清楚楚地展现在我们面前。
从思想内容来看,《汉书》不如《史记》。班固曾批评司马迁“论是非颇谬于圣人“。这集中反映了两人的思想分歧。所谓“圣人”,就是孔子。司马迁不完全以孔子思想作为判断是非的标准,正是值得肯定的。而班固的见识却不及司马迁。
从司马迁到班固的这一变化,反映了东汉时期儒家思想作为封建正统思想,已在史学领域立稳了脚根。
《汉书》喜用古字古词,比较难读。
AutoCAD 在 Dictionarys 中存储数据
‘绑定 AutoCAD
Dim I As Integer, J As Integer
Dim oAutoCAD As Object ‘AutoCAD Application 本身
Call BindAutoCAD(True)
Dim oDraw As Object ‘AutoCAD 多文档之一
‘打开并绑定文件 D:/Test.dwg
Set oDraw = oAutoCAD.Application.Documents.Open(“D:/Test.dwg”)
‘在 Dictionarys 中生成新的 Dictionary,建立 App 并赋值
Dim lRet As Long
Dim sDic As String
Dim sApp As String
Dim sValue As String
sDic = “New Dic”
sApp = “属性”
sValue = “467”
lRet = SetDicString(oDraw, sDic, sApp, sValue)
Public Function SetDicString(ByVal vDraw As Variant, ByVal sDic As String, ByVal sApp As String, ByVal sValue As String) As Long ‘在 Dictionarys 中生成新的 Dictionary 建立 App 并给 “1000” 位码赋值
Dim I As Integer, J As Integer
SetDicString = -1 ‘未执行
If Trim(sBase) = “” Then Exit Function
If Trim(sApp) = “” Then Exit Function
‘If Trim(sValue) = “” Then Exit Function
SetDicString = 0 ‘正常执行
Dim oDic As Object
Set oDic = vDraw.Dictionaries.Add(sDic)
Dim DataType(0 To 1) As Integer
Dim DataValue(0 To 1) As Variant
DataType(0) = 1001
DataValue(0) = sApp
DataType(1) = 1000
DataValue(1) = sValue
‘ Attach the xdata to the object
oDic.SetXData DataType, DataValue
End Function
AutoCAD 函数系列之一
Public Function SetExist(ByVal vDraw As Variant, ByVal sSet As String) As Boolean
Dim I As Integer, J As Integer
SetExist = False
If vDraw Is Nothing Then Exit Function
For I = 0 To vDraw.SelectionSets.Count – 1
If vDraw.SelectionSets.Item(I).Name = sSet Then SetExist = True
Next I
End Function
Public Function DictionaryExist(ByVal vDraw As Variant, ByVal sDict As String) As Boolean
Dim I As Integer, J As Integer
On Error GoTo ERR_NO_KEY
DictionaryExist = False
If vDraw Is Nothing Then Exit Function
Set oDictionary = vDraw.Dictionaries.Item(sDict) ‘试错
DictionaryExist = True
On Error GoTo 0
Exit Function
ERR_NO_KEY: ‘primary key
DictionaryExist = False
On Error GoTo 0
End Function
Public Function AppExist(ByVal vDraw As Variant, ByVal sApp As String, ByVal sDict As String) As Boolean
Dim I As Integer, J As Integer
AppExist = False
If vDraw Is Nothing Then Exit Function
If Not DictionaryExist(oDraw, sDict) Then Exit Function
Set oDictionary = vDraw.Dictionaries.Item(sDict)
Dim XTypeOut As Variant
Dim XValueOut As Variant
oDictionary.GetXData “”, XTypeOut, XValueOut
If Not IsArray(XTypeOut) Then Exit Function
If Not IsArray(XValueOut) Then Exit Function
For I = LBound(XTypeOut) To UBound(XTypeOut)
If XTypeOut(I) = 1001 And XValueOut(I) = sApp Then
AppExist = True
End If
Next I
End Function