2006年03月31日

  如何使用 M630 进行 MODEM 拨号上网?

注意事项:

  1 、拨号上网时手机需要开通 GPRS 功能,目前仅中国移动支持。

  2 、 GPRS 费用较贵( 0.03 元 /KByte ),建议咨询当地移动,并定制相应的套餐。

  GPRS 套餐有 CMWAP 、 CMNET 区别,需选择支持 CMNET 的。

  一般套餐有上限,因此进行 WWW 上网时建议仅浏览网页、聊天。不进行下载上传大文件,或收发大邮件操作。

上网步骤:

  一、安装串口驱动程序: http://www.amobile.com.cn/uploadfiles/down_20050922192411.rar

  二、进入菜单:工具箱-电脑通信

  三、插入 USB 线,查询电脑的设备管理器:调制解调器- Amoi WMC 1.0 Modem

  四、设置调制解调器属性,初始化命令:at+cgdco nt=1,"ip","cmnet",,0,0 说明: ip 为连接类型, cmnet 为中移动参数,后面紧接着 2 个逗号。cgdco与nt是连在一起的,上面分开了是网页显示的问题。

  五、退出“电脑通信”菜单,返回待机界面。

  注意: 必须这么操作,因为“电脑通信”是供电脑同步使用,此时退出该菜单才可使用 MODEM 功能。

  六、新建拨号连接:控制面板-网络和拨号连接-新建连接-拨号到专用网络-调制解调器- Amoi WMC 1.0 Modem -完成。

  电话号码: *99***1#

  用户名、密码: cmnet

  七、进行拨号操作。

  只是刚拨号成功,就花去了我 (6083+965)/1024*0.03=0.21 元。如果没有申请包月,不要随便上网啊。。。

2006年03月29日

1、语文老师提供的材料名句默写:后宫佳丽三千人,某生接:铁棒磨成锈花针。

  2、也是语文考试默词,题目是:玉不琢,不成器,结果我们班一强人答:朋友妻, 不客气,第二天家长就被叫到学校了。

  3、又是语文考试,题目:长江后浪推前浪。某人答:一代更比一代浪.结果自然是家长,又见家长。

  4、高中的时候考试有道题是这样的:请写出鲁迅先生的作品《藤野先生》中藤野先生的全名。其答案如下:藤野菜菜子,藤野英二狼,(当时正好有放棒球英豪这个动画片)藤野武大郎,藤野花道,藤野五十六,藤野内丰,藤野隆史等等等等,比较绝的有:藤野小绵羊,藤野大色狼等~~~气的老师在广播里骂我们无知。

  5、改卷,一题曰“清水出芙蓉”,或答“乱世出英雄”,或答“山村出美女”,或答“深海出蛟龙”……,叫人哭笑不得。

  6、还有一次,题目是:良药苦口利于病,偶一同学答曰:吸烟喝酒伤身体,末了还在后面加个感叹词—啊!!!

  7、考试有一题材为:葡萄美酒夜光杯,接下句。有一同学这样写道:“金钱美女一大堆。:”结果不言而喻。

  8、上句:穷则独善其身。 一同学接下句:富则妻妾成群。

  9、一次老师提问:“烈士暮年,下句什么?” 偶没听过这句,听成“烈士墓前”了于是张口就说“黄泉路上”全班晕倒~~~~~~

  10、某次考试考语文,我的同桌在默词的时候突然灵感来了~前句:问君能有几多愁 要求补后句,他补了句:恰似一道红叉卷上留(原句:恰似一江春水向东流) 老师毫不客气得在卷上打了个X~他还沾沾自喜说:“原来我的灵感好灵的!”

  11、初中的时候有一回考语文,之后我和另外几个同学被老师叫去帮忙改其他班的试卷。有一个名言题,吾生也有涯,有个学生接了一句对仗特工整的:尔死也无边。

  12、忧劳可以兴国,对曰:闭目可以养神。

  13、蝉噪林愈静, 对曰:狗叫人更欢。(巨寒)

  14、初中的时候考历史,问“刘邦的休养生息政策是什么?”

    我一同学答到:笑一笑,十年少,少娶妃子多睡觉。

  15、有次考语文,问:春风吹又生的前面是什么?      

    答:斩草不除根。(汗~~~那几天看武侠小说看多了)

  16、有次默写<<沁圆春,雪>>,一人写:数下流人物,还看今朝~~~~

(2003.7.29)

    天气很热,上海也达到了六十年来的最高温,为了防止出门中暑,只好闭关自修。趋着心情不错,写一点小东西以馈读者,希望大家在酷暑中获得一份轻松与惬意。

    今天和大家讨论一下对菜单的改造。网上有不少好控件,都能实现在Menu里加入图片,但是少有更改Menu中的字体与颜色的。其实,我们通过对.net自带控件的操作,就可以实现加图片与改字体与颜色的目标。本文主要是讨论字体与颜色的更改。如下图所示:

    通过菜单项的改变,窗体上的“天气真热”Label会相应地改变字体与前景色。

    有的朋友会问,一般的控件不是只要设置font、forecolor、backcolor属性不就能达到Henry要做的事情了吗?但是Menu不行,原因是:Menu的父类是Component,不是Control!而那些属性是Control类的,如果Menu是从Control类继承下来的,当然就不会有我这篇小文的存在意义了。所以我们应该把Menu称为组件,以示与Control的派生控件相区别。大家以后使用控件时,也要注意一下它的父类是什么,以明确是否能进行某项功能的实现。

    Menu内含三个类:MainMenu(主菜单)、ContextMenu(弹出菜单)、MenuItem(菜单项)其中,MainMenu和ContextMenu都是容器,MenuItem 类提供使我们得以配置菜单项的外观和功能的属性。因此,我们的工作主要就是针对MenuItem去的。上图实现的是在ContextMenu菜单,MainMenu的形式也是一样的。

    现在我们是要做打破常规的事,所以要将MenuItem的OwnerDraw设为true,接管下绘制菜单项的重任,自已动手DIY一把。

    那么我们来分析一下,当OwnerDraw设为true之后,哪些事件或方法是需要我们重写的。查一下MSDN就可以看到:DrawItem事件是当OwnerDraw设为true后发生的,接着查一下它的帮助,看一下事件处理程序中的事件数据是如何定义的。

    [MSDN]:事件处理程序接收一个 DrawItemEventArgs 类型的参数,它包含与此事件相关的数据。下列 DrawItemEventArgs 属性提供特定于此事件的信息。

属性		说明			属性	说明

BackColor		获取所绘制的项的背景色	Graphics	获取要在其上绘制项的图形表面
Bounds		获取表示所绘制项的边界的矩形	Index	获取所绘制项的索引值
Font		获取分配给所绘制项的字体	State	获取所绘制项的状态
ForeColor		获取所绘制项的前景色

    果然,我们需要的三个属性全都在这了!那么,我们实现这一事件不就行了?我按MSDN的例子实现了它,可是,出来的效果却不对,ContextMenu的宽度与高度都只有一点点大。看来是没有设置好MenuItem的宽与高了。

    Item的宽与高在哪设置?MenuItem的属性中并没有这两项,找来找去,最后在MeasureItem事件中找到了。

属性		说明

Graphics		获取要测量的 Graphics 对象

Index		获取或设置需要有高度和宽度的项索引

ItemHeight	获取或设置由 Index 指定的项高度

ItemWidth		获取或设置由 Index 指定的项宽度
    也就是说,我们想要绘制出MenuItem,必须先计算出将要绘制的Item的宽度与高度。在这里需要说明的是,
    项的宽度与高度不光是由文字部分决定的,还取决于item中的图片部分,所以我们的计算公式是:
    项的宽度=图片的宽度+文字的宽度
    项的高度=max (图片的高度,文字的高度)
    本文没有加入自定义图片,只是加入了一个圆点的选项符号,它是由DrawMenuGlyph共享方法实现的。
    那么它的高度与宽度是如何界定的呢?很简单,
    使用SystemInformation.MenuCheckSize就可确定在选定菜单项旁显示选中标记的图像的尺寸。
    圆点的默认大小是高宽皆为13像素。
    DrawMenuGlyph是会根据我们给出的图片的位置大小绘制圆点的大小的。
    所以,我们还必须在DrawItem事件中给出图片的大小:
    图片的高度=文字的高度
    图片的宽度=图片的默认宽度*放大的倍数=图片的默认宽度*文字的高度\图片的默认高度
    昏头昏脑地说了这么多,还是用代码来描述更为清晰:
 
Dim oldMenuItem As New MenuItem()

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs)
     Handles MyBase.Load

        Me.ContextMenu = New ContextMenu()

        Dim MenuText As New ArrayList()

        MenuText.Add("宋体")

        MenuText.Add("黑体")

        MenuText.Add("楷体_GB2312")

        Dim MyMenuItem(MenuText.Count - 1) As MenuItem

        Dim i As Integer

        For i = 0 To MyMenuItem.Length - 1

            MyMenuItem(i) = New MenuItem(MenuText(i))

            MyMenuItem(i).OwnerDraw = True '每一项都要设

            MyMenuItem(i).RadioCheck = True '每一项的选项钮都开启

            '指向单击事件的处理程序

            AddHandler MyMenuItem(i).Click, _

                   New EventHandler(AddressOf MenuItem_Click)

            '指向MeasureItem事件的处理程序

            AddHandler MyMenuItem(i).MeasureItem, _

                   New MeasureItemEventHandler(AddressOf MenuItem_MeasureItem)

            '指向DrawItem事件的处理程序

            AddHandler MyMenuItem(i).DrawItem, _

                   New DrawItemEventHandler(AddressOf MenuItem_DrawItem)

            ContextMenu.MenuItems.Add(MyMenuItem(i))

        Next i

        '记录下初始选中的项

        oldMenuItem = ContextMenu.MenuItems(0)

        oldMenuItem.Checked = True

    End Sub

    Private Sub MenuItem_Click(ByVal obj As Object, ByVal e As EventArgs)

        oldMenuItem.Checked = False '改变原有的菜单项的选取状态

        oldMenuItem = CType(obj, MenuItem) '转型处理

        oldMenuItem.Checked = True  '设置现选中的菜单项的选取状态

        Select Case oldMenuItem.Text '根据菜单内容设置label的色彩

            Case "宋体"

                Label1.ForeColor = Color.Red

            Case "黑体"

                Label1.ForeColor = Color.Green

            Case "楷体_GB2312"

                Label1.ForeColor = Color.Blue

        End Select

        '根据菜单内容设置label的字体

        Label1.Font = New Font(oldMenuItem.Text, Label1.Font.Size)

        Invalidate()

    End Sub

    Private Sub MenuItem_MeasureItem(ByVal obj As Object,ByVal e As MeasureItemEventArgs)

        Dim mi As MenuItem = CType(obj, MenuItem)

        Dim fnt As New Font(mi.Text, 12, FontStyle.Bold) '12是字体的大小

        Dim szf As SizeF = e.Graphics.MeasureString(mi.Text, fnt, 1000)

        '得到文本的宽度

        e.ItemWidth = CInt(Math.Ceiling(szf.Width))

        '得到文本的高度

        e.ItemHeight = CInt(Math.Ceiling(szf.Height))

        '项的宽度=文本的宽度+图片的宽度

        e.ItemWidth += SystemInformation.MenuCheckSize.Width * _

                       e.ItemHeight \ SystemInformation.MenuCheckSize.Height

    End Sub

    Private Sub MenuItem_DrawItem(ByVal obj As Object, _

                                  ByVal e As DrawItemEventArgs)

        Dim mi As MenuItem = CType(obj, MenuItem)

        Dim g As Graphics = e.Graphics

        Dim br As Brush

        Dim fnt As New Font(mi.Text, 12, FontStyle.Bold) '12是字体的大小

        Dim rectCheck As Rectangle = e.Bounds '这样做是把选钮图片的高度设为文本的高度

        rectCheck.Width = SystemInformation.MenuCheckSize.Width * _

                         rectCheck.Height \ SystemInformation.MenuCheckSize.Height

        Dim rectText As Rectangle = e.Bounds

        rectText.X += rectCheck.Width 'item的宽度=图片的宽度+文字的宽度

        e.DrawBackground()'重写这个函数,可以实现选中项的XP效果

        '绘制表示选中的圆点。如果想加入图片,请在这里考虑一下

        If (e.State And DrawItemState.Checked) <> 0 Then

            ControlPaint.DrawMenuGlyph(g, rectCheck, MenuGlyph.Bullet)

        End If

        '设置选项的前景色

        If (e.State And DrawItemState.Selected) <> 0 Then

            br = SystemBrushes.HighlightText '选中的会变成蓝底白字

        Else

            Select Case mi.Text

                Case "宋体"

                    br = New SolidBrush(Color.Red)

                Case "黑体"

                    br = New SolidBrush(Color.Green)

                Case "楷体_GB2312"

                    br = New SolidBrush(Color.Blue)

            End Select

        End If

        g.DrawString(mi.Text, fnt, br, RectangleF.op_Implicit(rectText))

    End Sub
 
    您动手试一下吧,很快就会明白实现的原理了。然后对其进行扩展,就能实现极富个性的菜单了。
    本文仅是起了一个头,更深入的研究,还需要您自己去钻研。
2006年03月15日

1995年莲波在ACT上提供过一个Simon版本的“诗经”格式的汉语译本:

  From:“莲波” Subject: [LOTUS]伪造诗经
  Date: Tue, 21 Mar 1995 03:37:21 GMT

  闲来无事,听歌,听老歌。Scarborough Fair是我很喜欢的一首老歌。因为它不那么美国,因为它那种幽怨的低唱。我总觉得它和《诗经》有一种很微妙的契合,纵然一个是公元之前,而另一个是百世以后。它的旋律,仿佛是一阵清风,夹杂着野草野花的苦寒轻香,在大地上缓缓掠过后而我更看见一个穿白衣服的人摇着木铎,边走边呼唤着苍穹,在一望无际的大地与村怦之间采集梦幻。真地很难忘却这种莫名的联想。很喜欢在异邦的文明之中,还能寻出这样令我心折的古中国的意韵。试着用《诗经》的格式翻了下,填到原曲中,竟也能唱。

  问尔所之,是否如适 Are you going to Scarborough Fair
  蕙兰芫荽,郁郁香芷 Parsley sage rosemary and thyme
  彼方淑女,凭君寄辞 Remember me to one who lives there
  伊人曾在,与我相知 She once was a true love of mine

  嘱彼隹人,备我衣缁 Tell her to make me a cambric shirt
  蕙兰芫荽,郁郁香芷 Parsley sage rosemary and thyme
  勿用针剪,无隙无疵 Without no seams nor needle work
  伊人何在,慰我相思 Then she will be a true love of mine

  伴唱: 彼山之阴,深林荒址 On the side of hill in the deep forest green
  冬寻毡毯,老雀燕子 Tracing of sparrow on snow crested brown
  雪覆四野,高山迟滞 Blankets and bed clothes the child of maintain
  眠而不觉,寒笳清嘶 Sleeps unaware of the clarion call

  嘱彼隹人,营我家室 Tell her to find me an acre of land
  蕙兰芫荽,郁郁香芷 Parsley sage rosemary and thyme
  良田所修,大海之坻 Between the salt water and the sea strand
  伊人应在,任我相视 Then she will be a true love of mine

  伴唱: 彼山之阴,叶疏苔蚀 On the side of hill a sprinkling of leaves
  涤彼孤冢,珠泪渐撤 Washes the grave with slivery tears
  昔我长剑,日日拂拭 A soldier cleans and polishes a gun
  寂而不觉,寒笳长嘶 Sleeps unaware of the clarion call

  嘱彼隹人,收我秋实 Tell her to reap it with a sickle of leather
  蕙兰芫荽,郁郁香芷 Parsley sage rosemary and thyme
  敛之集之,勿弃勿失 And gather it all in a bunch of heather
  伊人犹在,唯我相誓 Then she will be a ture love of mine

  伴唱: 烽火印啸,浴血之师 War bellows blazing in scarlet battalions
  将帅有令,勤王之事 Generals order their soldiers to kill and to fight for a cause
  争斗缘何,久忘其旨 They have long ago forgotten
  痴而不觉,寒笳悲嘶 Sleeps unaware of the clarion call (再重复一遍第一段)



 thepro 回复于:2003-12-07 14:09:05
斯卡布罗集市

您去过斯卡布罗集市吗?
芜荽,鼠尾草,迷迭香和百里香
代我向那儿的一位姑娘问好
她曾经是我的爱人。

叫她替我做件麻布衣衫
(绿林深处山刚旁)
芜荽,鼠尾草,迷迭香和百里香
(在白雪封顶的褐色山上追逐雀儿)
上面不用缝口,也不用针线
(大山是山之子的地毯和床单)
她就会是我真正的爱人。
(熟睡中不觉号角声声呼唤)

叫她替我找一块地
(从小山旁几片小草叶上)
芜荽,鼠尾草,迷迭香和百里香
(滴下的银色泪珠冲刷着坟茔)
就在咸水和大海之间
(士兵擦拭着他的枪)
她就会是我真正的爱人。

叫她用一把皮镰收割
(战火轰隆,猩红的枪弹在狂呼)
芜荽,鼠尾草,迷迭香和百里香
(将军们命令麾下的士兵杀戮)
将收割的石楠扎成一束
(为一个早已遗忘的理由而战)
她就会是我真正的爱人。





"斯镇的颂歌"详解
弓枚

  

由美国歌星Simon & Garfunkel演唱的Scarborough Fair / Canticle从60年代开始,成为了全世界歌迷最喜爱和熟悉的优美歌曲之一,在中国听众中流行也有十多年。原本以为并不很艰深的歌词,或者原本并不需要理解很深的歌词,竟然引起非常多人的好奇,引来各式各样的诠释。
最初接触到这首歌是80年代初期的事情,在陶醉于动听的歌曲旋律和婉约的歌词蕴意之后,我尝试从自己质朴的感受和肤浅的角度理解并评介这首歌,文字先后出现在1990年出版的音带《美国乡村歌曲选编》(出版社令人尴尬地把几乎全部不属于乡村歌曲的歌带命名为这样)所附的小册子上,《英文新歌100首》(1991)和《吉他弹唱技法》(1996)上。措辞虽稍有改动,但理解和感受基本沿袭了最初的内容。此后随着网络带来的方便,才不断接触到关于这首歌的来龙去脉和英美的历史文化背景,再回顾从前的文字免不得有些汗颜。所幸当时对歌曲的评论多出于一己感受,分析理解多虚于委蛇,尤其对"Parsley, sage, rosemary, and thyme"一句用了较为保险的说法,因而即使今天读来也并无严重的偏差。这期间也看到他人对此曲的评介,但多不涉及词句或附和通常的说法,自己也就一直懒于对此再做深入评述。
然而日前浏览一个评介英文歌曲的网站时,赫然发现评论Scarborough Fair的文章中有对我从前文字大加挞伐者。后据网站主持人声明该文原载于《疯狂英语》,出自一名为"若非"者手笔。其文云:

剖析:

  听歌重在听“歌眼”,正如文章中标识题旨的“文眼”。这一首SCARBOROUGH FAIR是大家再熟悉不过的经典老歌了;歌眼就是PARSLEY ,SAGE ,ROSEMARY AND THYME“芜荽,鼠尾草,迷迭香和百里香”,歌者在SAGE与THYME上有意延长似乎是在提醒我们注意:SAGE既指鼠尾草,同时又有“贤明/圣哲” 之意;而THYME则与TIME谐音。让我们再度回头审视歌名(注意:歌词与衬词中都及可能潜藏着歌眼),原本熟悉的歌名似乎也变了面目:SCAR- BORROW-FAIR。SCAR与FAIR昭示了歌者的本意——战争与和平(ANTI-WAR)。

  歌曲以一位在战火中亡故的普通士兵的口吻唱出,他再也不能回到那朝思暮想的家乡,再也不能与心上人一同享受生活的甘甜了。心中的悲愤化作一声声催人泪下的控诉:PARSLEY, SAGE,ROSEMARY&THYME。成千上万普通士兵如野花一般被战火摧毁在沙场上,那些战争的作俑者最终难逃时间的淘洗。野花自在芳香;然而,唯有时间才能检验出谁是真正的贤明圣哲;或许,亘古永恒的时间才是真正的圣哲!TIME IS FAIR。

  歌曲作于六十年代末,是奥斯卡奖影片《毕业生》(THE GRADUTE,1967)的插曲之一,联系当时的时代背景(越南战争),不难领会歌曲的内涵。歌作者保罗.西蒙是六、七十年代青年的代言人。他曾在英国修习英国文学,文学底蕴深厚,因而其歌词文字意境深邃。本歌歌词改编自一首十七世纪英格兰民谣。在演唱上西蒙和加丰科的配合可谓天衣无缝。在万籁寂静的深夜里,让歌声流入你的心田,TOUCH THE DEEP OF YOUR HEART!

我在惊骇之中一口气读完这段"精当透彻的剖析",却释然发现其中充满严重的臆断和妄言,非但断章取义,竟煞有介事地拆字取义。而这种对史实缺乏考证,甚至连阅读理解应融会贯通和自圆其说都做不到的辩驳,居然还如此肆虐流行,使我颇为不解。
这首原本在中国非常流行的经典英文歌曲,又因选用它作主题曲之一的电影《毕业生》(The Graduate)开始在电视上播放,势必引起更大的关注和流行,而对它的理解却还存在如此谬误流传,如此等等激发了我深入考证和辨析的兴趣。

一、斯镇溯源

多年来我一直将Scarborough Fair / Canticle歌名译为"斯镇的颂歌",也注意到有不少人同意并沿用这种译法。另一个与此分歧较大的译法为"斯卡波罗夫集市"。但很显然,像这类音节较多的地名,类似将Philadelphia处理为"费城"的译法要稍好,Scarborough译为"斯镇"似为妥当。问题是我很长时间里将"集市"演绎为"集镇",所以误将Scarborough Fair整体理解为一个"斯镇"。这是我颇感汗颜之处。
其实Scarborough是英格兰东北部一自治镇,毗邻北海。该镇人口4万多,有悠久的历史,至今以铜器时代的村落遗址和公元四世纪罗马人的信号塔吸引游人,是著名的海滨度假地。英国著名的女诗人Dame Edith Sitwell(1887-1964)和著名作家Sir Sacheverell Sitwell(1897-1988)都是Scarborough人,美国电影演员Charles Laughton也生于此镇。歌曲Scarborough Fair中所指的无疑是这里。
既然Scarborough是一个地名,那么Scarborough Fair理解为举办于该地的集市较为合适。如此,Scarborough Fair / Canticle译为"斯镇的集市和副歌"似乎最妥贴。但这可能会使人误解为"斯镇的集市"和"斯镇的副歌",后面我们可以看到这段副歌的内容与"斯镇" 是毫无关联的,更准确的翻译应为"斯镇的集市和一段副歌"或"斯镇的集市(外一首?quot;。作为歌名,这样的译法又显然太过冗赘,相比之下倒不如"斯镇的颂歌"(Scarborough Fair / Canticle)或"斯镇的集市"(Scarborough Fair)。其实当我们在后文了解到这首歌的来历细节之后,就会发现Scarborough Fair的歌名对整首歌的内容是全然无关紧要的,Scarborough Fair也好,有的版本记载的Cape Ann也好,完全是信手拈来,是不同的民歌手演唱时随意改动的地名。
但有一点是确定的,Scarborough Fair作为歌名是远在美国歌星Paul Simon(保罗·西蒙,1941- )百曛暗氖虑椋琒imon不可能如"若非"所言在60年代末以其深厚的文学功底将Scarborough Fair做成"歌眼"。 而Scarborough这个词作为地名,更是古已有之,至少在我考证这首歌由来一直到中世纪,也没有见有将Scarborough Fair拆解为Scar-Borrow-Fair,再以Scar与Fair昭示战争与和平(Anti-War)的说法。
就算再推至上古,Scarborough是由scar(伤疤)和borough(自治镇)构成的词,也不尽然就如有些人可翻译为"创伤之城"。谁知此地名是不是因领地所有者脸上的疤而来呢?而且,Scarborough这个地名不仅在英格兰久已有之,而且受其文化影响的美国(缅因州)甚至特利尼达和多巴哥也有同名的城镇,再小的地名如加拿大多伦多的Scarborough Civic Centre等更是多不胜数。试想一个人们如此认同的地名出现在歌中时,谁又会去解谜似地剖析它的含义呢?即便可以拆字取义,谁会把"合肥的故事"联想成 "两个胖子做古文"呢?

二、矮子骑士

Scarborough Fair的歌曲原型来自The Elfin Knight (Child #2),即"矮子骑士"(查尔德民歌集第二号),最早见诸记载是在英格兰1673年。这首民谣主要流传于英伦三岛和爱尔兰,在美国东部一些州和加拿大西部地区也有传唱的记载。在不同记载中不同的歌词版本有近二十种,不同的歌名也有十多种。歌名为Scarborough Fair的版本见于十九世纪。尽管如此,歌曲最初的内容情节大体相似,只是越到近代原来的情节线索越不明显,矮骑士的身份被淡化甚至去除。下面就是最初版本的The Elfin Knight歌词。

The Elfin Knight


MY plaid awa, my plaid awa,
And ore the hill and far awa,
And far awa to Norrowa,
My plaid shall not be blown awa.

1 The elphin knight sits on yon hill,
Ba, ba, ba, lilli ba
He blaws his horn both lewd and shril.
The wind hath blown my plaid awa

2 He blowes it east, he blowes it west,
He blowes it where he lyketh best.

3 ’I wish that horn were in my kist,
Yea, and the knight in my armes two.’

4 She had no sooner these words said,
When that the knight came to her bed.

5 ’Thou art over young a maid,’ quoth he,
‘Married with me thou il wouldst be.’

6 ’I have a sister younger than I,
And she was married yesterday.

7 ’Married with me if thou wouldst be,
A courtesie thou must do to me.

8 ’For thou must shape a sark to me,
Without any cut or heme,’ quoth he.

9 ’Thou must shape it knife-and-sheerlesse,
And also sue it needle-threedlesse.’

10 ’If that piece of courtesie I do to thee,
Another thou must do to me.

11 ’I have an aiker of good ley-land,
Which lyeth low by yon sea-strand.

12 ’For thou must eare it with thy horn,
So thou must sow it with thy corn.

13 ’And bigg a cart of stone and lyme,
Robin Redbreast he must trail it hame.

14 ’Thou must barn it in a mouse-hell,
And thrash it into thy shoes sell.

15 ’And thou must winnow it in thy looff,
And also seek it in thy glove.

16 ’For thou must bring it over the sea,
And thou must bring it dry home to me.

17 ’When thou hast gotten thy turns well done,
Then come to me and get thy sark then.’

18 ’I'l not quite my plaid for my life;
It haps my seven bairns and my wife.’
The wind shall not blow my plaid awa

19 ’My maidenhead I’1 then keep still,
Let the elphin knight do what he will.’
The wind’s not blown my plaid awa

我们可以看出歌词中的故事讲的是:矮骑士与一位相好的姑娘调侃,他答应娶姑娘,但她必须做到一系列不可能做到的事情;而姑娘答应做到这些事情,但矮骑士必须先做到她要求的种种无法实现之事。这种起源于男女情人相互诘问的民谣形式,显然广泛存在于许多民族的民间文化当中,《刘三姐》中无数的对唱便是此类。再此后的版本中,变化最大的是诘问的内容,可以想见这是因为诘问往往是即兴变化的。1810年版本中的此部分既保留了原歌曲的主要情节,又接近今天我们听到的 Scarborough Fair的内容,大意为:你能否为我做一件亚麻衬衣,但不能有褶缝和针角?濯洗于远方的枯井,晾于从未开花的荆棘?好,你提了三个问题请先回答我的问题,能否为我在沙海之间找一方土地?用羊角耕地,播一粒胡椒种,收割以皮镰刀,束以孔雀羽?做完了这些事你再来取你的亚麻衬衣。
而我们今天听到的Simon & Garfunkel的演唱录制于1965年,相互诘问的情节已支离破碎,很难看出,读起来倒像是昔日情人间的私语。另外矮骑士完全消失,主人公可以引申为一般的普通人。这是这首古老民歌被赋予新意的所在,全无Paul Simon加入或更改的词句,60年代美国的背景又如何被植于字里行间的呢?

三、鼠尾草和百里香

值得一提的是,并不是所有的版本中都有parsley sage rosemary and thyme(芫荽、鼠尾草、迷迭香和百里香)这一句,较早出现于记载中的是1810年的版本,还有的版本中甚至是ivy and holly(常春藤和冬青)等完全不同的东西。据分析这些字句在早先的民歌中未必不存在,只不过它们是以和声副歌或过渡句的形式出现,而且即兴的变化较多,因而不易记载而已。这在它们出现的版本中也可以窥见端倪,parsley sage rosemary and thyme或sing ivy,sing holly出现往往在第一段,在其后段落中就省略不记了。
有学者认为像parsley、sage、rosemary、thyme、ivy或holly等植物常出现在英国文学中艳情或诱惑类的描写里,因而带有明显的煽情意味。如此解析直观感觉已有些委曲,再如"若非"解sage为"贤哲",thyme为"时间"则实数荒诞不经。
我依然觉得自己在10年前将parsley sage rosemary and thyme理解为不相干插入的四种植物,是一个更可信的思路,只是当时没有旁征博引地展开罢了。
其实我们在关注今日世界上各种文化间的千差万别之时,应当注意到它们在最初阶段和原始形式时有非常多的共性,民谣便是一个典型的例子。中国古典诗词评论者们将诗歌的修辞手法归纳为"比"和"兴"。比即譬喻,以彼物比此物;兴即寄托,先言他物以引起所咏之词。"关关雎鸠,在河之洲"即是兴,而不是比。然而随着诗歌日渐从劳动人民口头传唱衍化为文人士大夫案几上的玩意儿之后,兴的手法便逐渐消失。文人们觉得不在"兴"中兼蓄以"比"便不显其骚客本色,以至于今天无数在文人教化中茁壮成长起来的新文化人,若非在"兴"中找出些"比"意,则食不能甘味而寝不能安枕。sage寓意为"贤哲",thyme比拟为"时间 ",然后二者勾连,如此方觉"精当透彻"。
在文人墨客们摒弃兴的手法而自得于其繁荣时,兴的表现方式仅存于依然野生的民歌当中。新疆民歌中"达板城的石头圆又平,西瓜大又甜";陕北民歌"山丹丹花儿背洼上开,你有什么心事慢慢来";美国民谣"Where Have All The Flowers Gone"就都仍保留着明显的只兴而不比的词句。任何试图用比来解析它们的做法都会是很荒唐的。睿智的民歌继承人王洛宾或Pete Seeger等也都不刻意追求意兼比兴。
假如我们用兴的表现手法来解释出现在Scarborough Fair中的parsley sage rosemary and thyme一句时,这四种常作调味香料的植物与内容的不相干岂不是非常好理解吗?再想象这类的词汇即兴出现在原始的和声副歌或过渡句中的情景,还有什么理由非给它们找个说法,非把它们说成是"歌眼"?

四、士兵真死了吗?

在"若非"的评论中乍读到"歌曲以一位在战火中亡故的士兵的口吻唱出"时,颇感意外。Scarborough Fair主歌显然并没有"死去士兵"的痕迹,而从副歌Canticle看,我一直理解是一个士兵从回忆山乡童年到面对战争现实。考虑到这一段歌词才真正是Paul Simon创作于60年代并加入Scarborough Fair的,我还真有点相信士兵已经死去的说法。可是当我反复在Canticle中演绎这种说法时,并不能完全自圆其说,总有一些细节相互矛盾的感觉。
"若非"评论中一面称Scarborough Fair是一首十七世纪的英格兰民谣,一方面又说歌曲作于60年代末,他可能实在不清楚歌中哪些来自十七世纪,而哪些来自60年代。正因如此他才替Paul Simon拆解Scarborough Fair、Sage和Thyme的吧?
确实Scarborough Fair是在Simon & Garfunkel加入了Canticle演绎之后才开始风靡全球的,但Scarborough Fair的词、曲甚至吉他伴奏指法都是Simon在英国民谣圈盘桓时期从英国歌手Martin Carthy那里拷贝过来的。多年之后Carthy起诉Simon侵犯其吉他伴奏编配版权,还以胜诉告终。Scarborough Fair既不是Simon的手笔,也非Carthy原创。出自Simon之手的只是Canticle和崭新的编配。
Canticle是Paul Simon一首旧作的片断,原作名为The Side of a Hill,曾先Scarborough Fair / Canticle于1965年出版,收录在Simon在英国出版的一张独唱专辑PAUL SIMON SONGBOOK。当我将这首歌词找来读过之后,Canticle中的内容情景才清晰合理地联系在一起。

The Side of a Hill


On the side of a hill
In a land called Somewhere
A little boy lies a sleep
In the earth
While down in the valley
A cruel war rages
And people forget what a
Child’s life is worth

On the side of a hill
A little cloud weeps
And waters a grave
With its silent tears
While a soldier cleans
And polishes a gun
That ended a life
At the age of seven years

And the war rages on
In a land called Somewhere
And generals order
Their men to kill
And to fight for a cause
They’ve long ago forgotten
While a little cloud weeps
On the side of a hill

山坡上一个无辜的孩子被枪杀,因为山谷里正进行着一场战争。枪杀孩子的战士正擦着枪,他也将是无谓战争中的一个无辜牺牲者。当Simon把这样的情节与 Scarborough Fair混合在一起之后,战士的心里自然而然又出现了一位远方的恋人,又一个无辜的受害者笼罩在战争残酷的阴影当中。两个原本不复杂的故事被这样的交织,造成了重重叠叠想象的余地。这是Paul Simon特别擅长而在60年代特别喜欢使用的手法。在那张出版于1966年的专辑PARSLEY SAGE ROSEMARY AND THYME中,第一首歌Scarborough Fair / Canticle使用了两首歌重叠,而最后一首歌Silent Night / Seven O’clock News则将歌曲"平安夜"与1965年某晚七点的新闻重叠在一起,谋杀、越战、民权运动、反战示威、政客的嘴脸和镇压行径与圣诞前夜的圣洁气息形成了耐人寻味的反差。Paul Simon令人称奇的是他超凡的想象力而远不止是他的文学功底,不仅混合歌曲,经他片断处理过的The Side of a Hill也给人们的理解凭添疑云。
让我们再看一看选用Scarborough Fair / Canticle为主题曲之一的电影《毕业生》,这部由Mike Nichols(迈克·尼克尔斯)执导,Dustin Hoffman(达斯廷·霍夫曼)主演的影片本身也是一个层次重叠,反差交织的故事。60年代中期社会的动荡和危机与中产阶级小生活圈的平静无聊,年轻人理想主义的真诚与中年人的虚伪和堕落,健康的恋爱激情与畸形的肉欲刺激,……在这无数重的反差当中再加入Scarborough Fair / Canticle的曲意重重,反过来电影再加于歌曲的重重曲意,其复杂和耐人寻味程度实在令人赞叹不已。这是Simon追求的,Nichols追求的,也是Hoffman追求的艺术的错综复杂性,是崛起于60年?quot;思想大解放时期"的许多艺术家共同偏好的追求。这岂是一个"反越战"所能涵盖的主题?
士兵真的死了吗?在歌曲Scarborough Fair / Canticle至少还没有,也许明天,因为战争还在继续,因为无谓的战争还将无休止地再起。

五、克拉里昂号

评论家们总爱用完美主义来形容Paul Simon,他从事音乐的投入精神和他较低的作品产出数量便能说明一些问题。具体到Scarborough Fair / Canticle这首歌,您便可以对他的精益求精略见一斑。
您以为我单指歌词意象的重峦叠翠吗?岂止于此。这首歌的演唱和伴奏同样处理得错落有致。这许多年一直听录音,认为歌曲是由主声部、和声声部,再加上 Canticle三重声部组成。高音的主声部和Canticle由Art Garfunkel司唱,主歌和声声部由嗓音略黯的Paul Simon唱。可后来在他们演唱的原配乐谱上发现,原来主歌的两个声部根本不是我们听上去和想象中的主与和的关系,而是由Garfunkel和Simon 两人各自由主音到和声,由和声到主音交替穿插演唱的。Canticle完全不同的曲调与歌词再由Art纯净的嗓音单独演绎、合成。
如此丰富表现的人声演唱,为伴奏提出了难题。Simon使用吉他伴奏时在第七品位上使用了变调夹,使通常接近人声的吉他音色被拔得高洁缥缈,如晴空上的流云。另外若隐若现的弦乐则像是更远处淡淡的山水。音乐上如此分沓的层次处理与内容的层次交织,构思之巧妙与严密真是匪夷所思。常好奇歌词中Clarion call的声音,心想要是能将其加入伴奏或为可观,可已然如此缜密的结构层次里,哪儿还能加得下呢?

六、何谓牵强?

何为"牵强附会"?把不相联系的事物强说成有某种联系。
我在十年前解释parsley sage rosemary and thyme时明明是相反,把"原本有某种联系"的所谓"歌眼"说成是不相干的"四种芳香类花草",怎么我反倒成了"牵强得叫人哑然失笑"?我原本用的是一种保险的说法,因为大不了自己落一个理解不透的名声,而决不会背"牵强"这个自己更厌恶的名誉,谁承想这个屎盆子还是给扣了过来。
而这位自诩"点睛"者,只是在Scarborough Fair、sage和thyme这四个词上点了点,便声称龙已升空,便煞有介事地提醒读者联系60年代的大背景。怕您对60年代美国了解得太全面还要加注为:越南战争。就算他真的有点睛绝技,也先得把龙描清楚,至少也得把离"歌眼"近切的眉毛胡子分清楚。就算sage(鼠尾草)可以解为"贤哲", thyme(百里香)可以解为"时间",那紧挨着的parsley(芫荽)和rosemary(迷迭香)总得给个说法吧?是"蹲在芫荽和迷迭香中耗时间的贤哲"?
如此解析作品的手法使我觉得分外眼熟,想来查去,在《人间词话》中找到:

张惠言评苏轼《卜算子》(黄州定慧院寓居作):"缺月挂梧桐,漏断人初静。谁见幽人独往来,缥缈孤鸿影。惊起却回头,有恨无人省。拣尽寒枝不肯栖,寂寞沙洲冷。"云:"缺月,刺明微也。漏断,暗时也。幽人,不得志也。独往来,无助也。惊鸿,贤人不安也。回头,爱君不忘也。无人省,君不察也。拣尽寒枝不肯栖,不偷安于高位也。寂寞沙洲冷,非所安也。"
(王国维对此评论道:)"固哉皋文之为词也!飞卿《菩萨蛮》、永叔《蝶恋花》、子瞻《卜算子》,皆兴到之作,有何命意?皆被皋文深文罗织。"

原来"抢?quot;的人古已有之!而这里张惠言的牵强尚能在整体上自圆其说,若非的"歌眼"之说连这一点都做不到。
我一直希望看到研究和评介英文流行音乐的人多一些;评论的时候翻译转述少一些,自己的观点见解多一些;感性的东西少一点,理性的东西多一点。想不到我见到的一个符合条件者,竟像是做文字狱的高手和麦卡锡主义分子。也许是我错了,现今流行的文风是口没遮拦,过屠门而大嚼,只求快意而没想吃肉。


我在这里长篇大论一通,把艺术作品当作出土文物一样来考证其实很乏味无聊。怪只怪有人先不满足于不求甚解的欣赏,偏要从字缝里看出点深度,我于是依样画葫芦挖点深度看看。真正欣赏艺术作品,全然不需要先研究研究再欣赏欣赏。背景知识多了可能感受会更敏锐,感受会更多样化和更深切,但背景知识少的人得到的感受同样可以是美好、真挚、强烈和快慰的。任何一个艺术家也都不希望自己的作品给所有人完全一致的感受。当我觉得parsley sage rosemary and thyme就是四种芳香的花草,将眼前事引向一种弥散着甜蜜气氛的悠远画境中,在我的脑海里有一幅协调的画面,我何其乐融融耶。而当"若非"之类听 Scarborough Fair / Canticle这首歌时,他看到的是个别的单词,记起的是人所云、书所述的背景概念,想到的是与歌曲内容扯不上关系的意象"成千上万的普通士兵如野花一般被战火摧毁在沙场上",我真的想不出这样的欣赏快意何在?"在往来寂静的清夜里",你根本不需要歌曲流入你的心田,而是The Deep Of Your Heart tears the song words,rapes the image,然后你快哉其意?
假如有人将parsley sage rosemary and thyme解释为四种调味植物,而女主人公为一家名为Scarborough Fair餐馆的女老板或女招待,这倒是非常可信与生动的理解。因为我在网上的确看到过名为Scarborough Fair的美国小饭店。成千上万的普通读者、听众从他们个人经历的角度,从他们知识层次的角度感受文艺作品,能基本上完整地感知作品全貌,重要的是能找到特别的感动,何必要求他的感受符合什么说法呢?更何必要求他的感受符合作者的初衷呢?文艺作品的目标只有一个,没有对与错,那就是感动。

转载自龙族

感动世界的50首歌和他们背后的故事

      流传了近千年的《斯卡布罗集市》(Scarborough Fair)、因《泰坦尼克号》而一炮而红的《我心永恒》(My Heart  Will Go On)、莎拉·布莱曼为德国拳王告别赛而唱的《告别的时刻》(Time to Say Goodbye)……,首首都是经典,首首都仿佛昨日重现。美国二战名帅麦克阿瑟说过,老兵不死,他们只是慢慢消失。曾经感动世界、现在仍在传唱的老歌也是如此。
  如果声音还记得这些歌,在昏黄的静谧雨夜,你听到过,在夏日傍晚,回家的路上,你听到过,在满溢浓香的咖啡馆,你听到过,在你用力拥抱幸福的时候,你听到过都是一些熟悉的调子。
  这些异国的旋律,在你父辈年轻的时候,曾回荡在他们的收音机里,也许是科本,也许是鲍伯·迪伦,在你生命中的某一个时刻,曾萦绕在你的耳边。
  这都是一些老歌,总有一些似曾相识,在时光的洪流中,被冲刷得不见踪影,但你会想像,当这些歌在大街小巷飘荡的时候,你的影子被拉得很长。身边的房屋,并非现在看到的那个样子。也许你已经不甚熟悉,但是却仍然能感受到老街的地图存在于你的灵魂深处。似乎,你才上眼睛,还能感受到那时候阳光的颜色,空气的触感。或者,听到那吉他的拨弄声,你回到了彼端的时空,那个吉他手,又在你的对面弹唱-仿佛一张泛黄的老照。同是这样的老歌,同是这样的曲调。但是,你们已经相隔太远了,无论是空间,还是时间。麦克阿瑟说过,老兵不死,他们只是慢慢消失。老歌也是如此。在一个黄昏的夜晚,抱着一杯温热的咖啡,蜷缩在沙发中,喇叭里飘荡出一支早已不属于这个时代的旋律。这个时候,仿佛昨日重现,当初与这些乐曲相伴的情境与事件又闪回心头,但你只能在时间河流的彼岸遥望。
  是一些怦然心动的感触融化进我们的血液里。
  这是一本怀旧的书。随便翻开一首,时代和情感就从那个点,弥漫出来……

目 录

一、感怀时世

01、随风飘荡Blowing in the Wind
02、旧金山San Francisco
03、花儿都到哪里去了?Where Have All The Flowers Gone
04、地球之歌Earth Song
05、天堂中的另一天Another Day in Paradise   
06、我的梦想Dreaming my dreams  

二、心中至爱

07、属于我On My Own
08、卡萨布兰卡Casablanca
09、以吻封缄Sealed With A Kiss
10、难以忘怀Am I That Easy to Forget
11、一个崭新的世界A Whole New World
12、美女与野兽Beauty And Beast
13、我心永恒My Heart Will Go On
14、说你,就我Say You Say Me
15、老橡树上的黄丝带Tie A Yellow Ribbon Round The Old Oak Tree
16、当男人爱上女人When A Man Loves A Women
17、我会永远爱你I Will Always Love You
18、奔放的旋律Unchained Melody
19、世界末日The End Of The World

三、温情无限

20、阳光季节Seasons In The Sun
21、离家五百里500 Miles
22、风中之烛Candle in the Wind
23、友谊天长地久Auld Lang Syne
24、斯卡布罗集市Scarborough Fair
25、文森特Vincent
26、泪洒天堂Tears In Heaven
27、心的形状The Sharp Of My Heart
28、那些日子Those Were The Days
29、希望你在这里Wish You Were Here

四、哲理小品

30、乡村路,带我回家Country Road Take Me Home
31、加州旅馆Hotel California
32、寂静之声Sound Of Silence
33、当一个孩子出生的时候When A Child Is Born
34、柠檬树Lemon Tree
35、山鹰之歌EL CONDOR PASA
36、十一月的雨November Rain
五、音乐内外

37、猎犬Hound Dog
38、加利弗尼亚梦想California dreaming
39、挪威的森林Norwegian Wood
40、回忆Memory
41、告别时刻Time to say goodbye
42、航行Sailing
43、长路迢迢Long Long Way to Go
44、少年心气Smells Like Teen Spirit
45、昨天重现Yesterday Once More
46、月亮河Moon River
47、此情可待Right Here Waiting
48、彩虹Iris
49、如果上帝送来他的天使If God Will Send His Angels
50、音乐之声The sound of music

    每一次聆听,每一次都是感动。

[ 本帖最后由 EaglesKing 于 2006-3-14 20:08 编辑 ]


图片附件: post-430472-1141058499.jpg (2006-3-14 20:06, 41.93 K)

 

2006年03月08日

转载自【中国剑客技术联盟】

【02-21】全面的CS武器介绍图文,每把枪兵器迷必藏


【小刀】
Click here to open new window<br />
CTRL+Mouse wheel to zoom in/out
【B11】USP 制造商:德国汉克勒寇奇。口径 : .45 ACP。弹夹容量:12发/夹。弹药最大携带量:48发。空枪重量: 1 kg。弹重 : 15.2 克。初速 : 886 英尺/秒。枪口动能: 553 焦耳

【B12】【glock 18】奥地利格洛克有限公司(Glock G.M.B.H.)由工程师格斯通·格洛克(Gaston·Glock)创立于1963年,座落于奥地利德意志瓦格拉姆市(Wagram)A-2232豪斯费尔德斯特拉贝大街17号。很多人都认为格洛克公司在20世纪80年代推出的Glock17是世界上最早大量采用工程塑料的手枪(所谓“大量”的定义是至少套筒座这样的大部件是采用工程塑料的),其实世界上第一支大量采用工程塑料的手枪应该是HK公司在1968年设计的VP70冲锋手枪。但事实是, Glock系列手枪所取得的成功是VP70所无法相比的,不到20年时间,Glock手枪已经装备了40多个国家的军队和警察,而从90年代开始世界各地的枪械制造公司在自动手枪中大量采用工程塑料部件的热潮,也是因为Glock手枪的成功而掀起的。对于Glock大量采用工程塑料作为主要部件最令人质疑的地方就是它的坚固程度和耐用性,一般人总觉得塑料不如金属耐用。事实上,Glock所用的强化塑料有非常好的强度和耐磨能力。使用Glock的军警单位对于它的耐用性很满意,民间的用户也很少抱怨Glock的塑料部件。
Click here to open new window<br />
CTRL+Mouse wheel to zoom in/out
【B13】【Desert Eagle】提起大威力的半自动手枪沙漠之鹰(Desert Eagle),很多人都知道是以色列军事工业公司(IMI)的产品,但实际上它是明尼亚波尼斯市的马格南研究公司(Magnum Research Inc.)研制的。
  1979 年,在马格南研究公司有三个人想要研制出一种发射.357马格南左轮手枪弹的半自动手枪,当时他们的研制计划名称为“马格南之鹰”(Magnum Eagle)。马格南之鹰的设计目的是作为靶枪和狩猎手枪。第一把原型枪在1981年完成,并在1982年公布,当时引起了很大的回响,这种.357马格南口径的半自动手枪巨大的威力和漂亮的外形引起很多射手的极大兴趣。然后,马格南研究公司需要寻找一家大公司来生产这种手枪,不久就找上了IMI。为什么是IMI?目前还缺乏这方面的资料。总之,这种手枪在1983年开始以IMI生产的“沙漠之鹰”的形式开始生产和销售,不过直到1985年,.357口径的沙漠之鹰才正式出现在美国手枪市场的售货架上。为了追求比.357马格南更大的威力,因此在1987年推出.41马格南型,不久又推出了.44马格南型,在1994年又推出了.50AE口径,而在1998年又推出了不太有前途的.440 Cor-Bon口径。沙漠之鹰彪悍的外形,不是任何人都能控制的发射力量,这是任何小巧玲珑的战斗手枪所不能替代的。

【B14】【Sig p228】SIG-SAUER手枪是由瑞士SIG公司研制,德国SAUER公司生产的手枪。在SIG-SAUER系列手枪中最早的型号是P220手枪。SIG-SAUER P220手枪是20世纪70年代研制的,目的是为取代P210。虽然P220是P210的改进,但比起P210性能更完善,更安全可靠,而且价格也更便宜。SIG公司以P220为基础开发出的一系列的手枪凭着性能优良、操作可靠,在军用、警用和民间市场都很受欢迎。

【B15】【Beretta Elite】
B16】【Five seveN】 传说中的双枪 Five-seveN手枪是一种半自动手枪,枪机延迟式后坐,非刚性闭锁,平移式击针击发。Five- seveN扩展了工程塑料在手枪上的应用,以往的手枪只在套筒座、弹匣及其他非主要受力部件上使用工程塑料,而套筒的运动速度很高,需要承受猛烈撞击,因此都是采用优质钢材。Five-seveN手枪通过精心设计,首次在手枪套筒上成功采用钢——塑料复合结构,支架用钢板冲压成形,击针室用机械加工,用固定销固定在支架上,外面覆上高强度工程塑料,然后表面再经过磷化处理。因此,既减轻重量又保证了强度要求。
Click here to open new window<br />
CTRL+Mouse wheel to zoom in/out
B21】【M3 Super 90 Combat】意大利伯奈利公司的M1超级90(M1 Super90)系列霰弹枪是在80年代为军队及警察使用而开发的,发射12号口径的2.75英寸和3英寸弹,还在的基础上演变出M1 Tactical(M1战术)和M1 Entry(M1进入)这两种霰弹枪。M1的一种变形枪曾作为贝内利/HK公司为1997美国三军战斗霞弹枪竞选提供的侯选枪。M1系列的机匣用高强度铝合金制成,回转式枪机由机框带动,闭锁在钢质枪管节套上,该枪通过一个惯性后坐系统动作,实际是个快速循环动作的短后坐系统。M3super90是这一系列的改进枪种。

【B22】【XM1014】由于对城市作战武器越来越重视,各类CQB武器充斥了美国各个军事单位,同时,面对这方面的军事威胁也在增长,因此率先开辟战术霰弹枪军事用途的美国军方决定为军队提供新的军用霰弹枪,提出的三军战术霰弹枪计划(Joint Service Combat Shotgun——JSCS),JSCS提出的技术指标中包括有:性能可靠的半自动发射方式,折叠式枪托,与76mm以内所有类型的弹药相容,结构坚固。经过美国陆军军械研究、发展与工程中心的对比试验,伯奈利公司与HK美国公司组成的联合公司提供的样枪XM1014(商业名称为M4超级90)从其它竞争者中脱颖而出,该枪为导气式半自动霰弹枪,为保证低温条件的足够能量,采用独特的双活塞系统。弹膛长76mm,可用76mm或70mm长的霰弹。机匣顶部有RIS导轨,可配备种瞄准系统。首选的标准配件是ACOG Reflex瞄准镜。M4超级90的伸缩式枪托很特别,枪托可以向右倾侧,这样可以方便戴防毒面具进行贴腮瞄准。



【B31】【MP5 】20世纪50年代初,北约和华约开始进行冷战对峙阶段,1954年原西德制定了新的军备计划,并开展了与制式步枪不同的制式冲锋枪试验,以此为促进国产冲锋枪的研制开发。德国国内各大枪械公司参加了这次试验,而一些国外的进口枪也参与其中。同年,为参加这次试验,HK公司的设计师蒂洛·黙勒(Tilo M?ler)、曼佛雷德·格林(Manfred Guhring)、乔治·塞德尔(Georg Seidl)和赫尔穆特·巴尔乌特(Helmut Baureuter)开始了命名为“64号工程”的设计工作,这项设计的成品是使G3步枪小型化的冲锋枪,命名为MP·HK54冲锋枪。该枪发射9×19 mm手枪弹,准星与初期的CETME步枪相似,呈圆锥形,照门则与后期的CETME步枪相似,为翻转式。20世纪60年代初,HK公司忙于G3步枪的生产,末能顾及HK54的发展,直到1964年HK54尚未投入生产,仅有少量试制品。1965年,HK公司才公开了HK54,并向德国军队、国境警备队和各州警察提供试用的样枪。1966年秋,西德国境警备队将试用的MP·HK54命名为MP5(Machine Pistol 5)冲锋枪。这个试用的名称就这样沿用至今。同年瑞士警察也采用了MP5,成为第一个德国以外采用MP5的国家。通过试用,HK公司对MP5原枪型的瞄具进行了改进,将翻转式照门改为可在25~100m之间调整的回转环式照门;露出的准星改为带防护圈的准星;带鳍状物的枪管改为光滑的不带鳍状物枪管;枪管前方增加了三片式的卡笋,用以安装消声器、消焰器之类的各种枪口附件,经过上述改进的MP5被称为MP5A1。MP5的性能优越,特别是它的射击精度相当高,这是因为MP5采用了与G3步枪一样的半自由枪机和滚柱闭锁方式,而当时大部分冲锋枪均采用枪机自由后坐式以减少零部件,降低造价。

B32】【Steyr TMP】史岱尔公司在1993年推出新型战术冲锋枪 (Tactical Machine Pistolru-TMP),TMP是该公司最新尝试,专供执法人员贴身携带的全自动火力支援武器,而该公司的构想是將TMP直接配发給第一线特警作为制式配备,能在犯案的第一现场压制歹徒防其逃逸。TMP是1990年代发展的新型冲锋枪,它的机械结构也独创一格,在全長不及30cm的枪身內,竟採用枪机旋转式的闭锁结构,舍弃冲锋枪惯用的简单反冲式枪机,这种全新设计可大幅减轻冲锋枪的重量。
Click here to open new window<br />
CTRL+Mouse wheel to zoom in/out
【B33】【FN P90】单兵自卫武器(Personal Defence Weapon,简称PDW)的概念,最初是在1986年美国战备协会举办的年会上提出的,期后美国本宁堡步兵学校在《美国轻武器总规划》中正式提出开发 PDW的设想,其目的是取代手枪、冲锋枪和短突击步枪。根据该规划的要求,PDW的装备对象是驾驶员、操作员、司令部人员、装甲兵、工兵、无线电员、飞行员、后勤人员或维护保养人员等。这些人员虽然不是一线步兵,却占军队总人数一半以上,他们很少有时间来提高个人射击技术,而他们所装备的自卫武器——手枪和冲锋枪大多数发射9mm Para手枪弹,不能有效对付穿着防弹衣的人敌人。因此,对PDW的要求要重量轻,易于携带,容易瞄准和操作,能有效对付防弹衣。在1989年4月16 日,北约组织发布的AC225文件中明确表示需要在北约各国军队中装备这种武器。而在1986年,FN公司就以异乎寻常的速度开发PDW系统,当时FN公司的设计人员意识到手枪和冲锋枪如果不经严格训练,命中精度很低,而折叠枪托的短突击步枪仍是偏大偏重,自动射击时的后坐力也不好控制,因此必须研制一种全新的武器。新枪被命名为P90,在1987年10月就进行了第一次的样枪射击表演,1988年,FN公司生产了4支样枪,每支枪均发射了15,000发枪弹,主要零件无破损现象。到1992年P90正式投产,FN P90成了世界上第一支单兵自卫武器。

【B34】【Mac10】英格拉姆Mac10式冲锋枪由美国戈登·B·英格拉姆于1964年开始设计,美国军用武器装备公司1969年开始生产。为了扩大其销售市场,每种枪都有标准型和民用型,而标准型专供军用和警用。Mac10式冲锋枪是现代名枪之一,目前该枪装备美国、英国、玻利维亚、哥伦比亚、危地马拉、洪都拉斯、以色列、葡萄牙、委内瑞拉等国家的警察和特种部队。Mac10式标准型冲锋枪结构紧凑,动作可靠,大量采用高强度钢板冲压件,结实耐用,可配装消声器作微声武器使用。
Click here to open new window<br />
CTRL+Mouse wheel to zoom in/out
【B35】【UMP45】由于美国特种部队手枪(自卫用)和MP5冲锋枪(进攻用)所用子弹不同,对后勤供应造成不便,因此在执行特种作战任务时,希望冲锋枪也能改用.45ACP弹。但不仅在HK公司的冲锋枪中没有.45口径的,在现役的冲锋枪中也根本没有适合拯救人质这一类的特种作战用的. 45ACP口径型号。在这种背景下,HK公司开发了全新的“.45口径通用冲锋枪(简称UMP45)”,并于1998年底交付试验。UMP45的自动方式不再是MP5传统的半自由枪机式,而是采用自由式枪机,为了保证射击精度采用闭膛待击。另外,为便于连发时操枪和减小射弹散布,还安装了射速减速器,把射速限制在580发/min,在发射高压弹(+P弹)时,射速会提高到700发/min。塑料制的直形弹匣容量为25发,比MP5少,这是因为.45ACP 弹的直径比9mm弹大得多。另外还有设计有一种10发的短弹匣。枪管前端有一个凸爪,凸爪的设计与MP5不一样,但作用是一样的,是为了安装消声器或消焰器。枪托向右折叠后,抛出的弹壳从枪托中的孔中抛出,与G36相似。枪的分解十分简单,也与G36相似,因为这是设计时刻意采用的一条原则。UMP45的瞄具采用的是柱型准星和固定的觇孔式照门,简单实用,不过在试验中普遍反映瞄具的位置偏低.
Click here to open new window<br />
CTRL+Mouse wheel to zoom in/out
【B41】【AK47】AK-47突击步枪,在我国曾被称为冲锋枪(仿制的1956年式突击步枪也曾长时间被称为56式冲锋枪)。于1947年定型,1949年装备部队。AK-47的动作可靠,勤务性好;坚实耐用,故障率低,无论是在高温还是低温条件下,射击性能都很好,尤其在风沙泥水中使用,性能可靠;结构简单,分解容易。但是连发射击时枪口上跳严重,影响精度,而且重量比较大。AK-47是装备范围相当广泛的步枪,除前苏军外,世界上有30 多个国家的军队装备,有的还进行了仿制或特许生产。据称,死于AK-47枪口下人数远远大于核武器。苏军所装备的AK-47于50年代末由其改进型AKM 所取代。目前国内的网站和BBS上流行着一种说法,认为AK-47是抄袭了MP44/Stg44而设计出来的,证据就是两者外形相似,而且“Stg44一出现马上就有了AK-47的最终设计方案”,何况卡拉斯尼柯夫本人也声称是Stg44启发了他设计AK-47的。但事实上Stg44和AK-47的基本结构和原理,都有着极大的不同;AK-47的最终方案是经过大量试验的验证而改进出来的,并不是突然就成型,就算是AK-46和AK-47之间都有很大的区别;至于所谓的外形相似,其实也只是轮廓投影的相似而矣,就外形而言,就算是刚接触军事的菜鸟都不可能把两者外形搞混。1946年,卡拉斯尼柯夫开始设计突击步枪。他的设计是在原设计的半自动卡宾枪上进行修改,这把样枪称之为AK-46。经过3年多、十余个试验枪型的研,1949年,AK-47突击步枪定型,这种武器是为机械化步兵研制的,同一年苏联军队正式采用AK-47。这种型号并没有刺刀,机匣和许多配件是用冲压工艺来生产的,采用冲压工艺的好处是材料消耗少,生产效率高。许多人把这种早期的AK-47称之为“第1型”,以区分1951年和1953年生产的AK-47。AK-47的枪管与机匣螺接在一起,膛线部分长369mm,枪管镀铬;弹匣用钢制成;AK-47的击发机构为击锤回转式,发射机构直接控制击锤,实现单发和连发射击;发射机构主要由机框、不到位保险、阻铁、扳机、快慢机、单发杠杆、击锤、不到位保险阻铁等组成。AK-47的表尺射程为800m,有效射程为400m,但实际上300m以外都打不准了,连发精度更是低,按现代军队的要求已经是不能满足了,这是AK-47的一个缺点。枪机框后座时撞击机匣底也是连发精度低的原因之一,而且还会很容易震松瞄准具。

AK素有“长枪之王”的美誉,早在越战时,美军士兵就经常丢下M16去拣AK用,美军特种部队——海狮(1号CT的原型)的标配武器竟然也是AK,当然都是战利品。据称,死于AK枪口下的人数达20万以上,超出核弹的杀伤人数。
  鉴于AK是广大cser的致爱,特送上“枪王”之父的照片,Avtomat Kalashnikov,艾夫托马特·卡拉什尼柯夫。




B42】【SSG552 Commando 瑞士工业公司的SG551-1P是一支为执法机构的武装部队提供300米距离上延伸火力的突击步枪。虽然9mm口径的弹药有更好的停止作用,比5.56mm步枪弹更适合治安部队的使用,但当特种部队面对一些穿着防弹衣的匪徒,9mm手枪弹就显得力不从心了。SG551-1P专门安装有一个6×42的瞄准镜,这是为了更容易地狙击混在平民中的匪徒,事实上,由于SG550/551的扳机力比起大多数突击步枪都要柔和,因此SG551-1P就好像是一种近距离的狙击步枪。在推出改进后的SG551-SWAT后,SG551-1P就停产了。SG552突击队员是SIG公司最新的突击步枪,也是最短的一种,似乎是一种受潮流影响而设计的CQB用短突击步枪,比起SG551系列,SG552的枪管进一步缩短,并把质心后移以方便控制提高射击精度。扳机护圈可向左右两侧折叠,带手套也可操作。
Click here to open new window<br />
CTRL+Mouse wheel to zoom in/out
【B43】【M4A1} 由于以往的CAR-15(美国前主战步枪)的有效射程都比较低,终点弹道性能不稳定,1988年由柯尔特公司授命于美国陆军部,在陆军部与海军陆战队联合参与下研制新型的M16卡宾枪。柯尔特公司的工程师把枪管弄短至14.5英寸(370mm),枪管上增加了一个缩颈用以挂装M203榴弹发射器,采用伸缩枪托,射击方式为半自动和三发点射,护木内采用了双层的铝制隔热屏。这种新型卡宾枪的柯尔特公司产品编号为Model 720,在1991年3月军方正式定型并命名为“美国5.56mm北大西洋公约组织口径M4卡宾枪”(The United States Carbine, Caliber 5.56mm NATO, M4)。由于M4和M16A2非常相似,事实上它们有80%的零件可以互换,因此最初也称为M16A2卡宾枪。M4首先装备82空降师,用于替代 M16A1/A2步枪、M3冲锋枪和车辆驾驶员使用的部分9mm手枪,1994年正式列装。柯尔特公司又为海军研制了一种射击方式为半自动和全自动的 Model 727,除射击方式外其他与M4完全一样,因此有些人称Model 727为M4增强型(M4 except)或海军型M4。然后柯尔特公司又研制了一种M4的子变体,主要是设计了一种新的平顶型机匣盖以安装模块化的瞄准系统。在1994年8月,这项改进被军方采纳,并把这种平顶型M4正式命名为“美国5.56mm北大西洋公约组织口径M4A1卡宾枪”(The United States Carbine, Caliber 5.56mm NATO, M4A1),柯尔特公司编号Model 27。M4A1的主要改进是把原来的固定式提把改为可以安装不同瞄准装置的M1913导轨——即平顶型机匣,此外M4A1的射击方式是半自动和全自动,就像M16A1。M4/M4A1卡宾枪在美国的特种作战部队中服役,特别是美国陆军的游骑兵、海军陆战队的武力侦察队和海军的海豹突击队等等。由于 M4/M4A1射程远杀伤力大而结构又比较紧凑,也受到其他作战部队及非一线作战人员的钟爱。从1997年11月起,美军陆军正式装备M4/M4A1卡宾枪,到1999年底全部现役部队换装M4/M4A1,而原来的M16A2则转交预备役部队和海岸防卫队。不过尽管平顶型机匣早已投产,但首先装备的M4仍然是带瞄具提把的标准M16A2机匣。M4和M4A1主要由柯尔特公司和大毒蛇公司(Bushmaster Arms)生产,此外M4/M4A1也被一些执法机构所采用。现在柯尔特公司销售的M4/M4A1的名称已经改为RO777、779、977和979。另外民间也出现一些民用型的M4/M4A1,有半自动也有全自动,但为符合相关法规,枪管长度一般都在16英寸或以上.
Click here to open new window<br />
CTRL+Mouse wheel to zoom in/out
【B44】【Steyr AUG】斯太尔AUG(德语Armee Universal Gewehr的缩写,即陆军通用步枪)是一种导气式、弹匣供弹、射击方式可选的无托结构步枪,是在1960年代后期开始研制的,其目的是为了替换当时奥地利军方采用的Stg.58(FN FAL)战斗步枪。新武器的研制由奥地利斯太尔-丹姆勒-普赫(Steyr-Daimler-Puch)公司的子公司斯太尔-曼利彻尔有限公司 (Steyr-Mannlicher GmbH, AT)负责,主设计师有三个人——霍斯特·韦斯珀(Horst Wesp,也是Glock手枪的设计者)、卡尔·韦格纳(Karl Wagner)和卡尔·摩斯(Karl M?ser)。AUG定型生产后,奥地利军方让AUG与FN FAL、FN CAL、捷克的Vz58和M16A1进行了对比试验,AUG的性能表现可靠,而且在射击精度、目标捕获和全自动射击的控制方面表现优秀。这种新步枪经过技术试验和部队试验后,于1977年正式被奥地利陆军采用,并命名为Stg.77(意思是“1977型突击步枪”),并在1978年开始批量生产。从那时起 AUG便声名大噪,除奥地利外,被多个国家的军队所采用。当AUG刚研制出来时,有些说法认为AUG步枪有许多独特设计都是革命性,其实不然。事实上, AUG是一种把以往多种已知的设计意念聪明地组合起来,结合成一个可靠美观的整体。斯太尔AUG实际上是一个武器系统,4种不同的枪管可以在几秒内就装进任一机匣中,成为4种不同的武器;AUG武器系统是模块化结构的,全枪由枪管、机匣、击发与发射机构、自动机、枪托和弹匣六大部件组成,所有组件,包括枪管、机匣和其他部件都可以互换。AUG系统中采用了大量塑料件,约占全枪零部件总数的20%,不仅枪托、握把和弹匣采用工程塑料,就连受力的击锤、阻铁、扳机也用塑料制成,这些部件耐摩擦而且不需要润滑,因此有较长的寿命周期,而且非常坚固。据奥地利军方的测试,这些塑料部件可以承受射击100,000发以上的使用寿命。AUG很容易分解而不需要专门工具,这样可以大大减少基本维护费用,士兵在野战条件下也方便维护步枪。

【B45】【Steyr Scout Sniper Rifle}美国海军陆战队退役的枪械专家杰夫·库珀产生一种叫做“通用步枪” (General-Purpose Rifle)构思,然后在1983年,他定义出这种命名为“Scout Rifle”通用步枪的规格,这些规格包括:便于携带、个人操作的武器,能击倒重量200公斤的有生目标,最大长度为1米(39.37英寸),总重不超过 3公斤(约6.6磅),其他还包括方便、威力大、精确、坚固耐用和外形漂亮等等。此后,有一些人根据库珀定出的标准用市面上的商业枪支进行改装,使枪支达到或接近标准。在7年后,斯太尔-曼利夏公司推出了一种按照这些标准设计并命名为“Scout”的旋转后拉式枪机步枪。斯太尔Scout是一种很轻的精确射击步枪,全枪共129个零件,枪管细长,并大量采用新材料,因此重量很轻。枪管长只有19英寸,4条右旋膛线,缠距12英寸。枪管壁虽然薄,但采用冷锻制造,因此非常坚固。
Click here to open new window<br />
CTRL+Mouse wheel to zoom in/out
【B46】【Arctic Warfare Magnum/P}从李·恩菲尔德No.4型单发步枪改成的L42A1式狙击步枪“年事已高”,早就不能适应现代战争的要求。在马岛战争中,该枪就显得“力不从心”。于是英军把眼光转向了7.62×51毫米北约口径的新型狙击步枪。其基本要求是:不管枪管清洁与否,都要首发命中。此后,英军对好几种型号进行了对比试验,最后选中了英国国际精密仪器公司的PM狙击步枪(意为精确竞赛枪)。该枪又称AW (Arctic Warfare,意为北极作战),研制者是“自选步枪”射击的世界冠军和金牌获得者马尔科姆·库帕。该枪有步兵型、警用型和“隐形PM”三种,其中步兵型 1986年装备英军,称为L96A1式狙击步枪。PM狙击步枪的主要特点是:机匣由铝合金制成;枪托由高强度塑料制作,分两节,与机匣螺接在一起,枪托前部配有可调式轻型两脚架;枪管由不锈钢制成,长660毫米,螺接在超长的机匣正面,可在枪托内自由浮动,在保证精度的情况下,寿命达5000发;枪机后部拉机柄周围有数条纵向铣槽,在枪里进水并在严寒条件下结成冰的情况下,自动机不会冻结,射手仍可以完成装填动作。该枪之所以被称为AWP,就是这个缘故。

【B47(T)】【G3/SG-1 Sniper Rifle】G3/SG1狙击步枪是在G3步枪中精心挑选精度最高的枪管,配上两脚架、枪托贴腮板和望远瞄准镜而成的,和G3步枪基本没有区别,是一支用突击步枪拼凑出来的狙击枪。SG是“Schützen Gewehr”精确步枪的意思。虽然现在德国联邦国防军已经换装G22狙击步枪,但G3/SG1仍在军队中服役。

【B48(CT)】【Sig 550】1988年,SIG公司在SG550突击步枪的基础上研制出SG550狙击步枪。SG550狙击步枪实际上是使用重型枪管的单发型SG550突击步枪,但SIG公司强调SG550狙击步枪是在警察和特种部队的密切合作下研制成功的。经过严格彻底的功能和精度试验,军方便大量采购作为战术狙击步枪。该枪有两种口径,发射5.56×45mm NATO弹的为SG550-1,发射.223雷明登弹的为SG550-2。
Click here to open new window<br />
CTRL+Mouse wheel to zoom in/out
【B51】【FN M249 】“米尼米”(MINIMI)机枪是FN公司于70年代开始研制的机枪,是FN公司开发的第二种5.56mm NATO口径的轻武器,第一次公开露面是在1974年。1982年2月1日,美军决定采用MINIMI(试验编号XM249)作为陆军班用自动武器(Squad Automatic Weapon,简称SAW)型号,正式定名为M249 SAW,首先配发给美国陆军和海军陆战队的步兵作战分队。MINIMI为导气式自动武器,开膛待击的方式可以使枪膛迅速散热,防止枪弹自燃。导气箍上有一个气体调节器,有三个位置可调:一个为正常使用,可以限制射速,以免弹药消耗量过大;一个位置为在复杂气象条件下使用,通过加大导气管内的气流量,减少故障率,但射速会增高;另一个位置是发射枪榴弹时用的。
Click here to open new window<br />
CTRL+Mouse wheel to zoom in/out
1.6版T方新增武器 加利尔(Galili)突击步枪是以色列士兵在1967年的“六日战争”中的取得教训的一个产物,由于当时以色列军中大量装备的FN FAL步枪在沙漠环境中经常不能正常动作,故障多,因此以色列人加利尔——IMI的首席武器设计师便着手进行各种武器的野战试验,根据试验的结果,他得出一个理论:卡拉斯尼柯夫是一只“沙漠之虎”(Kalashnikov was the "tiger of the desert"。于是他和IMI的另一位设计师Yaacov Lior带领着一个研制小组,开始设计一种发射5.56mm M193弹的新步枪。1969年3月,加利尔设计的步枪与M16A1、斯通纳63、AK47、HK33以及以色列另一位著名设计师乌兹·盖尔(Uziel Gal,乌兹冲锋枪的设计者)所设计作品一起进行竞争,在野战测试中特别强调在沙漠环境中的表现,而加利尔小组的步枪表现突击,在1972年,以色列国防部决定采用这件用研制小组的组长名字命名的新步枪——加利尔步枪代替FAL,并计划在1973年进入以色列国防军(IDF)服役,但是由于赎罪日战争爆发时,它仍未投产,结果在1974年时,加利尔突击步枪才正式进入以色列国防军服役。

1.6版CT方新增武器 FAMAS是法语“轻型自动步枪,由圣.艾蒂安生产”的缩写(Fusil Automatique, Manufacture d’Armes de St. Etienne)的缩写,正如其名称的表达的意思,FAMAS是由法国GIAT集团(Groupement Industriel des Armements Terrestres)下属的圣.艾蒂安(St. Etienne)兵工厂生产的。该枪在1967年开始研制,主设计师是轻武器专家保罗·泰尔。法国研制该枪的指导思想是既能取代MAT49式9mm冲锋枪和MAS 49/56式7.5mm步枪,又能取代一部分轻机枪。二战后,法国人认为把他们的7.5×54mm步枪弹改进一下就可以现代化了,因此在步枪小口径热时,法国人还在摆架子,好像很有主见的样子,当时研究的FAMAS仍是7.5×54mm口径的。可是到了1970年,法国终于还是决定和其他北约国家看齐,将 FAMAS改为发射雷明顿M193弹。1971年St. Etienne提交了10支样枪供法国步兵团试验,经过两年的试验后对某些部件做了修改,并增加了3发点射控制装置后,于1979年向法国陆军提交了第一批的FAMAS F1,并首先装备伞兵部队。按原定计划,法国军方共需采购40万支,但后因军费不足,结果缩减至28万支。只是除法国军队外,加蓬、吉布提、黎巴嫩、塞内加尔、阿联酋等国的军队也有装备FAMAS。此时北约各国都将小口径步枪弹改为SS109弹,但法国军队的FAMAS仍然使用M193弹。

2006年03月03日

直接通过ODBC读写Excel表格文件
译者:徐景周(原作:Alexander Mikula)

下载本文示例代码

想要通过ODBC直接读、写Excel表格文件,首先,应确保ODBC中已安装有Excel表格文件的驱动"MICROSOFT EXCEL DRIVER (*.XLS)"。然后,可根据下面步骤进行:

1. 在StdAfx.h文件中加入

#include <afxdb.h>
#include <odbcinst.h>

2. 通过ODBC直接创建Excel文件并在表中插入数据(暂定文件名:Demo.xls)

//创建并写入Excel文件
void CRWExcel::WriteToExcel()
{
  CDatabase database;
  CString sDriver = "MICROSOFT EXCEL DRIVER (*.XLS)"; // Excel安装驱动
  CString sExcelFile = "c:\\demo.xls";                // 要建立的Excel文件
  CString sSql;

  TRY
  {
    // 创建进行存取的字符串
    sSql.Format("DRIVER={%s};DSN='''';FIRSTROWHASNAMES=1;READONLY=FALSE;CREATE_DB=\"%s\";DBQ=%s",
                sDriver, sExcelFile, sExcelFile);

    // 创建数据库 (既Excel表格文件)
    if( database.OpenEx(sSql,CDatabase::noOdbcDialog) )
    {
      // 创建表结构(姓名、年龄)
      sSql = "CREATE TABLE demo (Name TEXT,Age NUMBER)";
      database.ExecuteSQL(sSql);

      // 插入数值
      sSql = "INSERT INTO demo (Name,Age) VALUES (''徐景周'',26)";
      database.ExecuteSQL(sSql);

      sSql = "INSERT INTO demo (Name,Age) VALUES (''徐志慧'',22)";
      database.ExecuteSQL(sSql);

      sSql = "INSERT INTO demo (Name,Age) VALUES (''郭徽'',27)";
      database.ExecuteSQL(sSql);
    }      

    // 关闭数据库
    database.Close();
  }
  CATCH_ALL(e)
  {
    TRACE1("Excel驱动没有安装: %s",sDriver);
  }
  END_CATCH_ALL;
}

3. 通过ODBC直接读取Excel文件(暂定文件名:Demo.xls)

// 读取Excel文件
void CRWExcel::ReadFromExcel()
{
    CDatabase database;
    CString sSql;
    CString sItem1, sItem2;
    CString sDriver;
    CString sDsn;
    CString sFile = "Demo.xls"; 			// 将被读取的Excel文件名

    // 检索是否安装有Excel驱动 "Microsoft Excel Driver (*.xls)"
    sDriver = GetExcelDriver();
    if (sDriver.IsEmpty())
    {
        // 没有发现Excel驱动
        AfxMessageBox("没有安装Excel驱动!");
        return;
    }

    // 创建进行存取的字符串
    sDsn.Format("ODBC;DRIVER={%s};DSN='''';DBQ=%s", sDriver, sFile);

    TRY
    {
        // 打开数据库(既Excel文件)
        database.Open(NULL, false, false, sDsn);

        CRecordset recset(&database);

        // 设置读取的查询语句.
        sSql = "SELECT Name, Age "
               "FROM demo "
               "ORDER BY Name ";

        // 执行查询语句
        recset.Open(CRecordset::forwardOnly, sSql, CRecordset::readOnly);

        // 获取查询结果
        while (!recset.IsEOF())
        {
            //读取Excel内部数值
            recset.GetFieldValue("Name ", sItem1);
            recset.GetFieldValue("Age", sItem2);

            // 移到下一行
            recset.MoveNext();
        }

        // 关闭数据库
        database.Close();

    }
    CATCH(CDBException, e)
    {
        // 数据库操作产生异常时...
        AfxMessageBox("数据库错误: " + e->m_strError);
    }
    END_CATCH;
}

4. 获取ODBC中Excel驱动的函数

CString CRWExcel::GetExcelDriver()
{
    char szBuf[2001];
    WORD cbBufMax = 2000;
    WORD cbBufOut;
    char *pszBuf = szBuf;
    CString sDriver;

    // 获取已安装驱动的名称(涵数在odbcinst.h里)
    if (!SQLGetInstalledDrivers(szBuf, cbBufMax, &cbBufOut))
        return "";

    // 检索已安装的驱动是否有Excel...
    do
    {
        if (strstr(pszBuf, "Excel") != 0)
        {
            //发现 !
            sDriver = CString(pszBuf);
            break;
        }
        pszBuf = strchr(pszBuf, ''\0'') + 1;
    }
    while (pszBuf[1] != ''\0'');

    return sDriver;
}

作者信息:
姓名:徐景周(未来工作室 Future Studio)
EMAIL:jingzhou_xu@163.net