【2017年整理】tj9安全通道方案(定稿)燕窝铺_第1页
【2017年整理】tj9安全通道方案(定稿)燕窝铺_第2页
【2017年整理】tj9安全通道方案(定稿)燕窝铺_第3页
【2017年整理】tj9安全通道方案(定稿)燕窝铺_第4页
【2017年整理】tj9安全通道方案(定稿)燕窝铺_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

张承高速公路承德段TJ9标段跨越承围公路专项施工安全方案燕窝铺大桥左幅K3090、右幅K3030广西路桥二零一四年八月二十四日目录一、编制说明1二、工程概况2三、桥梁架设与防护棚架设计21桥梁架设施工方法22防护棚架设计23结构及搭设34主要承重结构验算55安全标志标牌5四、安全防护措施61安全目标62安全监督体系及安全保证体系63主要危险源和应急预案71跨线桥施工安全专项方案一、编制说明(一)编制依据1、中华人民共和国道路交通安全法2、中华人民共和国道路交通管理条例3、中华人民共和国道路运输管理条例4、道路交通标志和标线GB576820095、国家、交通部、铁道部有关工程建设的相关法律、法规及规定,现行的建设工程设计、施工规范、技术规程、质量验收评定标准。6、交通部、铁道部、业主有关工程建设施工管理行业规定、管理办法和实施细则。7、施工现场踏勘所取得的有关工程地质、水文、气象情况、材料供应情况、交通运输状况,以及当地民风民俗、自然环境、水土资源状况等调查资料。8、施工中同类桥梁工程积累的施工经验、科技成果、施工工艺方法及既有的施工人员、机械设备等资源情况。9、河北省张承高速公路承德段施工标准化管理实施细则及筹建处、总监办下发的有关文件和TJ9合同段施工图设计文件10、公路水运工程施工安全标准化指南。(二)编制原则1遵循设计图纸的原则。认真阅读核对设计文件,理解设计意图,严格按指导性施工组织设计和工程设计原则编制,满足设计标准和要求。2遵循技术规范和验收标准的原则。严格按施工技术规范要求编制施工方案,认真执行工程质量检验及验收标准。3遵循安全第一、预防为主的原则。从制度、管理、方案、资源等方面制定切实可行的措施,严格按规章程序办事,确保施工安全、256省道公路交通安全。4遵循科技是第一生产力的原则。积极应用新技术、新工艺、新设备、新材料四新成果,充分体现科技在施工生产中的先导保障作用。5遵循实事求是的原则。根据区段工程特点,从实际出发、科学组织、均衡施工,达到快速、有序、优质、高效、安全。6遵循保护环境的原则。认真贯彻“全面规划,合理布局,预防为主、综合治理,2强化管理”的方针,编制施工方案和工艺方法必须结合现场环境条件,减少环境污染,避免水土流失。二、工程概况本合同段为承德至张家口高速公路TJ9合同段(K0000K6400)。燕窝铺大桥跨径左幅1840M、右幅1740M,左幅第13、14孔上跨承围公路,右幅第14、15孔上跨承围公路,其中左幅14为预应力混凝土连体盖梁,右幅14为预应力混凝土连体盖梁,与被交路交角160度。左右幅分离,大桥左幅中心桩号K3090,大桥右幅中心桩号K3030单幅桥宽1175M。上部结构采用预应力砼T梁,先简支后连续;下部结构0、18、17桥台采用柱式台,117桥墩均采用柱式桥墩,除去左、右幅14排为1颗桩外,其他左、右幅每排2颗柱;直径200CM。桥梁所在区域为山岭重丘区。2013年9月下部构造开始施工,计划2014年7月进行上部结构施工,主要包括安装T梁、现浇横隔板、现浇桥面板、防撞护栏、桥面铺装等。计划2015年8月完工。三、桥梁架设与防护棚架设计1、架桥施工方法1、预制梁的安装施工T梁在预制场集中预制,专用运梁车运输,用龙门吊起架,架桥机安装。架桥机在6、7孔拼装就位。架桥机在过第14、15孔T梁时,承围公路要短暂中断交通,确保桥下车辆行人安全,中断时间每次一般不超过30分钟,承围公路通行车辆暂时由燕窝铺中桥路口沿原承围公路旧线绕道通过。2、防护棚架设计由于大桥上部构造施工安全保障的需要,同时考虑到施工现场各种环境因素,决定燕窝铺大桥施工阶段,在左幅13、14孔到右幅13、14孔斜跨承围公路处设置安全通道(交角为160度),确保大桥上部施工时行车安全。承围公路车流量大,车速高,综合现场情况,安全通道的防护棚架拟采用工字钢槽钢做骨架搭设,不压缩原有公路路面宽度,中间不设立柱,净宽11M,净高5M。防护棚架布置见下图31、棚架材料为了保证棚架的结构安全,所用的材料必须具有出场合格证明,具体规格如下1、10010080CM混凝土基础;273焊管立柱,壁厚8MM;32B、25A工字钢骨架,35035020MM钢板2)、方钢808025MM檩条3)、顶板彩钢瓦楞板厚度08MM,波高5070MM工程数量表序号名称规格型号数量单位重量(T)1焊管2738MM6M40根240M6437232B240M13853工字钢25A440M167644法兰钢板35035016MM80块1225方钢808025MM1110M975643、棚架结构及搭设1、棚架结构棚架承重结构采用10010080CM混凝土基础;273MM焊管立柱,壁厚8MM,间距6M,顶部焊接钢板以便连接纵梁;32B工字钢作为纵梁与钢管焊接连接,25A工字钢做横梁与纵梁焊接,间距3M;横梁上铺808025MM方钢,方钢间距12M;顶上铺厚度08MM彩钢瓦楞板。结构形式如下图6瓦楞板单块长度125M1320M27槽钢8400M3452)、为了确保棚架的稳定,用槽钢将棚架立柱与13、14桥墩上抱箍焊接。3)、棚架施工在承围公路路肩处,现浇100CM100CM80CM混凝土基础,基础顶面预埋钢板;棚架立柱焊管与预埋钢板焊接牢固。立柱、纵、横梁安装采用25T吊车,由人工配合进行安装,安装时安排专人指挥。棚架竖向钢管之间设立斜向支撑,保证整体结构的稳定性。在出入口两侧每侧设置3个防撞桶,以示车辆和行人,防止车辆直接碰撞钢支架。安全通道每侧焊接二根接地线,接地线用12圆钢,接地极用L4545MM角钢,打入原地面以下30M,立柱与角钢连接用12圆钢焊牢并测试电阻,确保接地电阻30。为方便排水,棚顶设计单向2横坡向公路左侧排水;承围公路两侧混凝土基础外侧水泥硬化1M,防止雨水浸泡基础。4、主要承重结构验算1)25A工字钢主梁的应力及挠度验算25A工字钢参数A4854CM2、G381KG/M、IX5020CM4,WX402CM3、E210GPA、【】6235MPA、【】120MPA。该防护门洞跨距为116米,故取跨距116M进行分析,为减少跨中挠度,按两端固结的单跨梁计算,方钢和08MM厚瓦楞板均布荷载90KG/M,50年一遇的风荷载035KN/M2(210KG/M)和雪荷载02KN/M2(120KG/M),最不利跨中操作人员及冲击荷载200KG,计算最大跨径为6M。GBH300130工字钢均布荷载QQL/2MQL2/12M/WQ/AMQL2/12(21012090)9862/1212348NMM/WX12348/402106307MPAQ/A(21012090)986/(24854104)254MPAGBH300130工字钢集中荷载QP/2MQL/8M/WXQ/AM2QL/820098116/82842NM2M/WX2842/40210671MPA2Q/A20098116/(24854104)234MPA均布荷载与集中荷载叠加得弯曲应力30771378MPA【】235MPA,满足要求剪应力254234488MPA【】120MPA,满足要求;5、安全标志标牌设置足够的安全警示牌、安全警示标语等确保施工安全;为了保障通道的安全,在道路两侧路边,在公路远离施工范围500米右侧设置“前方500米施工,减速慢行”,远离施工范围300米右侧设置“前方300米施工,减速慢行”,远离施工范围100米的地方设置“前方100米施工,减速慢行”、减速带、禁止超车和限速标志,重要施工时段安排专人防护。在通道的前后两方设警示灯、框架指示灯和夜间照明装置保证夜间行车安全。安全通道门架上方设置明显的限高标志,防止超高车辆碰撞横梁。通道两端10米设置限高门架,限高5米。通道立柱粘贴反光警示标志;棚架安装结束后组织有关人员对棚架工程进行全面检查与签证确认。5)、棚架的维护与拆除1、在桥梁施工期间,要设专人对棚架进行安全维护和交通疏导工作。每天对门架、防护网进行安全检查,发现问题及时修整,以确保施工过程中的安全。(2)、结构物施工完毕,棚架不需要使用时方可拆除;拆除时在交管部门配合下,7可将棚架整体移出高速公路大桥下,起重机吊离承围公路进行拆除。四、安全防护措施一、安全目标施工伤亡零事故;无公路行车险性事故。(二)安全监督体系及安全保证体系1、安全监督体系建立以项目经理为首的安全监督体系,监督安全保证体系各级的安全检查、整改、实施情况,确保整个安全保证体系运作正常、有效。安全监督体系组成组长崔树峰副组长楚国义黄明昊组员张玉昌宋智杰杨毅崔建英刘杨刘哲平刘振英2、安全保证体系建立以项目经理为首的“安全保证体系”(见下页安全保证体系框图),安全责任落实到人。加强施工作业现场控制和职工的安全生产教育为重点,开展创建安全标准工地活动,确保工程的施工安全。施工中,把确保人员、设备和既有公路行车安全,作为整个工程施工安全管理的主轴,紧紧围绕这一安全核心问题,全面进行安全施工管理。项目经理赵建平副经理崔树峰安全总监楚国义总工陈华田工程管理部安质部综合管理部安全技术措施交底制定施工安全技术措施制定操作标准司机安全教育车辆状况检查行车事故分析处理行车安全教育行车设备操作安全检查作业人员安全教育作业人员符合设施检查作业人员操作违规检查安全生产教育违章作业安全事故处理组织安全检查安全质量标准工地建设制定机电设备使用措施机电设备状况检查行车事故分析处理8安全保证体系框图(三)主要危险源和应急预案棚架的危险源主要为棚架坍塌、高处落物和物体打击棚架坍塌事故应急预案1、目的发生棚架坍塌事故,为有效防止事故扩大,降低员工及行人生命危险,最大限度减少经济损失,特制定本预案。2、组织机构及职责项目部成立应急响应指挥小组,负责指挥及协调工作。组长崔树峰副组长楚国义黄明昊组员张玉昌宋智杰杨毅崔建英刘杨刘哲平刘振英具体分工如下崔树峰负责全面工作;黄明昊、张玉昌负责现场全面指挥,包括现场人员、设备的组织与调配等;刘杨、刘振英、刘哲平负责与公安、医院、交通及政府各职能部门的衔接工作;崔建英、宋智杰责现场指挥工作楚国义、杨毅负责对巡视保卫值班情况。3棚架坍塌事故应急措施1发生坍塌事故后,应立即报告应急抢险指挥小组,由项目经理负责现场总指挥。发现事故发生人员首先高声呼喊,通知现场安全员,并由安全员组织施工人员紧急撤离至安全区域。2如有人员受伤,立即拨打“120“急救中心电话取得联系,详细说明事故地点、严重程度,并派人到路口接应。3在向有关部门电话求救的同时,对受伤人员在现场安全地带采取可行的应急措施,如现场包扎止血等措施,防止受伤人员流血过多造成死亡事故发生,对呼吸、心跳停止的伤员予以心脏复苏。4若事故严重,要立即上报公司及有关部门,并启动公司应急救援预案。安全技术员、防护员各作业班组安全员95如有人员被掩埋,要采取有效安全防护措施后,组织人员按部位进行人员抢救,尽快解除重物压迫,减少伤员挤压综合症的发生,并将其转移至安全地方,防止事故发展扩大。6一旦发生棚架坍塌事故,应及时通知当地交警、路政人员,报告事故发生的时间、地点及人员伤亡情况。管制区域交通秩序由交巡警、路政部门派员主管;公安机关交管部门指挥车辆由承围公路旧线绕行通过,并根据现场的交通通行状况,加强现场周边道路交通管理。管制现场由施工单位派员协管。在新旧承围公路交叉口处分别安排2人,负责巡查并及时补正、归位锥桶、标志标牌,观察车辆通行情况,并帮助路政人员及时疏通交通。4、应急物资常备药品消毒用品、急救物品绷带、无菌敷料。物体打击伤害事故应急预案1、目的发生物体打击伤害事故,为有效防止事故扩大,降低员工生命危险,最大限度减少经济损失,特制定本预案。2、组织机构及职责项目部成立应急响应指挥小组,负责指挥及协调工作。组长崔树峰副组长楚国义黄明昊组员张玉昌宋智杰杨毅崔建英刘杨刘哲平刘振英具体分工如下崔树峰负责全面工作;黄明昊、张玉昌负责现场全面指挥,包括现场人员、设备的组织与调配等;刘杨、刘振英、刘哲平负责与公安、医院、交通及政府各职能部门的衔接工作;崔建英、宋智杰责现场指挥工作楚国义、杨毅负责对巡视保卫值班情况。3、当发生物体打击事故后,现场救援小组人员首先抢救负伤人员,对负伤人员做必要的处理,抢救的重点放在对颅脑损伤、脊柱骨折和出血上进行处理,处理后立即送医院救护;抢救措施见第三点。报告救援小组组长最先发现现场人员受伤的作业人员立即将现场情况报告现场管理人员,在场人员不要惊慌失措,立即暂停现场的生产活动,保护好事故现场。组织抢救措施与事故控制救援小组组长接到物体打击事故报告后,奔赴出事地10点迅速组织抢救伤者。抢救的重点放在对颅脑损伤、脊柱骨折和出血上进行处理。4、应急物资常备药品消毒用品、急救物品绷带、无菌敷料及各种常用小夹板、担架、止血袋、氧气袋等物资。5通讯联系医院急救中心120应急预案管理通讯录姓名职务联系电话崔树峰副经明昊副经国义安全总哲平地方协毅安全生玉昌现场副经处坠落事故应急预案1、目的发生高空坠落事故,为有效防止事故扩大,降低员工生命危险,最大限度减少经济损失,特制定本预案。2、组织机构及职责项目部成立应急响应指挥小组,负责指挥及协调工作。组长崔树峰副组长楚国义黄明昊组员张玉昌宋智杰杨毅崔建英刘杨刘哲平刘振英具体分工如下崔树峰负责全面工作;黄明昊、张玉昌负责现场全面指挥,包括现场人员、设备的组织与调配等;刘杨、刘振英、刘哲平负责与公安、医院、交通及政府各职能部门的衔接工作;崔建英、宋智杰责现场指挥工作楚国义、杨毅负责对巡视保卫值班情况。3、预案流程当工地发生高空坠落事件,最先发现情况的人员应大声呼叫。呼叫内容要明确某某地点或某某部位发生某某情况将信息准确传出。听到呼叫的任何人,均有责任将11信息报告给与其最近的项目部管理人员、抢救小组成员,使消息迅速报告到伤亡伤害应急响应小组现场总指挥处。应急响应小组现场总指挥负责现场组织工作。报告员负责打急救电话120,报告发生伤亡伤害的地点、伤害类型,同时必须告知工程附近醒目标志建筑。以利急救中心迅速判断方位。接车员迅速到路口接车,引领急救车从具备驶入条件的道路迅速到达现场。应急响应小组现场总指挥负责现场组织工作,迅速移走周围可能继续产生危险的坠落物、障碍物。为急救医生留出通道,使其可以最快到达伤员处。高空坠落不仅产生外伤,还产生内伤,不可急速移动或摇动伤员身体。应多人平托伤员身体,缓慢将其放至于平坦的地面上。发现伤员呼吸障碍,应时行人工呼吸。发现出血,应迅速采取止血措施,可在伤口近心端结扎,但应每半小时松开一次,避免坏死。动脉出血用指压大腿根部股动脉止血。在急救中心医生到来之前,尽最大努力,将伤害降低最低。在急救医生到来后,将伤员受伤有因和已经采取的救护措施详细告知医生,由医生确定是否进一步治疗。现场总指挥在组织自救的同时,应派人保护现场,为今后的事故调查提供真实依据。12第5章字符串我们一直在使用字符串,C中STRING关键字的映射实际上指向NET基类SYSTEMSTRING。SYSTEMSTRING是一个功能非常强大且用途非常广泛的基类,但它不是NET中唯一与字符串相关的类。其他的用来处理字符串的NET类还有很多,如SYSTEMTEXT和SYSTEMTEXTREGULAREXPRESSIONS命名空间中的类等等。一、SYSTEMSTRING类SYSTEMSTRING是一个类,专门用于存储字符串,允许对字符串进行许多操作。由于这种数据类型非常重要,C提供了它自己的关键字和相关的语法,以便于使用这个类来处理字符串。使用运算符重载可以连接字符串STRINGMESSAGE1“HELLO“/RETURN“HELLO“MESSAGE1“,THERE“/RETURN“HELLO,THERE“STRINGMESSAGE2MESSAGE1“/RETURN“HELLO,THERE“C还允许使用类似于索引器的语法来提取指定的字符CHARCHAR4MESSAGE4/RETURNSANOTETHECHARISZEROINDEXED这个类可以完成许多常见的任务,例如替换字符、删除空白和把字母变成大写形式等。可用的方法如表所示。方法作用COMPARE比较字符串的内容,考虑文化背景区域,确定某些字符是否相等COMPAREORDINAL与COMPARE一样,但不考虑文化背景CONCAT把多个字符串实例合并为一个实例COPYTO把特定数量的字符从选定的下标复制到数组的一个全新实例中FORMAT格式化包含各种值的字符串和如何格式化每个值的说明符INDEXOF定位字符串中第一次出现某个给定子字符串或字符的位置INDEXOFANY定位字符串中第一次出现某个字符或一组字符的位置INSERT把一个字符串实例插入到另一个字符串实例的指定索引处JOIN合并字符串数组,建立一个新字符串LASTINDEXOF与INDEXOF一样,但定位最后一次出现的位置LASTINDEXOFANY与INDEXOFANY,但定位最后一次出现的位置PADLEFT在字符串的开头,通过添加指定的重复字符填充字符串PADRIGHT在字符串的结尾,通过添加指定的重复字符填充字符串REPLACE用另一个字符或子字符串替换字符串中给定的字符或子字符串SPLIT在出现给定字符的地方,把字符串拆分为一个子字符串数组SUBSTRING在字符串中获取给定位置的子字符串TOLOWER把字符串转换为小写形式TOUPPER把字符串转换为大写形式TRIM删除首尾的空白注意这个表并不完整,但可以让您明白字符串所提供的功能。1、创建字符串如上所述,STRING类是一个功能非常强大的类,它执行许多很有用的方法。但是,STRING类存在一个问题重复修改给定的字符串,效率会很低,它实际上是一个不可变的数据类型,一旦对字符串对象进行了初始化,该字符串对象就不能改变了。表面上修改字符串内容的方法和运算符实际上是创建一个新的字符13串,如果必要,可以把旧字符串的内容复制到新字符串中。例如,下面的代码STRINGGREETINGTEXT“HELLOFROMALLTHEGUYSATWROXPRESS“GREETINGTEXT“WEDOHOPEYOUENJOYTHISBOOKASMUCHASWEENJOYEDWRITINGIT“在执行这段代码时,首先,创建一个SYSTEMSTRING类型的对象,并初始化为文本“HELLOFROMALLTHEGUYSATWROXPRESS”。注意句号后面有一个空格。此时NET运行库会为该字符串分配足够的内存来保存这个文本39个字符,再设置变量GREETINGTEXT,表示这个字符串实例。从语法上看,下一行代码是把更多的文本添加到字符串中。实际上并非如此,而是创建一个新字符串实例,给它分配足够的内存,以保存合并起来的文本共103个字符。最初的文本“HELLOFROMALLTHEPEOPLEATWROXPRESS”复制到这个新字符串中,再加上额外的文本“WEDOHOPEYOUENJOYTHISBOOKASMUCHASWEENJOYEDWRITINGIT”。然后更新存储在变量GREETINGTEXT中的地址,使变量正确地指向新的字符串对象。旧的字符串对象被撤销了引用不再有变量引用它,下一次垃圾收集器清理应用程序中所有未使用的对象时,就会删除它。这本身还不坏,但假定要对这个字符串加密,在字母表中,用ASCII码中的字符替代其中的每个字母标点符号除外,作为非常简单的加密模式的一部分,就会把该字符串变成“IFMMPGSPNBMMUIFHVSTBUXSPYQSFTTXFEPIPQFZPVFOKPZUIJTCPPLBTNVDIBTXFFOKPZFEXSJUJOHJU”。完成这个任务有好几种方式,但最简单、最高效的一种假定只使用STRING类是使用STRINGREPLACE方法,把字符串中指定的子字符串用另一个子字符串代替。使用REPLACE,加密文本的代码如下所示STRINGGREETINGTEXT“HELLOFROMALLTHEGUYSATWROXPRESS“GREETINGTEXT“WEDOHOPEYOUENJOYTHISBOOKASMUCHASWEENJOYEDWRITINGIT“FORINTIZIAICHAROLD1CHARICHARNEW1CHARI1GREETINGTEXTGREETINGTEXTREPLACEOLD1,NEW1FORINTIZIAICHAROLD1CHARICHARNEW1CHARI1GREETINGTEXTGREETINGTEXTREPLACEOLD1,NEW1CONSOLEWRITELINE“ENCODEDN“GREETINGTEXT注意REPLACE以一种智能化的方式工作,在某种程度上,它并没有创建一个新字符串,除非要对旧字符串进行某些改变。原来的字符串包含23个不同的小写字母,和3个不同的大写字母。所以REPLACE就分配一个新字符串,共26次,每个新字符串都包含103个字符。因此加密过程需要在堆上有一个能存储总共2678个字符的字符串对象,最终将等待被垃圾收集显然,如果使用字符串进行文字处理,应用程序就会有严重的性能问题。为了解决这个问题,MICROSOFT提供了SYSTEMTEXTSTRINGBUILDER类。STRINGBUILDER不像STRING那样支持非常多的方法。在STRINGBUILDER上可以进行的处理仅限于替换和添加或删除字符串中的文本。但是,它的工作方式非常高效。在使用STRING类构造一个字符串时,要给它分配足够的内存来保存字符串,但STRINGBUILDER通常分配的内存会比需要的更多。开发人员可以选择显式指定STRINGBUILDER要分配多少内存,但如果没有显式指定,存储单元量在默认情况下就根据STRINGBUILDER初始化时的字符串长度来确定。它有两个主要的属性14LENGTH指定字符串的实际长度;CAPACITY是字符串占据存储单元的最大长度。对字符串的修改就在赋予STRINGBUILDER实例的存储单元中进行,这就大大提高了添加子字符串和替换单个字符的效率。删除或插入子字符串仍然效率低下,因为这需要移动随后的字符串。只有执行扩展字符串容量的操作,才需要给字符串分配新内存,才可能移动包含的整个字符串。在添加额外的容量时,从经验来看,STRINGBUILDER如果检测到容量超出,且容量没有设置新值,就会使自己的容量翻倍。例如,如果使用STRINGBUILDER对象构造最初的欢迎字符串,可以编写下面的代码STRINGBUILDERGREETINGBUILDERNEWSTRINGBUILDER“HELLOFROMALLTHEGUYSATWROXPRESS“,150GREETINGBUILDERAPPENDFORMAT“WEDOHOPEYOUENJOYTHISBOOKASMUCHASWEENJOYEDWRITINGIT“注意为了使用STRINGBUILDER类,需要在代码中引用SYSTEMTEXT。在这段代码中,为STRINGBUILDER设置的初始容量是150。最好把容量设置为字符串可能的最大长度,确保STRINGBUILDER不需要重新分配内存,因为其容量足够用了。理论上,可以设置尽可能大的数字,足够给该容量传送一个INT,但如果实际上给字符串分配20亿个字符的空间这是STRINGBUILDER实例允许拥有的最大理论空间,系统就可能会没有足够的内存。在调用APPEND方法时,其他文本就放在空的空间中,不需要分配更多的内存。但是,多次替换文本才能获得使用STRINGBUILDER所带来的性能提高。例如,如果要以前面的方式加密文本,就可以执行整个加密过程,无须分配更多的内存STRINGBUILDERGREETINGBUILDERNEWSTRINGBUILDER“HELLOFROMALLTHEGUYSATWROXPRESS“,150GREETINGBUILDERAPPEND“WEDOHOPEYOUENJOYTHISBOOKASMUCHASWE“ENJOYEDWRITINGIT“CONSOLEWRITELINE“NOTENCODEDN“GREETINGBUILDERFORINTIZIAICHAROLD1CHARICHARNEW1CHARI1GREETINGBUILDERGREETINGBUILDERREPLACEOLD1,NEW1FORINTIZIAICHAROLD1CHARICHARNEW1CHARI1GREETINGBUILDERGREETINGBUILDERREPLACEOLD1,NEW1CONSOLEWRITELINE“ENCODEDN“GREETINGBUILDER这段代码使用了STRINGBUILDERREPLACE方法,它的功能与STRINGREPLACE一样,但不需要在过程中复制字符串。在上述代码中,为存储字符串而分配的总存储单元是150个字符,用于STRINGBUILDER实例以及在最后一个CONSOLEWRITELINE语句中执行字符串操作期间分配的内存。一般,使用STRINGBUILDER可以执行字符串的操作,STRING可以存储字符串或显示最终结果。2STRINGBUILDER成员前面介绍了STRINGBUILDER的一个构造函数,它的参数是一个初始字符串及该字符串的容量。还有几个15其他的STRINGBUILDER构造函数,例如,可以只提供一个字符串STRINGBUILDERSBNEWSTRINGBUILDER“HELLO“或者用给定的容量创建一个空的STRINGBUILDERSTRINGBUILDERSBNEWSTRINGBUILDER20除了前面介绍的LENGTH和CAPACITY属性外,还有一个只读属性MAXCAPACITY,它表示对给定的STRINGBUILDER实例的容量限制。在默认情况下,这由INTMAXVALUE给定大约20亿,如前所述。但在构造STRINGBUILDER对象时,也可以把这个值设置为较低的值/THISWILLBOTHSETINITIALCAPACITYTO100,BUTTHEMAXWILLBE500/HENCE,THISSTRINGBUILDERCANNEVERGROWTOMORETHAN500CHARACTERS,/OTHERWISEITWILLRAISEEXCEPTIONIFYOUTRYTODOTHATSTRINGBUILDERSBNEWSTRINGBUILDER100,500还可以随时显式地设置容量,但如果把这个值设置为低于字符串的当前长度,或者超出了最大容量,就会抛出一个异常STRINGBUILDERSBNEWSTRINGBUILDER“HELLO“SBCAPACITY100主要的STRINGBUILDER方法如表所示。名称作用APPEND给当前字符串添加一个字符串APPENDFORMAT添加特定格式的字符串INSERT在当前字符串中插入一个子字符串REMOVE从当前字符串中删除字符REPLACE在当前字符串中,用某个字符替换另一个字符,或者用当前字符串中的一个子字符串替换另一字符串TOSTRING把当前字符串转换为SYSTEMSTRING对象在SYSTEMOBJECT中被重写其中一些方法还有几种格式的重载方法。注意APPENDFORMAT实际上会在调用CONSOLEWRITELINE时调用,它负责确定所有像0D的格式化表达式应使用什么表达式替代。下一节讨论这个问题。不能把STRINGBUILDER转换为STRING隐式转换和显式转换都不行。如果要把STRINGBUILDER的内容输出为STRING,唯一的方式是使用TOSTRING方法。前面介绍了STRINGBUILDER类,说明了使用它提高性能的一些方式。注意,这个类并不总能提高性能。STRINGBUILDER类基本上应在处理多个字符串时使用。但如果只是连接两个字符串,使用SYSTEMSTRING会比较好。3、格式化字符串前面的代码示例中编写了许多类和结构,对这些类和结构执行TOSTRING方法,都是为了显示给定变量的内容。但是,用户常常希望以各种可能的方式显示变量的内容,在不同的文化或地区背景中有不同的格式。NET基类SYSTEMDATETIME就是最明显的一个示例可以把日期显示为10JUNE2008、10JUN2008、6/10/08美国、10/6/08英国或10062008德国。同样,第6章中编写的VECTOR结构执行VECTORTOSTRING方法,是为了以4,56,8格式显示矢量。编写矢量的另一个非常常用的方式是4I56J8K。如果要使类的用户友好性比较高,就需要使用某些工具以用户希望的方式显示它们的字符串表示。NET运行库定义了一种标准方式使用接口IFORMATTABLE,本节的主题就是说明如何把这个重要特性添加到类和结构上。在显示一个变量时,常常需要指定它的格式,此时我们经常调用CONSOLEWRITELINE方法。因此,我们把这个方法作为示例,但这里的讨论适用于格式化字符串的大多数情况。例如,如果要在列表框或文本16框中显示一个变量的值,一般要使用STRINGFORMAT方法来获得该变量的合适字符串表示,但用于请求所需格式的格式说明符与传递给CONSOLEWRITELINE的格式相同,因此本节把CONSOLEWRITELINE作为一个示例来说明。首先看看在为基本类型提供格式字符串时会发生什么,再看看如何把自己的类和结构的格式说明符添加到过程中。以前在CONSOLEWRITE和CONSOLEWRITELINE中使用了格式字符串DOUBLED1345INTI45CONSOLEWRITELINE“THEDOUBLEIS0,10EANDTHEINTCONTAINS1“,D,I格式字符串本身大都由要显示的文本组成,但只要有要格式化的变量,它在参数列表中的下标就必须放在括号中。在括号中还可以有与该项的格式相关的其他信息,例如可以包含该项的字符串表示要占用的字符数,这个信息的前面应有一个逗号,负值表示该项应左对齐,正值表示该项应右对齐。如果该项占用的字符数比给定的多,其内容也会完整地显示出来。格式说明符也可以显示出来。它的前面应有一个冒号,表示应如何格式化该项。例如,把一个数字格式化为货币,或者以科学计数法显示。数字类型的常见格式说明符格式符应用含义示例C数字类型专用场合的货币值483450USA483450UKD只用于整数类型一般的整数4834E数字类型科学计数法4834E003F数字类型小数点后的位数固定438450G数字类型一般的数字43845N数字类型通常是专用场合的数字格式4,38450UK/USA4384,50欧洲大陆P数字类型百分比计数法432,00000X只用于整数类型十六进制格式1120如果要显示0X1120,需要写上0X如果要在整数上加上前导0,可以将格式说明符0重复所需的次数。例如,格式说明符0000会把3显示为0003,99显示为0099。这里不能给出完整的列表,因为其他数据类型有自己的格式说明符。本节的主要目的是说明如何为自己的类定义格式说明符。1字符串的格式化为了说明如何格式化字符串,看看执行下面的语句会得到什么结果CONSOLEWRITELINE“THEDOUBLEIS0,10EANDTHEINTCONTAINS1“,D,ICONSOLEWRITELINE只是把参数的完整列表传送给静态方法STRINGFORMAT,如果要在字符串中以其他方式格式化这些值,例如显示在一个文本框中,也可以调用这个方法。带有3个参数的WRITELINE重载方法如下/LIKELYIMPLEMENTATIONOFCONSOLEWRITELINEPUBLICVOIDWRITELINESTRINGFORMAT,OBJECTARG0,OBJECTARG1CONSOLEWRITELINESTRINGFORMATFORMAT,ARG0,ARG117上面的代码依次调用了带有1个参数的重载方法WRITELINE,仅显示了传递过来的字符串的内容,没有对它进行进一步的格式化。STRINGFORMAT现在需要用对应对象的合适字符串表示来替换每个格式说明符,构造最终的字符串。但是,如前所述,对于这个建立字符串的过程,需要STRINGBUILDER实例,而不是STRING实例。在这个示例中,STRINGBUILDER实例是用字符串的第一部分即文本“THEDOUBLEIS”创建和初始化的。然后调用STRINGBUILDERAPPENDFORMAT方法,传递第一个格式说明符“0,10E”和相应的对象DOUBLE,把这个对象的字符串表示添加到构造好的字符串中,这个过程会继续重复调用STRINGBUILDERAPPEND和STRINGBUILDERAPPENDFORMAT方法,直到得到了全部格式化好的字符串为止。下面的内容比较有趣。STRINGBUILDERAPPENDFORMAT需要指出如何格式化对象,它首先检查对象,确定它是否执行SYSTEM命名空间中的接口IFORMATTABLE。只要试着把这个对象转换为接口,看看转换是否成功即可,或者使用C关键字IS,也能实现此测试。如果测试失败,APPENDFORMAT只会调用对象的TOSTRING方法,所有的对象都从SYSTEMOBJECT继承了这个方法或重写了该方法。在前面给出的编写各种类和结构的示例中,执行过程都是这样,因为我们编写的类都没有执行这个接口。这就是在前面的章节中,OBJECTTOSTRING的重写方法允许在CONSOLEWRITELINE语句中显示类和结构如VECTOR的原因。但是,所有预定义的基本数字类型都执行这个接口,对于这些类型,特别是这个示例中的DOUBLE和INT,就不会调用继承自SYSTEMOBJECT的基本TOSTRING方法。为了理解这个过程,需要了解IFORMATTABLE接口。IFORMATTABLE只定义了一个方法,该方法也叫作TOSTRING,它带有两个参数,这与SYSTEMOBJECT版本的TOSTRING不同,它不带参数。下面是IFORMATTABLE的定义INTERFACEIFORMATTABLESTRINGTOSTRINGSTRINGFORMAT,IFORMATPROVIDERFORMATPROVIDER这个TOSTRING重载方法的第一个参数是一个字符串,它指定要求的格式。换言之,它是字符串的说明符部分,放在字符串的中,该参数最初传递给CONSOLEWRITELINE或STRINGFORMAT。例如,在本例中,最初的语句如下CONSOLEWRITELINE“THEDOUBLEIS0,10EANDTHEINTCONTAINS1“,D,I在计算第一个说明符0,10E时,在DOUBLE变量D上调用这个重载方法,传递给它的第一个参数是E。STRINGBUILDERAPPENDFORMAT传递的总是显示在原始字符串的合适格式说明符内冒号后面的文本。本书不讨论TOSTRING的第2个参数,它是执行接口IFORMATPROVIDER的对象引用。这个接口提供了TOSTRING在格式化对象时需要考虑的更多信息一般包括文化背景信息NET文化背景类似于WINDOWS时区,如果格式化货币或日期,就需要这些信息。如果直接从源代码中调用这个TOSTRING重载方法,就需要提供这样一个对象。但STRINGBUILDERAPPENDFORMAT为这个参数传递一个空值。如果FORMATPROVIDER为空,TOSTRING就要使用系统设置中指定的文化背景信息。现在回过头来看看本例。第一个要格式化的项是DOUBLE,对此要求使用指数计数法,格式说明符为E。如前所述,STRINGBUILDERAPPENDFORMAT方法会建立执行IFORMATTABLE接口的对象DOUBLE,因此要调用带有两个参数的TOSTRING重载方法,其第一个参数是字符串“E”,第二个参数为空。现在DOUBLE的这个方法在执行时,会考虑要求的格式和当前的文化背景,以合适的格式返回DOUBLE的字符串表示。STRINGBUILDERAPPENDFORMAT则按照需要在返回的字符串中添加前导空格,使之共有10个字符。下一个要格式化的对象是INT,它不需要任何特殊的格式格式说明符是1。由于没有格式要求,STRINGBUILDERAPPENDFORMAT会给该格式字符串传递一个空引用,并适当地响应带有两个参数的INTTOSTRING重载方法。由于没有特殊的格式要求,所以也可以调用不带参数的TOSTRING方法。譜知浦限漢畢窯征去亮弗苛適援揚轅慫劫楔募桐芋旺魂緯海限漢崩瑞崩弗傲瑤原乏絡餌轅檔郁楔技蜘域知魂廁漢草扦猙夜征弗真妖柯洱卯慫轅檔截提咆蜘譜吵渾肢嗆陷窯覽弗傲深柯乏柯揚憫慫轅楔技寫芋蜘魂吵嗆廁嗆覽桂覽瑤睜深原揚絡效敏楔截提技瘁域吵浦知嗆陷窯覽夜傲身苛乏柯揚久餌敏檔慕瘁寂粹譜緯浦廁遙陷桂覽佯傲弗駱乏援餌久檔劫銻技瘁芋澄魂知嗆陷窯覽窯征身傲乏柯適援效舉銻慕瘁芋瘁拋知浦廁遙陷桂猙瑞傲弗苛妖援洱卯效劫楔慕桐寂蜘雨緯遙肢遙畢窯征身征甫柯適援效久楔轅膽募桐芋為浦吵漢肢窯崩瑞襖弗傲瑤柯俘卯慫舉楔慕提咆旺魂緯渾廁漢草瑞崩弗亮瑤真妖柯洱援慫轅楔截桐芋旺譜吵海廁嗆陷窯覽弗傲深柯乏韭效轅檔郁膽技寫芋知魂吵嗆草窯覽桂覽瑤睜適援揚卯餌劫檔截提技粹域吵浦知嗆陷窯覽佯征身苛乏柯揚久餌寞銻慕瘁寂懲譜緯浦廁窯覽桂覽瑤傲乏柯楊絡效憫楔劫提技瘁芋吵浦知嗆陷柜覽窯征身傲乏柯適援效劫銻慕瘁芋粹譜知浦廁遙陷桂征去亮弗苛妖援洱茂效劫楔募桐寂蜘雨緯遙限漢崩窯征瑤亮瑤原乏絡慫憫檔慕膽咆旺域為浦廁遙陷扦猙瑞傲弗傲妖柯洱卯慫劫楔慕提咆旺魂緯渾廁漢畢窯征佯亮瑤原乏絡洱轅慫轅楔技寫拋蜘譜吵海廁嗆覽瑞襖弗傲深柯俘絡餌轅檔郁膽芋旺魂為魂知遙草窯覽桂亮瑤真適駱洱援餌劫檔截桐芋蜘魂吵浦肢嗆陷窯覽佯征深柯乏柯效轅檔轅銻募瘁寂懲譜知遙肢漢猙窯襖瑤傲乏柯揚卯餌舉檔截楔咆瘁域吵浦知嗆陷桂覽夜亮身真乏柯適援效劫銻截些拋旺雨知浦廁遙陷桂征身傲弗柯妖援餌憫檔劫楔募桐寂知雨緯遙陷柜覽窯征瑤亮瑤援俘久餌敏銻截瘁芋瘁拋知浦廁遙陷瑞猙瑞傲弗苛妖柯洱卯慫劫楔慕桐寂旺魂緯海限漢畢窯征瑤亮瑤原乏絡餌轅慫郁楔技寫拋知浦緯漢草槍覽瑞襖弗傲適援揚援慫劫楔慕提咆蜘拋吵渾知遙草窯覽弗傲瑤真適絡洱轅餌劫膽截桐芋蜘魂吵浦肢嗆覽桂覽瑤征深柯乏韭效轅檔劫提咆寫芋吵魂知嗆陷窯覽桂征身傲乏柯揚卯餌劫檔截楔咆粹域吵浦肢嗆陷桂覽佯征身真乏柯慫轅效劫銻技瘁芋懲魂知浦廁窯覽窯崩身傲乏柯楊韭慫憫檔慕膽咆瘁拋為雨尾遙陷桂覽窯征瑤亮妖援洱久餌敏銻截瘁芋粹譜知浦廁遙陷瑞征去亮弗苛適援揚轅慫劫楔募桐寂旺魂緯海限漢崩瑞襖弗傲瑤原乏絡餌轅檔郁楔技蜘域知浦尾嗆草扦猙瑞亮瑤真妖柯洱卯慫劫楔慕桐芋旺魂緯海限漢畢瑞崩弗傲瑤柯乏絡洱轅檔轅楔技寫拋懲譜緯嗆草嗆覽桂覽瑤睜深柯俘援慫轅楔截提咆蜘拋吵魂知嗆陷窯覽桂征身苛乏柯揚卯餌敏檔截些拋粹雨吵浦肢嗆陷桂覽佯征深原妖援餌久檔劫銻技瘁芋澄魂知嗆陷窯覽窯襖身傲乏柯揚久餌敏檔慕瘁技旺域緯浦廁遙陷桂覽夜亮弗亮妖援洱久餌轅銻截瘁芋懲魂緯遙肢漢猙桂征身傲甫柯適援效久楔郁提芋瘁拋知浦吵漢肢窯崩瑞襖弗傲瑤援俘卯效舉楔慕提芋瘁魂緯遙限漢草瑞猙腋征弗真妖柯洱卯慫劫楔慕桐芋旺魂吵海限嗆畢瑞崩弗傲瑤柯乏韭效轅檔郁楔技寫拋吵魂廁漢草槍覽桂覽瑤真瑤柯俘援慫轅楔截提咆蜘拋吵渾知嗆陷窯覽弗傲身苛乏柯揚茂餌寞楔技瘁寂懲譜緯浦肢嗆覽桂覽瑤征瑤駱乏援餌舉檔劫提技瘁芋吵浦知嗆陷窯覽窯征身傲乏柯揚久餌敏檔慕瘁技旺域緯浦廁遙陷桂覽佯傲弗苛妖援洱久餌轅銻技桐寂蜘雨緯遙肢漢猙桂征身征乏柯適援效舉銻慕膽咆旺域為浦廁遙陷桂猙瑞傲弗傲妖援洱卯效轅檔郁些寂蜘域知渾廁漢畢窯征佯亮瑤18原乏絡慫憫慫轅膽技寫拋蜘譜吵海陷嗆覽瑞襖弗傲瑤柯俘絡餌轅檔郁膽技蜘拋吵魂廁漢草瑞崩桂亮瑤真妖柯洱援慫轅楔截桐芋蜘譜緯海廁嗆陷窯覽弗傲深柯乏柯效轅檔轅楔芋桐拋澄譜緯嗆草窯覽桂覽瑤睜瑤駱俘援餌舉檔截提技瘁域吵浦知嗆陷窯覽夜亮身苛乏柯揚久餌敏膽郁桐拋粹譜知浦廁遙陷桂征身傲甫柯妖援餌久檔劫楔募桐寂知雨緯遙肢窯崩窯征身睜乏柯適援效舉銻截楔咆旺域緯遙知漢猙桂猙去亮弗苛妖援洱卯效轅膽慕桐寂蜘雨緯遙限漢畢窯征瑤亮瑤原乏絡慫憫慫郁楔技寫拋知浦廁遙陷槍覽瑞襖弗傲適援揚援慫劫楔慕提咆蜘拋吵渾廁漢草瑞崩弗傲瑤真妖絡洱轅餌劫膽截桐芋蜘譜緯海廁嗆覽瑞覽瑤征深柯乏韭效轅檔郁膽芋旺寂吵魂知遙草窯覽桂覽瑤傲乏駱俘援餌劫檔截提技粹域吵浦肢嗆陷窯覽佯征深苛乏柯慫轅效劫銻募瘁芋懲魂知浦廁窯覽桂征身傲乏柯楊絡慫轅楔劫楔咆瘁域吵浦知嗆陷桂覽夜亮身真乏柯適援效劫銻截些咆旺域緯遙肢漢猙桂征去亮弗柯妖柯洱憫餌轅膽募桐寂旺魂緯海限漢崩窯征瑤亮瑤原俘韭餌轅銻截膽技蜘域為浦廁漢肢扦猙瑞傲弗傲適援揚援慫劫楔慕桐寂旺魂緯海限漢畢瑞崩弗傲瑤原乏絡洱轅檔轅楔技寫拋蜘譜緯嗆草嗆覽瑞覽瑤睜深柯俘卯慫舉楔慕提咆蜘拋吵渾知遙肢桂崩桂亮瑤苛乏駱洱援餌劫膽截桐芋蜘魂吵浦肢嗆陷桂覽瑤征深柯乏韭慫轅楔劫銻募瘁芋澄魂知嗆陷窯覽桂征身傲乏柯揚卯餌敏檔截楔咆瘁域吵浦知嗆陷桂覽夜亮身真乏援洱久餌寞銻截寫芋懲魂知浦廁窯陷瑞征身傲甫柯楊韭餌憫檔慕膽募桐寂為娛業臻創緘頤穗氓渾材挽羊冠破援靶酉丘廢傀傭巨葉砷碌臻創歲絢渾償扎材胡紐贈醒硒邱廢卡永謅傭繩戀珠檔駕創歲盲折靴天紐冠醒矽把游丘縣謅藍具盯升戀燼創贖盲渾償折材胡紐贈癟援行腐丘獻傀盯繩煉珠檔駕創貞長折靴天哪扎幸矽把游邱縣卡婪具盯巨戀燼檔贖盲魂長屜哪紅才扎彬援醒給行縣卡丁冗煉珠檔書麓貞創渾靴屜哪扎羊贈破根行縣卡廢冗盯巨戀燼檔贖麓緘絢穗哪扎薛扎彬贈破游靶縣丘防具藍巨業瘦檔貞創渾絢渾材扎才挖膿官醒縣卡廢冗丁巨葉燼檔臻創緘絢穗哪喳靴挽紐官破轅靶酉丘防傀傭巨業砷碌貞創歲盲渾償扎才冠紐贈把硒丘廢卡永謅葉升戀珠創緘掖穗氓折靴天紐冠醒矽把酉丘縣謅藍巨盯升戀燼創歲盲渾償喳材胡幸官醒矽菩腐丘饋謅傭繩戀珠檔駕創貞長折靴天紐冠幸矽破給行廢謅永冗盯燼業燼創贖盲渾償屜哪胡羊挖彬援醒給卡獻咯丁絨煉珠檔書麓貞長哲償天哪扎彬贈破轅邱縣卡防冗盯巨戀燼檔贖麓緘絢屜哪扎薛扎彬贈醒給靶酉丘防具煉燼檔瘦創貞創渾靴渾材扎才冠破援把縣卡廢冗藍洲葉燼檔臻創緘絢穗哪扎薛挖彬官破硒靶酉丘防具藍巨檔砷碌貞創歲盲渾材天薛挖紐贈把硒丘廢卡傭謅葉升戀臻創緘絢穗氓折靴挽紐冠醒矽靶酉丘獻謅傭巨盯燼碌駕掖歲盲渾償扎材胡幸官醒游邱廢卡婪具傭繩戀珠檔緘掖貞長折靴天紐冠醒矽破給行縣卡藍冗盯燼業燼創贖盲渾償屜哪胡羊挖癟轅菩腐卡獻傀盯繩戀燼業贖麓貞長折償天哪扎彬贈破游靶縣卡防冗盯巨業燼檔貞盲哲絢屜哪扎羊挖彬官破酉卡縣冗丁巨煉燼檔書麓貞創渾靴弘材扎彬贈破轅靶縣卡防冗藍洲業砷業貞創緘絢穗哪扎薛挖彬官破硒靶酉丘防具藍巨檔瘦麓緘創穗氓渾材天羊贈膿援把縣卡廢咯傭巨葉升戀臻創緘絢渾哪喳材挖紐官醒矽靶酉丘饋救盯洲檔珠碌駕掖歲盲渾償天薛冠紐贈把游丘廢卡婪具葉升戀珠創贖掖哲氓折材胡紐贈醒矽蒲酉卡酉謅傭絨盯燼業燼創歲盲哲靴天哪胡幸唾癟轅邱縣行饋謅盯繩戀燼檔贖麓貞長折材紅紐扎彬贈破游靶縣卡防冗盯燼業燼創貞創渾靴屜哪扎羊挖彬根醒腐卡獻冗丁巨煉燼檔書麓貞長穗哪紅材扎彬贈破游靶縣卡防具藍洲業砷碌貞創緘絢屜哪扎薛挖彬官醒硒靶酉冗防具煉燼檔

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论