鲁迅与顾颉刚

鲁迅为什么这么刻毒地挖苦顾颉刚的“生理缺陷”?照说,鲁迅不是这样的人。因为和鲁迅发生争执的人多了,用聂绀弩的话来说就是“有文皆从人着想,无时不与战为缘”。可无论争论的人有多多,也不管争论得如何激烈,我们都没有看到过鲁迅公开或私下里拿对方生理缺陷做文章。

学过现代文学史或学术史的人都知道:历史上,鲁迅与顾颉刚是一对冤家,彼此之间一提到对方,就忍不住笔露锋芒,骂他个鲜血淋漓。尤其是鲁迅,甚至不惜在历史小说《理水》中,塑造一个很可笑的“鸟头先生”来影射讥讽顾颉刚。比如书中有这样一段:“‘这这些些都是废话’又一个学者吃吃地说,立刻把鼻尖涨得通红。‘你们受了谣言的骗的,其实并没有所谓禹,禹是一条虫,虫虫会治水吗?’”为什么这样影射呢?原因是顾颉刚根据文字学将“禹”解为“蜥蜴”,从而得出“夏禹是一条虫”的结论。而鲁迅以其人之道还治其人之身地根据文字学将“顾(顾)”字分解为“雇”(本义为“鸟”)与“页”(本义为“头”)。所以,不少人说鲁迅这是在利用小说进行“人身攻击”。因为这让人想起《水浒》中的骂人话,“鸟人”!而在鲁迅的私人通信里,则直接将顾颉刚称为“鼻公”、“鼻”、或“红鼻”。比如在1927年5月15日致章廷兼的信中,鲁迅就写到:“傅斯年我初见,先前竟想不到是这样的人,当红鼻到此时,我便走了;而傅大写其信给我,说他已有补救发,即使鼻赴京买书,不在校……”再比如同年8月17日鲁迅致章廷兼的信中又有:“遥想一月以前,一个獐头鼠目而赤鼻之‘学者’,奔波于‘西子湖’而发挥咱们之‘不好’,一面又想起起诉之‘无聊之极思’来。湖光山色,辜负已尽,念及辄为失笑。禹是虫,故无其人;而据我最近之研究:迅盖禽也,亦无其人,鼻当可以自慰欤?……近偶见《古史辨》,惊悉上面乃有自序一百多版。查汉朝钦犯司马迁,因割掉卵子而发牢骚,附之于偌大之《史记》之后,文尚甚短,今该学者不过鼻子红而已矣,而乃浩浩洋洋至此,殆真所谓文豪也哉,禹而尚在,也只能忍气吞声,自认为并无其人而已。”为什么这样称呼呢?原因就是顾颉刚长了一个红红的酒糟鼻。这当然也是很不厚道的人身攻击。所以有人认为这是鲁迅拿人家生理缺陷做文章的“失德之举”。

现在的问题是:鲁迅为什么这么刻毒地挖苦顾颉刚的“生理缺陷”?照说,鲁迅不是这样的人。因为和鲁迅发生争执的人多了,用聂绀弩的话来说就是“有文皆从人着想,无时不与战为缘”。可无论争论的人有多多,也不管争论得如何激烈,我们都没有看到过鲁迅公开或私下里拿对方生理缺陷做文章。不特此也:1922年,当俄国盲诗人爱罗先珂来北京时,因为写文章批评了北京学生上演的戏剧,结果惹怒了这群天之骄子,立即就有北大学生魏建功写出一篇《不敢盲从》以为回敬。文中,作者故意在“看”、“观”、“盲从”等字上大做文章,大搞人身攻击,而这引起了鲁迅的强烈反感。他马上写出了《看魏建功君〈不敢盲从〉以后的几句声明》。在文中,鲁迅怒斥这种利用别人生理缺陷对其进行攻击的人,是“生长在旧的道德和新的不道德里,借了新艺术的名而发挥其本来的旧的不道德的少年”。在1919年3月26日,为《孔乙己》做“附记”时,鲁迅也曾明确反对用小说进行人身攻击,使小说成为一种泼秽水的器具。既然如此,那鲁迅为什么对顾颉刚有这样的“失德之举”?顾颉刚到底什么地方开罪了鲁迅,使他这样不顾自己原则地,对其生理缺陷一再实施旁人看来甚是过分的攻击?而且,这种怨恨一直持续到鲁迅晚年。比如在1934年7月6日鲁迅致郑振铎的信中,提到顾颉刚时,仍然这么刻薄地写到“三根(指顾颉刚,因为在中国古代相面语中,‘三根’即指鼻梁———笔者)是必显神通的,但此公遍身谋略,凡与接触者,定必麻烦,倘与周旋,本亦不足惧,然别人那有如许闲工夫。嘴亦本来不吃,其呐呐者,即因岁谈话时,亦在运用阴谋之故。在厦大时,即逢迎校长以驱除异己,异己既尽,而此公亦为校长所鄙,遂至广州,我连忙逃走,不知其又何以不安于粤也。现在所发之狗性,盖于在厦大时相同。最好不要与相涉,否则钩心斗角之事,层出不穷,真使人不胜其扰。其实,他是有破坏而无建设的,只要看他的《古史辨》已将古史‘辨’得没有,自己也不再有路可走,只好又用老手段了。”

数值函数系列之一

‘将任意整数分解为等比数列之中的数值
Dim vRet As Variant
vRet = GeometricSeriesEx(2147483647)
For I = LBound(vRet) To UBound(vRet)
Debug.Print vRet(I)
Next I

Public Function GeometricSeriesEx(ByVal lData As Long) As Variant ‘分解整数为 1 2 4 8 16 32 64 … …,且每个数只出现一次
Dim I As Integer, J As Integer
If Not IsNumericEx(lData) Then Exit Function
Dim sBin As String
sBin = DEC_to_BIN(lData)
Dim iCount As Integer
Dim TempArray() As Long
For I = 1 To Len(sBin)
If Mid(sBin, I, 1) = “1” Then
ReDim Preserve TempArray(0 To iCount)
TempArray(iCount) = 2 ^ (Len(sBin) – I)
iCount = iCount + 1
End If
Next I
GeometricSeriesEx = TempArray
End Function

Public Function DEC_to_BIN(Dec As Long) As String ‘十进制转化为二进制
DEC_to_BIN = “”
Do While Dec > 0
DEC_to_BIN = Dec Mod 2 & DEC_to_BIN
Dec = Dec \ 2
Loop
End Function

Public Function IsNumericEx(ByVal sData As String) As Boolean ‘电子表格空格被 IsNumeric 视为数值 0,IsNumericEx 则视为字符 “”
IsNumericEx = False
sData = Trim(sData)
If sData = “” Then Exit Function
IsNumericEx = IsNumeric(sData)
End Function

Public Function IsInteger(ByVal txtString As String) As Boolean ‘是数值,且是整数
IsInteger = True
If Not IsNumeric(txtString) Then
IsInteger = False
Exit Function
End If
If Not CDbl(txtString) / 1 = CDbl(txtString) \ 1 Then
IsInteger = False
End If
End Function

Public Function IsInRange(ByVal sData As String, ByVal LowerLimit As Double, ByVal UpperLimit As Double, ByVal bAllowThreshold As Boolean) As Boolean ‘判断某数据是不是数值,且是否在界内
IsInRange = False
If Not IsNumeric(sData) Then Exit Function ‘字符等视为越界,防止以下比较时发生错误
If bAllowThreshold Then ‘压界算在界内
If CDbl(sData) > UpperLimit Then Exit Function ‘越上界
If CDbl(sData) < LowerLimit Then Exit Function ‘越下界 Else ‘压界不算在界内 If CDbl(sData) >= UpperLimit Then Exit Function ‘越上界
If CDbl(sData) <= LowerLimit Then Exit Function ‘越下界
End If
IsInRange = True
End Function

二十八星宿对应分野

角、亢、(氏)〔氐〕,鄭,兗州:東郡入角一度;東平、任城、(由)〔山〕陽入角六度;泰山入角十二度;濟北、陳留入亢五度;濟陰入氐一度;東平入氐七度。

  房、心,宋,豫州:潁川入房一度;汝南入房二度;沛郡入房四度;梁國入房五度;淮陽入心一度;魯國入心三度;楚國入心四度。

  箕、尾,燕,幽州:營州(人)〔入〕箕中十度;上谷入尾一度;漁陽入尾三度;右北平入尾七度;西河、上郡、北地、遼西東入尾十度;涿郡入尾十六度;渤海入箕一度;樂浪入箕三度;玄菟入箕六度;廣陽入箕九度。

  斗、牽牛、須女,吳、越,揚州:九江入斗一度;廬江入斗六度;豫章入斗十度;丹陽入斗十六度;會稽入牛一度;臨淮入牛四度;廣陵入牛八度;泗水入女一度;六安入牛六度。

  虛、危,齊,青州:齊國入虛六度;北海入虛九度;濟南入危一度;樂安入危四度;東萊入危九度;平原入危十一度;淄州入危十四度。

  營室、東壁,衛,并州:安定入營室一度;天水入營室八度;隴西入營室四度;酒泉入營室十一度;張掖入營室十二度;武都入東壁一度;金城入東壁四度;武威入東壁六度;燉(威)〔煌〕入東壁八度。

  奎、婁、胃,魯,徐州:東海入奎一度;瑯邪入奎一度;琅密入婁一度;(陽城)〔城陽〕入婁九度;膠東入胃(七)〔一〕度。

  昴、畢,趙,冀州:魏郡入昴一度;鉅鹿入昴三度;常山入昴五度;廣平入昴七度;中山入昴一度;清河入昴九度;信都入(十)〔畢〕三度;趙郡入畢八度;安平入畢四度;河間入畢十度;真定入畢十三度。

  觜、參,魏,益州:廣漢入觜一度;越巂入觜三度;蜀郡入觜一度;犍為入參三度;牁入參五度;巴郡入參五度;漢中入參九度;益州入參七度。

  東井、輿鬼,秦,雍州:雲中入東井一度;定襄入東井八度;雁門入東井十六度;代郡入東井二十八度;太原入東井二十九度;上黨入輿鬼二度。

  柳、七星、張,周,三輔:弘農入柳一度;河南入七星三度;河東入張三度;河內入張九度。

  翼、軫,楚,荊州:南陽入翼六度;南郡入翼十度;江夏入翼十二度,零陵入軫十一度;桂陽入軫六度;武陵入軫十度,長沙入軫十六度。

Excel 函数系列之一

Public Function MinRow(ByVal vSheet As Variant) As Integer ‘有内容的最小行号
MinRow = -1
On Error Resume Next
If vSheet Is Nothing Then Exit Function
vSheet.Activate
MinRow = vSheet.UsedRange.Rows(vSheet.UsedRange.Rows.Count).Row – vSheet.UsedRange.Rows.Count + 1
On Error GoTo 0
End Function

Public Function MaxRow(ByVal vSheet As Variant) As Integer ‘有内容的最大行号
MaxRow = -1
On Error Resume Next
If vSheet Is Nothing Then Exit Function
vSheet.Activate
MaxRow = vSheet.UsedRange.Rows(vSheet.UsedRange.Rows.Count).Row
On Error GoTo 0
End Function

Public Function MinColumn(ByVal vSheet As Variant) As Integer ‘有内容的最小列号
MinColumn = -1
On Error Resume Next
If vSheet Is Nothing Then Exit Function
vSheet.Activate
MinColumn = vSheet.UsedRange.Columns(vSheet.UsedRange.Columns.Count).Column – vSheet.UsedRange.Columns.Count + 1
‘vSheet.Cells.Find(“*”, , , , 2, 1).Column 同
On Error GoTo 0
End Function

Public Function MaxColumn(ByVal vSheet As Variant) As Integer ‘有内容的最大列号
MaxColumn = -1
On Error Resume Next
If vSheet Is Nothing Then Exit Function
vSheet.Activate
MaxColumn = vSheet.UsedRange.Columns(vSheet.UsedRange.Columns.Count).Column
‘vSheet.Cells.Find(“*”, , , , 2, 2).Column 同
If Err.Number <> 0 Then Call SaveOccurredErr(1)
If Not ExposeError Then On Error GoTo 0
End Function

Public Function SheetExist(ByVal vBook As Variant, ByVal sSheet As String) As Boolean ‘当前 WorkBook 之 Sheet 存在
On Error Resume Next
Dim I As Integer, J As Integer
SheetExist = False
If vBook Is Nothing Then Exit Function
‘If vSheet Is Nothing Then Exit Function
For I = 1 To vBook.Sheets.Count
If vBook.Sheets(I).Name = sSheet Then SheetExist = True
Next I
If Err.Number <> 0 Then SheetExist = False
On Error GoTo 0
End Function

Public Function GetColumnNumber(ByVal vSheet As Variant, ByVal sData As String, ByVal iRow As Integer) As Integer ‘确定数据在某行的哪一列,如果不存在则指向新列
Dim I As Integer, J As Integer
GetColumnNumber = 0
If vSheet Is Nothing Then Exit Function
vSheet.Activate
For J = MinColumn(vSheet) To MaxColumn(vSheet)
If sData = vSheet.Cells(iRow, J) Then GetColumnNumber = J
Next J
If GetColumnNumber = 0 Then GetColumnNumber = MaxColumn(vSheet) + 1
End Function

SWIFT

SWIFT 又称“环球同业银行金融电讯协会”,是国际银行同业间的国际合作组织,成立于一九七三年,目前全球大多数国家大多数银行已使用SWIFT系统。SWIFT的使用,使银行的结算提供了安全、可靠、快捷、标准化、自动化的通讯业务,从而大大提高了银行的结算速度。由于SWIFT的格式具有标准化,目前信用证的格式主要都是用SWIFT电文。

SWIFT(Society for Worldwide Interbank Financial Telecommunications—环球同业银行金融电讯协会),是一个国际银行间非盈利性的国际合作组织,总部设在比利时的布鲁塞尔,同时在荷兰阿姆斯特丹和美国纽约分别设立交换中心(Swifting Center),并为各参加国开设集线中心(National Concentration),为国际金融业务提供快捷、准确、优良的服务。SWIFT运营着世界级的金融电文网络,银行和其他金融机构通过它与同业交换电文(Message)来完成金融交易。除此之外,SWIFT还向金融机构销售软件和服务,其中大部分的用户都在使用SWIFT网络。

SWIFT组织成立于1973年5月,其全球计算机数据通讯网在荷兰和美国设有运行中心,在各会员国设有地区处理站,来自美国、加拿大和欧洲的15个国家的239家银行宣布正式成立SWIFT,其总部设在比利时的布鲁塞尔,它是为了解决各国金融通信不能适应国际间支付清算的快速增长而设立的非盈利性组织,负责设计、建立和管理SWIFT国际网络,以便在该组织成员间进行国际金融信息的传输和确定路由。

从1974年开始设计计算机网络系统。

1977年夏,完成了环球同业金融电信网络(SWIFT网络)系统的各项建设和开发工作,并正式投入运营。

1977年时SWIFT在全世界就拥有会员国150多个,会员银行5000多家,SWIFT系统日处理SWIFT电讯300万笔,高峰达330万笔。

到2007年6月为止,SWIFT的服务已经遍及207个国家,接入的金融机构超过8100家。台湾地区唯一的具有商业策略以及服务供应伙伴资格的是资通电脑Ares。

在国际贸易结算中,SWIFT信用证是正式的、合法的,被信用证各当事人所接受的、国际通用的信用证,信用证是指凡通过SWIFT系统开立或予以通知的信用证。采用SWIFT信用证必须遵守SWIFT的规定,也必须使用SWIFT手册规定的代号(Tag),而且信用证必须遵循国际商会2007年修订的《跟单信用证统一惯例》各项条款的规定。在SWIFT信用证可省去开证行的承诺条款(Undertaking Clause),但不因此免除银行所应承担的义务。SWIFT信用证的特点是快速、准确、简明、可靠。

该组织创立之后,其成员银行数逐年迅速增加。从1987年开始,非银行的金融机构,包括经纪人、投资公司、证券公司 和证券交易所等,开始使用 SWIFT。至2010年,该网络已遍布全球206个国家和地区的8,000多家金融机构,提供金融行业安全报文传输服务与相关接口软件,支援80多个国家和地区的实时支付清算系统。

1980年SWIFT联接到香港。我国的中国银行于1983年加入SWIFT,是SWIFT组织的第1034家成员行,并于1985年5月正式开通使用,成为我国与国际金融标准接轨的重要里程碑。之后,我国的各国有商业银行及上海和深圳的证券交易所,也先后加入SWIFT。

进入90年代后,除国有商业银行外,中国所有可以办理国际银行业务的外资和侨资银行以及地方性银行纷纷加入SWIFT。SWIFT的使用也从总行逐步扩展到分行。1995年,SWIFT在北京电报大楼和上海长话大楼设立了SWIFT访问点SAP(SWIFT Access Point),它们分别与新加坡和香港的SWIFT区域处理中心主节点连接,为用户提供自动路由选择。

为更好地为亚太地区用户服务,SWIFT于1994 年在香港设立了除美国和荷兰之外的第三个支持中心,这样,中国用户就可得到SWIFT支持中心讲中文的员工的技术服务。SWIFT还在全球17个地点设有办事处,其2000名的专业人员来自55个国家,其中北京办事处于1999年成立。

全世界金融数据传输、文件传输、直通处理STP(Straight Through Process)、撮合,清算和净额支付服务、操作信息服务、软件服务、认证技术服务、客户培训和24小时技术支持。

SWIFT自投入运行以来,以其高效、可靠、低廉和完善的服务,在促进世界贸易的发展,加速全球范围内的货币流通和国际金融结算,促进国际金融业务的现代化和规范化方面发挥了积极的作用。我国的中国银行、中国农业银行、中国工商银行、中国建设银行、交通银行、中信实业银行等已成为环球银行金融通信协会的会员。这也就是为什么PP只支持电汇这几家国内银行的原因。

SWIFT的设计能力是每天传输1100万条电文,而当前每日传送500万条电文,这些电文划拨的资金以万亿美元计,它依靠的便是其提供的240种以上电文标准。SWIFT的电文标准格式,已经成为国际银行间数据交换的标准语言。这里面用于区分各家银行的代码,就是SWIFT Code,依靠SWIFT Code便会将相应的款项准确的汇入指定的银行。

SWIFT Code是由该协会提出并被ISO通过的银行识别代码,其原名是BIC(Bank Identifier Code),但是BIC这个名字意思太泛,担心有人理解成别的银行识别代码系统,故渐渐大家约定俗成地把BIC叫作SWIFT Code了。SWIFT是(Society for Worldwide Interbank Financial Telecommunications)环球银行间金融通信协会是一个由金融机构共同拥有的私营股份公司,按比利时的法律登记注册,由会员银行和其他金融 机构协同管理。

SWIFT银行识别代码

每家申请加入SWIFT组织的银行都必须事先按照SWIFT组织的统一原则,制定出本行的SWIFT地址代码,经 SWIFT组织批准后正式生效。银行识别代码(Bank Identifier Code—BIC)是由电脑可以自动判读的八位或是十一位英文字母或阿拉伯数字组成,用于在SWIFT电文中明确区分金融交易中相关的不同金融机构。 凡该协会的成员银行都有自己特定的SWIFT代码,即SWIFT Code。在电汇时,汇出行按照收款行的SWIFT Code发送付款电文,就可将款项汇至收款行。该号相当于各个银行的身份证号。

十一位数字或字母的BIC可以拆分为银行代码、国家代码、地区代码和分行代码四部分。以中国银行北京分行为例,其银行识别代码为BKCHCNBJ300。其含义为:BKCH(银行代码)、CN(国家代码)、BJ(地区代码)、300(分行代码)。

(1)银行代码(Bank Code):由四位英文字母组成,每家银行只有一个银行代码,并由其自定,通常是该行的行名字头缩写,适用于其所有的分支机构。

(2)国家代码(Country Code):由两位英文字母组成,用以区分用户所在的国家和地理区域。

(3)地区代码(Location Code):由0、1以外的两位数字或两位字母组成,用以区分位于所在国家的地理位置,如时区、省、州、城市等。

(4)分行代码(Branch Code):由三位字母或数字组成,用来区分一个国家里某一分行、组织或部门。如果银行的BIC只有八位而无分行代码时,其初始值订为“XXX”。

同时,SWIFT还为没有加入SWIFT组织的银行,按照此规则编制一种在电文中代替输入其银行全称的代码。所有此类代码均在最后三位加上“BIC”三个字母,用来区别于正式SWIFT会员银行的SWIFT地址代码。

SWIFT Code的查询方法

要查询某家银行的SWIFT Code,推荐的方式是:

(1)直接去银行询问工作人员

(2)可以打电话咨询。

(3)通过SWIFT的官方网站查询:

①精确查找,进入网站后,如果你知道银行的SWIFT代码(BIC Code)或机构关键字(Institution Keyword),可以做快速查找它的信息;例如:中国银行的 关键字是Bank of China,输入就可以查询中国银行在全世界的分行的SWIFT Code,当然包括大陆各地的代码。从搜索结果可以看到,内地分行的开始8位全部是BKCHCNBJ,可以直接在BIC搜索下输入这8位,列出国内中国银 行各地分行的SWIFT Code。

②若不太清楚,那么就可进入另一个查询页面,进行详细的查找,点击下方的位置即可进入。

国内各银行总行的SWIFT代码

中国银行:BKCHCNBJ

工商银行:ICBKCNBJ

建设银行:PCBCCNBJ

农业银行:ABOCCNBJ

招商银行:CMBCCNBS

交通银行:COMMCN

中信银行:CIBKCNBJ

兴业银行:FJIBCNBA

民生银行:MSBCCNBJ

华夏银行:HXBKCN

浦发银行:SPDBCNSH

汇丰银行:HSBCCNSH

渣打银行:SCBLCNSX

花旗银行:CITICNSX

德意志银行:DEUTCNSH

瑞士银行:UBSWCNBJ

荷兰银行:ABNACNSH

香港汇丰:BLICHKHK

香港花旗:CITIHK

香港东亚银行:BEASCNSH

代码后需要统一添加分行阿拉伯数字代号。