2008年1月23日星期三

集合竞价和连续竞价

集合竞价和连续竞价

作为一个证券市场的投资者,在市场里进行操作时,自己的委托能否成交,能否以最快的速度最有利的价格成交是投资者比较关心的问题,这些问题都涉及到上海、深圳证券交易所的交易规则和竞价规则。

  1. 交易原则、竞价、规则

   我国证券市场的基本原则是:公开、公平、公正,也就是我们常说的"三公"原则,交易所的交易原则是价格俦,时间俦,因此在交易所的自动撮合系统中的成交 顺序是:较高的买进委托优先于较低的买进委托,较低的卖出委托优先于较高的卖出委托,同价位委托,较先申报者优先于较后申报者。

  每一个交易日中,任何一个证券的竞价分为集合竞价与连续竞价两部分(债券只有连续竞价而无集合竞价),集合竞价对所有有效委托进行集中处理,连续竞价则对有效委托进行逐笔处理。

  2. 集合竞价

  所谓集合竞价,即在某一规定时间内,由投资者按照自己所能接受的心理价格自由地进行买卖申报之报,由电脑交易处理系统对全部申报按照价格俦、时间俦的原则排序,并在此基础上,找出一个基准价格,使它同时能满足以下3个条件:

  · 成交量最大。
  · 高于基准价格的买入申报和低于基准价格的卖出申报全部满足(成交)。
  · 与基准价格相同的买卖双方中有一方申报全部满足(成交)。

   该其准价格即被确定为成交价格,集合竞价方式产生成交价格的全部过程,完全由电脑交易系统进行程序化处理,将处理后所产生的成交价格显示出来。这里需要 说明的是:第一,集合竞价方式下价格优先、时间优先原则体现在电脑主机将所有的买入和卖出申报按价格由高到低排出序列,同一价格下的申报原则按电脑主机接 受的先后顺序排序;第二,集合竞价过程中,若产生一个以上的基准价格,即有一个以上的价格同时满足集合竞价的3个条件时,沪市选取这几个基准价格的中间价 格为成交价格,深市则选取离前收盘价最近的价格为成交价格。

  下面举例进行说明:
  例一

累计买入 申报 买入申报 手数 价格 (元) 卖出申报
手数
累计卖出
申报
成交量
- - 6.10 300 860 -
- - 6.07 120 560 -
150 150 6.05 100 440 150
220 70 6.00 200 340 220
420 200 5.99 80 140 140
490 70 5.98 60 60 60
790 300 5.95 - - -

  从这张表中我们可以看出,6.00元价位上成交量最大,为220手,高于6.00元的买入委托和低于6.00元的卖出委托全部满足,且 6.00元价位上的买入委托也全部满足,卖出委托仅满足80手,符合上面所说的3个条件,因此6.00元即为该股当日的开盘价,开盘的成交量为220手, 集合竞价开盘后的盘面情况如下:
卖三 6.07 120 卖二 6.05 100 卖一 6.00 120
买一 5.99 200 买二 5.98 60 买三 5.95 300

  例二
累计买入 申报 买入申报 手数 价格 (元) 卖出申报
手数
累计卖出
申报
成交量
50 50 6.15 - 200 50
100 50 6.12 100 200 100
200 100 6.10 50 100 100
200 - 6.00 50 50 50

  这里出现了6.12元和6.10元两个价位同时满足3个条件的情况,如果这是沪市股票,则开盘价为(6.12+6.10)/2=6.11元,如果是深市股票则为接近前收盘的价格,假设前收盘为6.00元,则6.10元即为开盘价,成交量都是100手。

  集合竞价中需要注意的几点:

  1. 所有在集合竞价成交的委托,无论委托价格高低,其成交价均为开盘价,所有高于开盘价的买入委托和低于开盘价的卖出委托均可成交,与开盘价相同的部分委托也可成交。

   2. 沪深两地股票的开盘价是由集合竞价产生的,如果集合竞价未能找出符合上述3个条件的成交价格,则开盘价将在其后进行的连续竞价中产生,连续竞价的第一笔成 交价格则为该股当日的开盘价,如果某只股票因刊登公靠等原因于上午停牌,则下午于1点起直接进入连续竞价,其第一笔成交价格则为该股当日的开盘价。

  3. 沪深两市每日集合竞价时间为上午9时15 ~ 25分,在这段时间内交易所有只接受申报,不进行撮合,但可以撤单。9时25 ~30分之间的5分钟既不能报单也不能撤单,9时27分由集合竞价产生开盘价,9时30分开始进入连续竞价阶段。

  4. 配股、债券(包括国债、企业债等)以及新股申购都没有集合竞价,只有在政党交易时间进行连续竞价。可转换债券上市首日的开盘价由集合竞价产生,之后的交易与债券相同。

  I. 连续竞价

  上海、深圳证券交易所在政党交易时间即每周1~5上午时30分 ~11时30分,下午1-3时彩连续竞价方式,接受申报进行撮合。

  所谓连续竞价,即是指对申报的每一笔买卖委托,由电脑交易系统按照以下两种情况产生成交价:

  1. 最高买进申报与最低卖出申报相同,则该价格即为成交价格;

  2. 买入申报高于卖出申报时,或卖出申报低于买入申报时,申报在先的价格即为成交价格。

  举例说明:

  回到例一,集合竞价开盘后的盘面情况如下:
卖三 6.07 120 卖二 6.05 100 卖一 6.00 120
买一 5.99 200 买二 5.98 60 买三 5.95 300

  如果此时交易所主机连续接到如下4笔申报,(a,b,c,d,)则会出现
委托申报 成交情况
成交价格 成交量
a.买入 6.00元 80手 6.00元 80手
b.卖出 5.99元 50手 5.99元 50手
c.买入 6.15元 250手 6.00元 120手
6.05元 100手
d.卖出 5.96元 300手 6.07元 30手
5.98元 200手
5.98元 60手

  之后的盘面情况如下:
卖三 6.10 300 卖二 6.07 90 卖一 5.96 40
买一 5.95 300 买二 - - 买三 - -

什么是蓝筹股

在海外股票市场上,投资者把那些在其所属行业内占有重要支配性地位、业绩优良,成交活跃、红利优厚的大公司股票称为蓝筹股。"蓝筹"一词源自西方赌场。在西方赌场中,有二种颜色的筹码、其中蓝色筹码最为值钱,红色筹码次之,白色筹码最差。投资者把这些行话套用到股票)。美国通用汽车公司、埃克森石油公司和杜邦化学公司等股票,都属于"蓝筹股". 蓝筹股并非一成不变。随着公司经营状况的改变及经济地位的升降、蓝筹股的排名也会变更。据美国著名的《福布斯》杂志统计,1917年的100家最大公司中,目前只有43家公司股票仍在蓝筹股之列,而当初"最蓝"、行业最兴旺的铁路股票,如今完全丧失了人选蓝筹股的资格和实力。在香港股市中,最有名的蓝筹股当属全球最大商业银行之一的"汇丰控股"。有华资背景的"长江实业"和中资背景的"中信泰富"等,也属蓝筹股之列。中国大陆的股票市场虽然历史较短,但发展十分迅速,也逐渐出现了一些蓝筹股。

股息与红利的发放方式

股息红利作为股东的投资收益,是以股份为单位计算的货币金额,如每股多少元。但在上市公司实施具体分派时,其形式可以有四种:这就是现金股利、财产股利、负债股利和股票股利等。

财产股利是上市公司用现金以外的其他资产向股东分派的股息和红利。它可以是上市公司持有的其他公司的有价证券,也可以是实物。负债股利是上市公司通 过建立一种负债,用债券或应付票据作为股利分派给股东。这些债券或应付票据既是公司支付的股利,又确定了股东对上市公司享有的独立债权。现金股利是上市公 司以货币形式支付给股东的股息红利,也是最普通最常见的股利形式,如每股派息多少元,就是现金股利。股票股利是上市公司用股票的形式向股东分派的股利,也 就是通常所说的送红股。

采用送红股的形式发放股息红利实际上是将应分给股东的现金留在企业作为发展再生产之用,它与股份公司暂不分红派息没有太大的区别。股票红利使股东手 中的股票在名义上增加了,但与此同时公司的注册资本增大了,股票的净资产含量减少了。但实际上股东手中股票的总资产含量没什么变化。

由于要在获得利润后才能向股东分派股息和红利,上市公司一般是在公司营业年度结算以后才从事这项工作。在实际中,有的上市公司在一年内进行两次决 算,一次在营业年度中期,另一次是营业年度终结。相应地向股东分派两次股利,以便及时回报股东,吸引投资者。但年度中期分派股利不同于年终分派股利,它职 能在中期以前的利润余额范围内分派,且必须是预期本年度终结时不可能亏损的前提下才能进行。

根据公司法的规定,上市公司分红的基本程序是,首先由公司董事会根据公司盈利水平和股息政策,确定股利分派方案,然后提交股东大会审议通过方能生效。董事会即可依股利分配方案向股东宣布,并在规定的付息日在约定的地点以约定的方式派发。

在沪深股市,股票的分红派息都由证券交易所及登记公司协助进行。在分红时,深市的登记公司将会把分派的红股直接登录到股民的股票帐户中,将现金红利 通过股民开户的券商划拨到股民的资金帐户。沪市上市公司对红股的处理方式与深市一致,但现金红利需要股民到券商处履行相关的手续,即股民在规定的期限内到 柜台中将红利以现金红利权卖出,其红利款项由券商划入资金帐户中。如逾期未办理手续,则需委托券商到证券交易所办理相关手续。

股票基本名词概念

开盘价:
  是指当日开盘后该股票的第一笔交易成交的价格。如果开市后30分钟内无成交价,则以前日的收盘价作为开盘价。

收盘价:
  指每天成交中最后一笔股票的价格,也就是收盘价格。

最高价:
  是指当日所成交的价格中的最高价位。有时最高价只有一笔,有时也不止一笔。

最低价:
  是指当日所成交的价格中的最低价位。有时最低价只有一笔,有时也不止一笔。

普通股:
   普通股是指在公司的经营管理和盈利及财产的分配上享有普通权利的股份,代表满足所有债权偿付要求及优先股东的收益权与求偿权要求后对企业盈利和剩余财产的 索取权,它构成公司资本的基础,是股票的一种基本形式,也是发行量最大,最为重要的股票。目前在上海和深圳证券交易所上中交易的股票,都足普通股。普通股 股票持有者按其所持有股份比例享有以下基本权利:
(1)公司决策参与权。普通股股东有权参与股东大会,并有建议权、表决权和选举权,也可以委托他人代表其行使其股东权利。
(2)利润分配权。普通股股东有权从公司利润分配中得到股息。普通股的股息是不固定的,由公司赢利状况及其分配政策决定。普通股股东必须在优先股股东取得固定股息之后才有权享受股息分配权。
(3)优先认股权。如果公司需要扩张而增发普通股股票时,现有普通股股东有权按其持股比例,以低于市价的某一特定价格优先购买一定数量的新发行股票,从而保持其对企业所有权的原有比例。
(4)剩余资产分配权。当公司破产或清算时,若公司的资产在偿还欠债后还有剩余,其剩余部分按先优先股股东、后普通股股东的顺序进行分配。

优先股:
  是相对于普通股而言的。主要指在利润分红及剩余财产分配的权利方面,优先于普通股。
  优先股有两种权利:
    a. 在公司分配盈利时,拥有优先股票的股东比持有普通股票的股东,分配在先,而且享受固定数额的股息,即优先股的股息率都是固定的,普通股的红利却不固定,视公司盈利情况而定,利多多分,利少少分,无利不分,上不封顶,下不保底。
    b. 在公司解散,分配剩余财产时,优先股在普通股之前分配。

绩优股:
  是指那些业绩优良,但增长速度较慢的公司的股票。这类公司有实力抵抗经济衰退,但这类公司并不能给你带来振奋人心的利润。因 为这类公司业务较为成熟,不需要花很多钱来扩展业务,所以投资这类公司的目的主要在于拿股息。另外,投资这类股票时,市盈率不要太高,同时要注意股价在历 史上经济不景气时波动的记录。

热门股:
  是指交易量大、流通性强、股价变动幅度较大的股票。

成长股:
  是指这样一些公司所发行的股票,它们的销售额和利润额持续增长,而且其速度快于整个国家和本行业的增长。这些公司通常有宏图伟略,注重科研,留有大量利润作为再投资以促进其扩张。

手:
  它是国际上通用的计算成交股数的单位。必须是手的整数倍才能办理交易。目前一般以100股为一手进行交易。即购买股票至少必须购买100股。

成交量:
  反映成交的数量多少。一般可用成交股数和成交金额两项指标来衡量。目前深沪股市两项指标均能显示出来

价位:
  指喊价的升降单位。价位的高低随股票的每股市价的不同而异。以上海证券交易所为例:每股市价末满100元 价位是0.10元,每股市价100-200元 价位是0.20元 每股市价200-300元 价位是0.30元,每股市价300-400元 价位是0.50元 每股市价400元以上 价位是1.00元

停牌:
  股票由于某种消息或进行某种活动引起股价的连续上涨或下跌,由证券交易所暂停其在股票市场上进行交易。待情况澄清或企业恢复正常后,再复牌在交易所挂牌交易。

涨跌:
  以每天的收盘价与前一天的收盘价相比较,来决定股票价格是涨还是跌。一般在交易台上方的公告牌上用"+""-"号表示。

涨(跌)停板:
  交易所规定的股价一天中涨(跌)最大幅度为前一日收盘价的百分数,不能超过此限,否则自动停止交易。

升高盘:
  是指开盘价比前一天收盘价高出许多。

开低盘:
  是指开盘价比前一天收盘价低出许多。

盘档:
  是指投资者不积极买卖,多采取观望态度,使当天股价的变动幅度很小,这种情况称为盘档。

整理:
  是指股价经过一段急剧上涨或下跌后,开始小幅度波动,进入稳定变动阶段,这种现象称为整理,整理是下一次大变动的准备阶段。

跳空
  指受强烈利多或利空消息刺激,股价开始大幅度跳动。跳空通常在股价大变动的开始或结束前出现。

市盈率
  市盈率是某种股票每股市价与每股盈利的比率。(市盈率=普通股每股市场价格÷普通股每年每股盈利)上式中的分子是当前的每股市 价,分母可用最近一年盈利,也可用未来一年或几年的预测盈利。市盈率是估计普通股价值的最基本、最重要的指标之一。一般认为该比率保持在20-30之间是 正常的,过小说明股价低,风险小,值得购买;过大则说明股价高,风险大,购买时应谨慎。但高市盈率股票多为热门股,低市盈率股票可能为冷门股。

回档:
  是指股价上升过程中,因上涨过速而暂时回跌的现象。

反弹:
  是指在下跌的行情中,股价有时由于下跌速度太快,受到买方支撑暂时回升的现象。反弹幅度较下跌幅度小,反弹后恢复下跌趋势。

多头:
  对股票后市看好,先行买进股票,等股价涨至某个价位,卖出股票赚取差价的人。

空头:
  是指认为股价已上涨到了最高点,很快便会下跌,或当股票已开始下跌时,认为还会继续下跌,趁高价时卖出的投资者。

多头市场:
  也称牛市,就是股票价格普遍上涨的市场。

空头市场:
  股价呈长期下降趋势的市场,空头市场中,股价的变动情况是大跌小涨。亦称熊市。

多翻空:
  原本看好行情的多头,看法改变,卖出手中的股票,有时还借股票卖出,这种行为称为翻空或多翻空。

空翻多:
  原本作空头者,改变看法,把卖出的股票买回,有时还买进更多的股票,这种行为称为空翻多。

买空:
  预计股价将上涨,因而买入股票,在实际交割前,再将买入的股票卖掉,实际交割时收取差价或补足差价的一种投机行为。

卖空:
  预计股价将下跌,因而卖出股票,在发生实际交割前,将卖出股票如数补进,交割时,只结清差价的投机行为。

如何参加集合竞价

集合竞价是将数笔委托报价或一时段内的全部委托报价集中在一起,根据不高于申买价和不低于申卖价的原则产生一个成交价格,且在这个价格下成交的股票数量最大,并将这个价格作为全部成交委托的交易价格。9:15开始可以进行集合竞价,9:25之前可以撤单,9:25分竞价结果报出,集合竟价的基本过程如下:

设股票A在开盘前分别有6笔买入委托和5笔卖出委托,根据价格优先的原则,按买入价格由高至低和卖出价格由低至高的顺序将其分别排列如下:
序号 委托买入价 数量(手) 序号 委托卖出价 数量(手)
[1] 3.80 2 [1] 3.52 5
[2] 3.76 6 [2] 3.57 1
[3] 3.65 4 [3] 3.60 2
[4] 3.60 7 [4] 3.65 6
[5] 3.54 6 [5] 3.70 6
[6] 3.75 3
按不高于申买价和不低于申卖价的原则,首先可成交第一笔,即3.80元买入委托和3.52元的卖出委托,若要同时符合申买者和申卖者的意愿,其成交价格必须是在3.52元与3.80元之间,但具体价格要视以后的成交情况而定。这对委托成交后其它的委托排序如下:
序号 委托买入价 数量(手) 序号 委托卖出价 数量(手)
[1] [1] 3.52 3
[2] 3.76 6 [2] 3.57 1
[3] 3.65 4 [3] 3.60 2
[4] 3.60 7 [4] 3.65 6
[5] 3.54 6 [5] 3.70 6
[6] 3.75 3
在第一次成交中,由于卖出委托的数量多于买入委托,按交易规则,序号1的买入委托2手全部成交,序号1的卖出委托还剩余3手。
第 二笔成交情况:序号2的买入委托价格为不高于3.76元,数量为6手。在卖出委托中,序号1-3的委托的数量正好为6手,其价格意愿也符合要求,正好成 交,其成交价格在3.60元-3.76元的范围内,成交数量为6手。应注意的是,第二笔成交价格的范围是在第一笔成交价格的范围之内,且区间要小一些。第 二笔成交后剩下的委托情况为:
序号 委托 买入价数量(手) 序号 委托卖出价 数量(手)
[3] 3.65 4
[4] 3.60 7 [4] 3.65 6
[5] 3.54 6 [5] 3.70 6
[6] 3.75 3
第 三笔成交情况:序号3的买入委托其价格要求不超过3.65元,而卖出委托序号4的委托价格符合要求,这样序号3的买入委托与序号4的卖出委托就正好配对成 交,其价格为3.65元,因卖出委托数量大于买入委托,故序号4的卖出委托仅只成交了4手。第三笔成交后的委托情况如下:
序号 委托买入价 数量(手) 序号 委托卖出价 数量(手)
[4] 3.60 7 [4] 3.65 2
[5] 3.54 6 [5] 3.70 6
[6] 3.75 3
完成以上三笔委托后,因最高买入价为3.60元,而最低卖出价为3.65,买入价与卖出价之间再没有相交部分,所以这一次的集合竟价就已完成,最后一笔的成交价就为集合竟价的平均价格。剩下的其他委托将自动进入开盘后的连续竟价。
在以上过程中,通过一次次配对,成交的价格范围逐渐缩小,而成交的数量逐渐增大,直到最后确定一个具体的成交价格,并使成交量达到最大。在最后一笔配对中,如果买入价和卖出价不相等,其成交价就取两者的平均。
在这次的集合竞价中,三笔委托共成交了12手,成交价格为3.65元,按照规定,所有这次成交的委托无论是买入还是卖出,其成交价都定为3.65元,交易所发布的股票A的开盘价就为3.65元,成交量12手。
当股票的申买价低而申卖价高而导致没有股票成交时,上海股市就将其开盘价空缺,将连续竟价后产生的第一笔价格作为开盘价。而深圳股市对此却另有规定:
若最高申买价高于前一交易日的收盘价,就选取该价格为开盘价;若最低申卖价低于前一交易日的收盘价,就选取该价格为开盘价;若最低申买价不高于前一交易日的收盘价、最高申卖价不低于前一交易日的收盘价,则选取前一交易日的收盘价为今日的开盘价。

下面是一点点小技巧~~~~~~~

集合竞价:就是在9:15 到9:25卖出或买入自己的股票。
但集合竞价并非那么简单,首先如果你卖出股票,必须判断出集合竞价就是最高点,比方说,昨天涨停,今天高开到六,七个点附近,那集合竞价肯定是 最高点,即使不是最高点,该股在开盘后肯定回落,毕竟有获利盘涌出,所以你要在集合竞价卖掉股票,然后在低点买入,或者观看,这就要看个股了。如果该股今 天被股评推荐,明天高开,一
个字“出”。管它后面是否阳光灿烂,落袋为安。
那么如何在集合竞价填单,这是个学问。
比如你9:15 填单,结果看到股价越来越低,等你犹豫的时候已经过了9:20,那撤单已经来不急了,所以最好的填单时间就是9:25之前,时间越接近9:25越好。
那价格如何填写呢,你们知道集合竞价先是价格优先,然后才是时间优先,所以你只要在9:25之前报比当时价低一毛钱肯定成交,有的人担心,是不是报的价低 了,自己就亏了,放心好了,你毕竟是散户,你的影响很小,如果成交,肯定是开盘价,不用担心自己的价报的低,报低是为了肯定能成交。

2008年1月21日星期一

市盈率

市盈率又称股份收益比率或本益比,是股票市价与其每股收益的比值,计算公式是:
市盈率:当前每股市场价格/每股税后利润
市盈率是衡量股价高低和企业盈利能力的一个重要指标。由于市盈率把股价和企业盈利能力结合起来、其水平高低更真实地反映了股票价格的高低。例如.股价同为50元的两只股票,其每股收益分别为5元和1元,则其市盈率分别是10倍和50倍,也就是说具当前的实际价格水平相差5倍。若企业盈利能力不变,这说明投资者以同样50元价格购买的两种股票,要分别在10年和50年以后才能从企业盈利中收回投资。但是,由于企业的盈利能力是会不断改变的,投资者购买股票更看重企业的未来。因此,一些发展前景很好的公司即使当前的市盈率较高,投资者也愿意去购买。预期的利润增长率高的公司,其股票的市盈率也会比较高。例如,对两家上年每股盈利同为1元的公司来讲,如果A公司令肩每年保持20%的利润增长率,B公司每年只能保持m%的增长率,那么到第十年时八公司的每股盈利将达到6.2无1公司只有26元,因此A公司当前的中盈率必然应当高丁日公司。投资者若以同样价格购买这家公司股票。对A公司的投资能更早地收M。
为了反映不同市场或者不同行业股票的价格水平,也可以N算出每个市场的整体市盈率或者不同行业上市公司的平均市盈率。具体计算方法是用全部上市公司的市价总值除以全部):市公司的税后利润总额、即呵得出这些上市公司的平均市盈率。
影响市场整体市盈率水平的因素很多,最主要的有两个。即该中场所处地区的经济发展潜力和市场利率水平。一般而言新兴证券市场中的上市公司普遍有较好的发展潜力,利润增长率比较高,因此,新兴证券市场的整体市盈率水平会比成熟证券市场的市盈率水平高。欧美等发达国家股市的市盈率一般保持在 1~20倍左右。而亚洲一些发展中国家的股市汇常情况下的市盈率在30倍左右。另一方面,市盈率的倒数相当于股市投资的预期利润率。因此,由于社会资金追求平均利润率的作用,一同证券市场的合理市盈率水平还与其市场利率水平有倒数关系。

换手率

“换手率”也称“周转率”,指在一定时间内市场中股票转手买卖的频率,是反映股票流通性强弱的指标之一。其计算公式为:
  周转率(换手率)=(某一段时期内的成交量)/(发行总股数)x100%
  例如,某只股票在一个月内成交了2000万股,而该股票的总股本为 l亿股,则该股票在这个月的换手率为20%。在我国,股票分为可在二级市场流通的社会公众股和不可在二级市场流通的国家股和法人股两个部分,一般只对可流通部分的股票计算换手率,以更真实和准确地反映出股票的流通性。按这种计算方式,上例中那只股票的流通股本如果为200O万,则其换手率高达100%。在国外,通常是用某一段时期的成交金额与某一时点上的市值之间的比值来计算周转率。
  换手率的高低往往意味着这样几种情况:
  (l)股票的换手率越高,意味着该只股票的交投越活跃,人们购买该只股票的意愿越高,属于热门股;反之,股票的换手率越低,则表明该只股票少人关注,属于冷门股。
  (2)换手率高一般意味着股票流通性好,进出市场比较容易,不会出现想买买不到、想卖卖不出的现象,具有较强的变现能力。然而值得注意的是,换手率较高的股票,往往也是短线资金追逐的对象,投机性较强,股价起伏较大,风险也相对较大。
  (3)将换手率与股价走势相结合,可以对未来的股价做出一定的预测和判断。某只股票的换手率突然上升,成交量放大,可能意味着有投资者在大量买进,股价可能会随之上扬。如果某只股票持续上涨了一个时期后,换手率又迅速上升,则可能意昧着一些获利者要套现,股价可能会下跌。
  一般而言,新兴市场的换手率要高于成熟市场的换手率。其根本原因在于新兴市场规模扩张快,新上市股票较多,再加上投资者投资理念不强,使新兴市场交投较活跃。换手率的高低还取决于以下几方面的因素:
  (l)交易方式。证券市场的交易方式,经历了口头唱报、上板竞价、微机撮合、大型电脑集中撮合等从人工到电脑的各个阶段。随着技术手段的日益进步、技术功能的日益强大,市场容量、交易潜力得到日益拓展,换手率也随之有较大提高。
  (2)交收期。一般而言,交收期越短,换手率越高。
  (3)投资者结构。以个人投资者为主体的证券市场,换手率往往较高;以基金等机构投资者为主体的证券市场,换手率相对较低。
  世界各国主要证券市场的换手率各不相同,相差甚远,相比之下,中国股市的换手率位于各国前列。

---------------------------
换手率的数值越大,不仅说明交投的活跃,还表明交易者之间换手的充分程度。换手率在市场中是很重要的买卖参考,应该说这远比技术指标和技术图形来得更加可靠,如果从造假成本的角度考虑,尽管交易印花税、交易佣金已大幅降低,但成交量越大所缴纳的费用就越高是不争的事实。如果在K线图上的技术指标、图形、成交量三个要素当中选择,主力肯定是最没有办法时才会用成交量来骗人。因而,研判成交量乃至换手率对于判断一只股票的未来发展是有很大帮助的。从中能区分出换手率高是因为主力要出货,还是主力准备拉抬是很重要的。
通过对深沪市场1000多只股票每日换手率的长期跟踪和观察,我们发现绝大多数股票的每日换手率在1%-25%之间(不包括上市前三日的上市新股),大量股票的日换手率集中在1%-20%之间,大约70%的股票的日换手率低于3%。也就是说,3%是一个重要的分界,3%以下的换手率非常普通,通常表明没有较大的实力资金在其中运作。当一只股票的换手率在3%-7%之间时,该股已进入相对活跃状态,应该引起我们的注意。7%-10%的日换手率在强势股中经常出现,属于股价走势的高度活跃状态,一般来说,这些股票正在或者已经广为市场关注。日换手率10%-15%的股票如果不是在上升的历史高价区或者见中长期顶的时段,则意味着强庄股的大举运作,若其后出现大幅的回调,在回调过程中满足日最小成交量或者成交量的1/3法则或1/10法则则可考虑适当介入,当一只股票出现超过15%的日换手率后,如果该股能够保持在当日密集成交区附近运行,则可能意味着该股后市具潜在的极大的上升能量,是超级强庄股的技术特征,因而后市有机会成为市场中的最大黑马!
一般什么情况下会出现高换手的局面?
一般来讲,换手率高的情况大致分为三种:相对高位成交量突然放大,主力派发的意愿是很明显的,然而,在高位放出量来也不是容易的事儿,一般伴随有一些利好出台时,才会放出成交量,主力才能顺利完成派发,这种例子是很多的。相反,象某些股票却是很会骗人的庄股,先急跌然后再强劲反弹,并且超过前期整理平台,引来跟风盘后再大举出货。对于这类个股规避风险的办法:就是回避高价股、回避前期曾大幅炒作过的股票。2、新股,这是一个特殊的群体,上市之初换手率高是很自然的事儿,一度也曾上演过新股不败的神话,然而,随着市场的变化,新股上市后高开低走成为现实。显然已得不出换手率高一定能上涨的结论。3、底部放量,价位不高的强势股,是我们讨论的重点,其换手率高的可信程度较高,表明新资金介入的迹象较为明显,未来的上涨空间相对较大,越是底部换手充分,上行中的抛压越轻。此外,目前市场的特点是局部反弹行情,换手率高有望成为强势股,强势股就代表了市场的热点。因而有必要对他们重点地关注。

股市开市时间

中国股市时间 每天9点15~9点25是集合竞价,9.30以后,就是连续竞价,这个时间段内你的委托,如果是股票到了这个价格,是瞬间成交的。上午9点30-11点30 下午13点-15点 周末休息
香港的交易时间是北京时间上午10:00-12:30,下午2:30-4:00 周末休息
纽约是美国东部时间上午9:30-下午4:00 由于美国从每年4月到11月初采用夏令时,这段时间其交易时间为北京时间晚9:30-次日凌晨4:00 而在11月初到4月初,采用冬令时,则交易时间为北京时间晚10:30-次日凌晨5:00 周末休息
日本股市 上午 8:00am 10:00am 下午 11:00am 2:30pm  周末休息

2008年1月15日星期二

C++ std::string --- 你可能不知道的一些用法

toupper, tolower


地球人都知道 C++ 的 string 没有 toupper ,好在这不是个大问题,因为我们有 STL 算法:



string s("heLLo");


transform(s.begin(), s.end(), s.begin(), toupper);


cout <<>

transform(s.begin(), s.end(), s.begin(), tolower);


cout <<>


当然,我知道很多人希望的是 s.to_upper() ,但是对于一个这么通用的 basic_string 来说,的确没办法把这些专有的方法放进来。如果你用 boost stringalgo ,那当然不在话下,你也就不需要读这篇文章了。



------------------------------------------------------------------------


trim


我们还知道 string 没有 trim ,不过自力更生也不困难,比 toupper 来的还要简单:



string s(" hello ");


s.erase(0, s.find_first_not_of(" \n"));


cout <<>

s.erase(s.find_last_not_of(' ') + 1);


cout <<>


注意由于 find_first_not_of 和 find_last_not_of 都可以接受字符串,这个时候它们寻找该字符串中所有字符的 absence ,所以你可以一次 trim 掉多种字符。



-----------------------------------------------------------------------


erase


string 本身的 erase 还是不错的,但是只能 erase 连续字符,如果要拿掉一个字符串里面所有的某个字符呢?用 STL 的 erase + remove_if 就可以了,注意光 remove_if 是不行的。



string s(" hello, world. say bye ");


s.erase(remove_if(s.begin(),s.end(),


bind2nd(equal_to(), ' ')),


s.end());



上面的这段会拿掉所有的空格,于是得到 hello,world.saybye。



-----------------------------------------------------------------------


replace


string 本身提供了 replace ,不过并不是面向字符串的,譬如我们最常用的把一个 substr 换成另一个 substr 的操作,就要做一点小组合:



string s("hello, world");


string sub("ello, ");


s.replace(s.find(sub), sub.size(), "appy ");


cout <<>


输出为 happy world。注意原来的那个 substr 和替换的 substr 并不一定要一样长。



-----------------------------------------------------------------------


startwith, endwith


这两个可真常用,不过如果你仔细看看 string 的接口,就会发现其实没必要专门提供这两个方法,已经有的接口可以干得很好:



string s("hello, world");


string head("hello");


string tail("ld");


bool startwith = s.compare(0, head.size(), head) == 0;


cout <<>

bool endwith = s.compare(s.size() - tail.size(), tail.size(), tail) == 0;


cout <<>


当然了,没有 s.startwith("hello") 这样方便。



------------------------------------------------------------------------


toint, todouble, tobool...


这也是老生常谈了,无论是 C 的方法还是 C++ 的方法都可以,各有特色:



string s("123");


int i = atoi(s.c_str());


cout <<>


int ii;


stringstream(s) >> ii;


cout <<>


string sd("12.3");


double d = atof(sd.c_str());


cout <<>


double dd;


stringstream(sd) >> dd;


cout <<>


string sb("true");


bool b;


stringstream(sb) >> boolalpha >> b;


cout <<>


C 的方法很简洁,而且赋值与转换在一句里面完成,而 C++ 的方法很通用。



------------------------------------------------------------------------


split


这可是件麻烦事,我们最希望的是这样一个接口: s.split(vect, ',') 。用 STL 算法来做有一定难度,我们可以从简单的开始,如果分隔符是空格、tab 和回车之类,那么这样就够了:



string s("hello world, bye.");


vector vect;


vect.assign(


istream_iterator(stringstream(s)),


istream_iterator()


);



不过要注意,如果 s 很大,那么会有效率上的隐忧,因为 stringstream 会 copy 一份 string 给自己用。



------------------------------------------------------------------------


concat


把一个装有 string 的容器里面所有的 string 连接起来,怎么做?希望你不要说是 hand code 循环,这样做不是更好?



vector vect;


vect.push_back("hello");


vect.push_back(", ");


vect.push_back("world");



cout <<>


不过在效率上比较有优化余地。



-------------------------------------------------------------------------



reverse


其实我比较怀疑有什么人需要真的去 reverse 一个 string ,不过做这件事情的确是很容易:



std::reverse(s.begin(), s.end());



上面是原地反转的方法,如果需要反转到别的 string 里面,一样简单:



s1.assign(s.rbegin(), s.rend());



效率也相当理想。



-------------------------------------------------------------------------



解析文件扩展名


字数多点的写法:



std::string filename("hello.exe");



std::string::size_type pos = filename.rfind('.');


std::string ext = filename.substr(pos == std::string::npos ? filename.length() : pos + 1);



不过两行,合并成一行呢?也不是不可以:



std::string ext = filename.substr(filename.rfind('.') == std::string::npos ? filename.length() : filename.rfind('.') + 1);



我知道,rfind 执行了两次。不过第一,你可以希望编译器把它优化掉,其次,扩展名一般都很短,即便多执行一次,区别应该是相当微小。

2008年1月14日星期一

字符集编码转换轻松实现

一、利用iconv函数族进行编码转换

在LINUX上进行编码转换时,既可以利用iconv函数族编程实现,也可以利用iconv命令来实现,只不过后者是针对文件的,即将指定文件从一种编码转换为另一种编码。

iconv函数族的头文件是iconv.h,使用前需包含之。

#include

iconv函数族有三个函数,原型如下:

(1) iconv_t iconv_open(const char *tocode, const char *fromcode);

此函数说明将要进行哪两种编码的转换,tocode是目标编码,fromcode是原编码,该函数返回一个转换句柄,供以下两个函数使用。

(2) size_t iconv(iconv_t cd,char **inbuf,size_t *inbytesleft,char **outbuf,size_t *outbytesleft);

此函数从inbuf中读取字符,转换后输出到outbuf中,inbytesleft用以记录还未转换的字符数,outbytesleft用以记录输出缓冲的剩余空间。

(3) int iconv_close(iconv_t cd);

此函数用于关闭转换句柄,释放资源。

二、利用iconv命令进行编码转换

在LINUX上进行编码转换时,既可以利用iconv函数族编程实现,也可以利用iconv命令来实现,只不过后者是针对文件的,即将指定文件从一种编码转换为另一种编码。

iconv命令用于转换指定文件的编码,默认输出到标准输出设备,亦可指定输出文件。

用法: iconv [选项...] [文件...]

有如下选项可用

输入/输出格式规范:

-f, --from-code=名称 原始文本编码

-t, --to-code=名称 输出编码

信息:

-l, --list 列举所有已知的字符集

输出控制:

-c 从输出中忽略无效的字符

-o, --output=FILE 输出文件

-s, --silent 关闭警告

--verbose 打印进度信息

-?, --help 给出该系统求助列表

--usage 给出简要的用法信息

-V, --version 打印程序版本号

例子:

iconv -f utf-8 -t gb2312 aaa.txt >bbb.txt

这个命令读取aaa.txt文件,从utf-8编码转换为gb2312编码,其输出定向到bbb.txt文件。

小结: LINUX为我们提供了强大的编码转换工具,给我们带来了方便。



2008年1月10日星期四

如何识别FireFox浏览器

if (window.navigator.userAgent.indexOf("Firefox")>=1){
//It is a firefox browser
......
}

雅虎统计——比较准确和及时

http://tongji.cn.yahoo.com/

关于 gOS

这个操作系统挺有意思,附带了很多google的应用。
而且可以用免费的VM Player跑。

2008年1月9日星期三

jQuery - Utilities实用工具 - trim去掉字符串前后的空格

http://blog.csdn.net/hu_zhenghui/archive/2007/10/28/1852113.aspx

2008年1月7日星期一

基于S3C2410的Linux全线移植文档

目录:
第一部分 前言
第二部分 系统启动bootloader的编写(ADS)
第三部分 GNU交叉工具链
第四部分 u-boot的移植
第五部分 linux 2.6内核的移植
第六部分 应用程序的移植
第七部分 Nand flash驱动的编写与移植

linux_mig_release.pdf

New Year New Start

As we head into the new year, I ask three things of you -- the same three things you can expect of me. First, focus your efforts. Ask yourself which activities have the highest, most positive impact on the business and prioritize accordingly. Second, move forward. Make decisions, have the courage to act with purpose and ethics, and be accountable for the results. Third, have confidence in yourself and others. We all need to know that we will reach our goals - both in terms of personal development and our collective business success.

C#获取程序当前路径的方法

//获取新的 Process 组件并将其与当前活动的进程关联的主模块的完整路径,包含文件名(进程名)。string str = System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName;result: X:\xxx\xxx\xxx.exe (.exe文件所在的目录+.exe文件名) //获取和设置当前目录(即该进程从中启动的目录)的完全限定路径。string str = System.Environment.CurrentDirectory;result: X:\xxx\xxx (.exe文件所在的目录)
//获取当前 Thread 的当前应用程序域的基目录,它由程序集冲突解决程序用来探测程序集。string str = System.AppDomain.CurrentDomain.BaseDirectory;result: X:\xxx\xxx\ (.exe文件所在的目录+"\")
//获取和设置包含该应用程序的目录的名称。string str = System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase;result: X:\xxx\xxx\ (.exe文件所在的目录+"\")
//获取启动了应用程序的可执行文件的路径,不包括可执行文件的名称。string str = System.Windows.Forms.Application.StartupPath;result: X:\xxx\xxx (.exe文件所在的目录)
//获取启动了应用程序的可执行文件的路径,包括可执行文件的名称。string str = System.Windows.Forms.Application.ExecutablePath;result: X:\xxx\xxx\xxx.exe (.exe文件所在的目录+.exe文件名)
//获取应用程序的当前工作目录(不可靠)。string str = System.IO.Directory.GetCurrentDirectory();result: X:\xxx\xxx (.exe文件所在的目录)

2008年1月6日星期日

Creating a shell extension with C#

http://www.kbcafe.com/juice/?guid=20041022155459

Visual C# 对话框全接触

在编程中经常使用到的对话框大致有六个,他们分别是:"选择文件对话框"、"保存文件对话框"、"颜色对话框"、"打印预览对话框"、"打印机选择对话框"和"字体选择对话框"。那么在C#是否也有相应的对话框?答案是存在的。那么在C#中如何使用?本文就来探讨一下这个问题。
一. 本文介绍的程序设计和运行的软件环境:
(1).微软公司视窗2000服务器版
(2)..Net FrameWork SDK Beta 2
二. 选择文件对话框:
在命名空间System.Windows.Froms中封装了一个类(Class)"OpenFileDialog",在C#中的选择文件对话框就是继承这个类。下列代码是创建一个此类的对象:
OpenFileDialog openFileDialog1 = new OpenFileDialog ( ) ;
(1).选择文件对话框一些常用的属性:
选择文件对话框的常用属性如下表:
属性名称
作用
InitialDirectory
设置在对话框中显示的初始化目录
Filter
设定对话框中过滤文件字符串
FilterIndex
设定显示的过滤字符串的索引
RestoreDirectory
布尔型,设定是否重新回到关闭此对话框时候的当前目录
FileName
设定在对话框中选择的文件名称
ShowHelp
设定在对话框中是否显示"帮助"按钮
Title
设定对话框的标题
(2).创建一个功能相对完整的选择文件对话框的对象:
//定义一个"打开文件对话框"OpenFileDialog openFileDialog1 = new OpenFileDialog ( ) ; //定义此对话框的初始化目录 openFileDialog1.InitialDirectory = "c:\\" ; //定义此对话框文件过滤类型 openFileDialog1.Filter= "txt files(*.txt)*.txtAll files (*.*)*.*" ; //此对话框缺省过滤类型为第二个 openFileDialog1.FilterIndex = 2 ; openFileDialog1.RestoreDirectory = true ; if ( openFileDialog1.ShowDialog ( ) == DialogResult.OK ) { fName = openFileDialog1.FileName ; showInfo ( ) ; sr = new StreamReader ( fName ) ; }
此代码编译后的运行的界面如下:
图01:C#创建一个选择文件对话框对象
三. 选择字体对话框:
在命名空间System.Windows.Froms中封装了一个类(Class)"FontDialog",在C#中的通过继承此类得到字体对话框的。下列代码是创建一个此类的对象:
FontDialog fontDialog1 = new FontDialog ( ) ;
(1).字体对话框的一些常用的属性:
属性名称
作用
ShowColor
是否在对话框中显示"颜色"选项
AllowScriptChange
是否允许使用者更改"字符集"选择
Font
选择后的字体
(2).创建一个功能相对完整的字体对话框的对象:
FontDialog fontDialog1 = new FontDialog ( ) ; fontDialog1.ShowColor = true ; fontDialog1.AllowScriptChange = false ; if ( fontDialog1.ShowDialog ( ) != DialogResult.Cancel ) { fnt = fontDialog1.Font ; showInfo ( ) ; }
编译后的运行界面如下:
图02:C#创建一个字体对话框对象
四.颜色选择对话框:
在C#中创建一个颜色对话框是通过继承命名空间System.Windows.Froms中类(Class)"ColorDialog"来实现的。下列代码是创建一个此类的对象:
ColorDialog ColorDialog1 = new ColorDialog ( ) ;
(1). 颜色选择对话框一些常用的属性:
颜色选择对话框的常用属性如下表:
属性名称
作用
AllowFullOpen
设定用户是否可以使用自定义颜色
ShowHelp
设定在对话框中是否显示"帮助"按钮
Color
颜色对话框选择的颜色
(2).创建一个功能相对完整的颜色选择对话框的对象:
ColorDialog ColorDialog1 = new ColorDialog ( ) ; ColorDialog1.AllowFullOpen = true ; ColorDialog1.FullOpen = true ; //设定此颜色对话框存在"帮助"按钮,缺省是没有的 ColorDialog1.ShowHelp = true ; // 设定此颜色对话框的初始颜色,所以如果在对话框中选择"取消",则此对话框会重新此颜色 ColorDialog1.Color = Color.DarkBlue ; if ( ColorDialog1.ShowDialog ( ) != DialogResult.Cancel ) { clr = ColorDialog1.Color ; showInfo ( ) ; }
此代码编译后的运行的界面如下:
图03:C#创建一个颜色对话框对象
五.保存文件对话框:
在C#中创建一个保存文件对话框是通过继承命名空间System.Windows.Froms中类(Class)"SaveFileDialog"来实现的。下列代码是创建一个此类的对象:
SaveFileDialog saveFileDialog1 = new SaveFileDialog ( ) ;
(1). 保存文件对话框一些常用的属性:
保存文件对话框的常用属性如下表:
属性名称
作用
InitialDirectory
设置在对话框中显示的初始化目录
Filter
设定对话框中过滤文件字符串
FilterIndex
设定显示的过滤字符串的索引
RestoreDirectory
布尔型,设定是否重新回到关闭此对话框时候的当前目录
FileName
设定在对话框中选择的文件名称
ShowHelp
设定在对话框中是否显示"帮助"按钮
Title
设定对话框的标题
(2).创建一个功能相对完整的保存文件对话框的对象:
Stream myStream ; SaveFileDialog saveFileDialog1 = new SaveFileDialog ( ) ; saveFileDialog1.Filter= " txt files(*.txt)*.txtAll files(*.*)*.*" ; saveFileDialog1.FilterIndex = 2 ; saveFileDialog1.RestoreDirectory = true ; if ( saveFileDialog1.ShowDialog ( ) == DialogResult.OK ) { if ( ( myStream = saveFileDialog1.OpenFile ( ) ) != null ) { //设定"sr"对象的指针指向读取文件流的开始位置 sr.BaseStream.Seek ( 0 , SeekOrigin.Begin ) ; int i ; //判断"sr"中的指针是否指向文件流的结尾位置 while ( ( i = sr.BaseStream.ReadByte ( ) ) != -1 ) { //不断的往文件中写入字节 myStream.WriteByte ( ( byte ) i ) ; } myStream.Close ( ) ; sr.BaseStream.Seek ( 0 , SeekOrigin.Begin ) ; } }
此代码编译后的运行的界面如下:
图04:C#创建一个保存文件对话框对象
六.设置打印机对话框:
在C#中创建一个设置打印机对话框是通过继承命名空间System.Windows.Froms中类(Class)"PrintDialog"来实现的。下列代码是创建一个此类的对象:
PrintDialog PrintDialog1 = new PrintDialog ( ) ;
(1). 设置打印机对话框一些常用的属性:
设置打印机对话框的常用属性如下表:
属性名称
作用
AllowSelection
设定是否显示"从…到…页"这个打印选项
AllowPrintToFile
设定在对话框中"打印到文件"选项是否激活
Document
设定要打印的文档
PrintToFile
设定是否选中"打印到文件"选项
ShowNetwork
设定在对话框是否显示"网络"这个按钮
ShowHelp
设定在对话框中是否显示"帮助"按钮
(2).创建一个功能相对完整的设置打印机对话框的对象:
//创建一个设置打印机对话框对象PrintDialog PrintDialog1 = new PrintDialog ( ) ; //首先要新建一个打印文档, pd = new PrintDocument ( ) ; PrintDialog1.ShowNetwork=false; PrintDialog1.PrintToFile = false ; PrintDialog1.Document = pd ; if ( PrintDialog1.ShowDialog ( ) != DialogResult.Cancel ) { try { pd.Print ( ) ; } catch ( Exception ex ) { MessageBox.Show ( ex.Message ) ; } }
此代码编译后的运行的界面如下:
图05:C#创建一个设置打印机对话框对象
七:打印预览对话框:
在C#中创建一个打印预览对话框是通过继承命名空间System.Windows.Froms中类(Class)"PrintPreviewDialog"来实现的。下列代码是创建一个此类的对象:
PrintPreviewDialog printPreviewDialog1 = new PrintPreviewDialog ( ) ;
(1). 打印预览对话框一些常用的属性:
设置打印机对话框的常用属性如下表:
属性名称
作用
FormBorderStyle
设定边距类型
Document
设定要打印的文档
(2).创建一个可以打印一个空文档的打印预览对话框:
//创建一个打印文档pd = new PrintDocument ( ) ;//创建一个打印预览对话框对象PrintPreviewDialog printPreviewDialog1 = new PrintPreviewDialog ( ) ;printPreviewDialog1.Document = this.pd ;printPreviewDialog1.FormBorderStyle = FormBorderStyle.Fixed3D ;printPreviewDialog1.ShowDialog ( ) ;
此代码编译后的运行的界面如下:
图06:C#创建一个打印空文档的打印预览对话框对象
八.用C#例子编写一个综合六个对话框的例子(dialog.cs):
下图是dialog.cs编译后运行的界面:
图07:用C#编写的组合六个对话框程序的运行界面
dialog.cs的源代码如下:
using System ; using System.IO ; using System.Text ; using System.Drawing ; using System.Drawing.Printing ; using System.Collections ; using System.ComponentModel ; using System.Windows.Forms ; using System.Data ; public class Form1 : Form { private Button btnOpenFileDialog ; private Button btnSaveFileDialog ; private Button btnColorDialog ; private Button btnFontDialog ; private Button btnPrintDialog ; private Label lblOutputData ; private Label lblCaption ; private Font fnt ; private Color clr ; private string fName ; private StreamReader sr ; private PrintDocument pd ; private Button btnPrintPreview ; private System.ComponentModel.Container components = null ; public Form1 ( ) { //初始化窗体中的各个组件 InitializeComponent ( ) ; } //清除程序中使用过的资源 protected override void Dispose ( bool disposing ) { if ( disposing ) { if ( components != null ) { components.Dispose ( ) ; } } base.Dispose ( disposing ) ; } private void InitializeComponent ( ) { btnColorDialog = new Button ( ) ; btnFontDialog = new Button ( ) ; lblCaption = new Label ( ) ; btnOpenFileDialog = new Button ( ) ; btnSaveFileDialog = new Button ( ) ; btnPrintPreview = new Button ( ) ; btnPrintDialog = new Button ( ) ; lblOutputData = new Label ( ) ; SuspendLayout ( ) ; btnColorDialog.Location = new Point ( 20 , 102 ) ; btnColorDialog.Name = "btnColorDialog" ; btnColorDialog.Size = new Size ( 140 , 28 ) ; btnColorDialog.TabIndex = 2 ; btnColorDialog.Text = "颜色对话框" ; btnColorDialog.Click += new System.EventHandler ( btnColorDialog_Click ) ; btnFontDialog.Location = new Point ( 20 , 65 ) ; btnFontDialog.Name = "btnFontDialog" ; btnFontDialog.Size = new Size ( 140 , 28 ) ; btnFontDialog.TabIndex = 1 ; btnFontDialog.Text = "字体对话框" ; btnFontDialog.Click += new System.EventHandler ( btnFontDialog_Click ) ; lblCaption.Font = new System.Drawing.Font ("宋体" , 10.5F , System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ( ( System.Byte ) ( 134 ) ) ) ; lblCaption.Location = new Point ( 184 , 8 ) ; lblCaption.Name = "lblCaption" ; lblCaption.Size = new Size ( 246 , 19 ) ; lblCaption.TabIndex = 2 ; lblCaption.Text = "选择对话框后的输出结果:" ; btnOpenFileDialog.Location = new Point ( 20 , 28 ) ; btnOpenFileDialog.Name = "btnOpenFileDialog" ; btnOpenFileDialog.Size = new Size ( 140 , 28 ) ; btnOpenFileDialog.TabIndex = 0 ; btnOpenFileDialog.Text = "打开文件对话框" ; btnOpenFileDialog.Click += new System.EventHandler ( btnOpenFileDialog_Click ) ; btnSaveFileDialog.Location = new Point ( 20 , 213 ) ; btnSaveFileDialog.Name = "btnSaveFileDialog" ; btnSaveFileDialog.Size = new Size ( 140 , 28 ) ; btnSaveFileDialog.TabIndex = 5 ; btnSaveFileDialog.Text = "保存文件对话框" ; btnSaveFileDialog.Click += new System.EventHandler ( btnSaveFileDialog_Click ) ; btnPrintPreview.Location = new Point ( 20 , 139 ) ; btnPrintPreview.Name = "btnPrintPreview" ; btnPrintPreview.Size = new Size ( 140 , 28 ) ; btnPrintPreview.TabIndex = 3 ; btnPrintPreview.Text = "打印预览对话框" ; btnPrintPreview.Click += new System.EventHandler ( btnPrintPreview_Click ) ; btnPrintDialog.Location = new Point ( 20 , 176 ) ; btnPrintDialog.Name = "btnPrintDialog" ; btnPrintDialog.Size = new Size ( 140 , 28 ) ; btnPrintDialog.TabIndex = 4 ; btnPrintDialog.Text = "打印对话框" ; btnPrintDialog.Click += new System.EventHandler ( btnPrintDialog_Click ) ; lblOutputData.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D ; lblOutputData.Location = new Point ( 176 , 28 ) ; lblOutputData.Name = "lblOutputData" ; lblOutputData.Size = new Size ( 280 , 213 ) ; lblOutputData.TabIndex = 1 ; this.AutoScaleBaseSize = new Size ( 6 , 14 ) ; this.ClientSize = new Size ( 456 , 264 ) ; this.Controls.Add ( lblCaption ) ; this.Controls.Add ( btnPrintPreview ) ; this.Controls.Add ( lblOutputData ) ; this.Controls.Add ( btnSaveFileDialog ) ; this.Controls.Add ( btnOpenFileDialog ) ; this.Controls.Add ( btnColorDialog ) ; this.Controls.Add ( btnFontDialog ) ; this.Controls.Add ( btnPrintDialog ) ; this.MaximizeBox = false ; this.MinimizeBox = false ; this.Name = "Form1" ; this.Text = "全面掌握C#中的对话框组件!" ; this.ResumeLayout ( false ) ; } static void Main ( ) { Application.Run ( new Form1 ( ) ) ; } private void btnOpenFileDialog_Click ( object sender , System.EventArgs e ) { //定义一个"打开文件对话框" OpenFileDialog openFileDialog1 = new OpenFileDialog ( ) ; //定义此对话框的初始化目录 openFileDialog1.InitialDirectory = "c:\\" ; //定义此对话框文件过滤类型 openFileDialog1.Filter= "txt files(*.txt)*.txtAll files (*.*)*.*" ; //此对话框缺省过滤类型为第二个 openFileDialog1.FilterIndex = 2 ; openFileDialog1.RestoreDirectory = true ; if ( openFileDialog1.ShowDialog ( ) == DialogResult.OK ) { fName = openFileDialog1.FileName ; showInfo ( ) ; sr = new StreamReader ( fName ) ; } } //另存文件对话框 private void btnSaveFileDialog_Click ( object sender , System.EventArgs e ) { Stream myStream ; SaveFileDialog saveFileDialog1 = new SaveFileDialog ( ) ; saveFileDialog1.Filter= " txt files(*.txt)*.txtAll files(*.*)*.*" ; saveFileDialog1.FilterIndex = 2 ; saveFileDialog1.RestoreDirectory = true ; if ( saveFileDialog1.ShowDialog ( ) == DialogResult.OK ) { if ( ( myStream = saveFileDialog1.OpenFile ( ) ) != null ) { //设定"sr"对象的指针指向读取文件流的开始位置 sr.BaseStream.Seek ( 0 , SeekOrigin.Begin ) ; int i ; //判断"sr"中的指针是否指向文件流的结尾位置 while ( ( i = sr.BaseStream.ReadByte ( ) ) != -1 ) { //不断的往文件中写入字节 myStream.WriteByte ( ( byte ) i ) ; } myStream.Close ( ) ; sr.BaseStream.Seek ( 0 , SeekOrigin.Begin ) ; } } } //颜色选择对话框 private void btnColorDialog_Click ( object sender , System.EventArgs e ) { ColorDialog ColorDialog1 = new ColorDialog ( ) ; ColorDialog1.AllowFullOpen = true ; ColorDialog1.FullOpen = true ; //设定此颜色对话框存在"帮助"按钮,缺省是没有的 ColorDialog1.ShowHelp = true ; // 设定此颜色对话框的初始颜色,所以如果在对话框中选择"取消",则此对话框会重新此颜色 ColorDialog1.Color = Color.DarkBlue ; if ( ColorDialog1.ShowDialog ( ) != DialogResult.Cancel ) { clr = ColorDialog1.Color ; showInfo ( ) ; } } //打开字体对话框 private void btnFontDialog_Click ( object sender , System.EventArgs e ) { FontDialog fontDialog1 = new FontDialog ( ) ; fontDialog1.ShowColor = true ; fontDialog1.AllowScriptChange = true ; fontDialog1.ShowColor = false ; if ( fontDialog1.ShowDialog ( ) != DialogResult.Cancel ) { fnt = fontDialog1.Font ; showInfo ( ) ; } } //打印机对话框 private void btnPrintDialog_Click ( object sender , System.EventArgs e ) { PrintDialog PrintDialog1 = new PrintDialog ( ) ; pd = new PrintDocument ( ) ; PrintDialog1.PrintToFile = false ; PrintDialog1.Document = pd ; if ( PrintDialog1.ShowDialog ( ) != DialogResult.Cancel ) { try { pd.Print ( ) ; } catch ( Exception ex ) { MessageBox.Show ( ex.Message ) ; } } } //打印预览对话框 private void btnPrintPreview_Click ( object sender , System.EventArgs e ) { //创建一个新的文档 pd = new PrintDocument ( ) ; //创建一个打印预览对话框 PrintPreviewDialog printPreviewDialog1 = new PrintPreviewDialog ( ) ; printPreviewDialog1.Document = this.pd ; printPreviewDialog1.FormBorderStyle = FormBorderStyle.Fixed3D ; printPreviewDialog1.ShowDialog ( ) ; } //显示各个对话框选择后的信息 private void showInfo ( ) { lblOutputData.Text = "选择文件: " + fName.ToString ( ) + "\n\r\n\r" ; lblOutputData.Text = lblOutputData.Text + "选择颜色: " + clr.ToString ( ) + "\n\r\n\r" ; lblOutputData.Text = lblOutputData.Text + "选择字体:" + fnt + "\n\r\n\r" ; } }
九.总结:
对话框是编程过程中经常使用到的组件,希望上面的介绍对您在程序设计中使用这些对话框有所帮助。

Windows下GTK2.0编程

  1. http://www.gimp.org/~tml/gimp/win32/ GTK+ for Windows GIMP图像处理软件,和photoshop类似
  2. With gcc -mms-bitfields flag , use Cygwin's gcc use the -mno-cygwin flag

如果英文还可以的,到GTK的老巢看看说明就行了。

好,和我差不多的看官,下面开始介绍,以2.1x为例,其他的版本请自行到GTK的老巢翻找

总共需要:gtk以及其支持库,unixutils(make程序),gcc for windows(MinGW),后面两个不介绍了,自己找资料,下载后记得加入系统的PATH变量里

0. 打开gtk的下载页面:http://www.gtk.org/download/

1. hoho,有3个ftp链接,分别是:GTK+ SourceGLib SourcePango Source

2. 首先用ftp工具(没有的话下载一个filezilla看看)匿名登录GTK+ Source所在的那个ftp地址:ftp://ftp.gtk.org/pub/gtk/v2.10/ (限制连接数,请勿用ie打开)

3. 因为是windows系统,windows现在的主流还是win32,进入win32目录

4. 对,你看到了一堆的东西,包括cario / cairo-dev / gtk+ / gtk+-dev,各找个最新的下载下来

5. 然后,进入dependencies目录,霍霍,这里更多

6. 别客气,里面的atk / atk-dev / gettext / gettext-dev / libiconv / libjpeg / libpng / libtiff / libxml2 / pkg-config / zlib123-dll,捡最新的都下载下来吧

7. 好了,现在重复2-6,下载Pango和GLib所在的ftp目录下的win32及win32\depenencies目录下的东东,记住三个关键字:win32, dependencies, 还有“最新”的, “-dev” 也不放过

8. 好了好了,真的好了,把这些下载的文件全部解压到一个目录下,比如d:\system\gtkplus目录

9. 还差一点点就可以开始了,别忘了我们最终编写的程序还要有运行时支持,就像MFC也有mfcxxx.dll一样,gtk+需要GTK+运行库的支持,懒一点儿的下载这个(如果还有效的话),想稳定的到这里去找找下载吧:http://sourceforge.net/projects/gimp-win/,嫌太慢的话就搜搜google

10. 好,下载并安装完gtk+runtime(我用的是gtk+-2.10.13-setup.exe)以后,开始编写Hello world

————————编写Hello World健体强国,Oh Yeah! 分割线————————

1. 首先写个hello.c,里面的内容是

下载: hello.c
#include <gtk/gtk.h>
static gboolean delete_event( GtkWidget *widget, GdkEvent *event, gpointer data )
{
g_print ("delete event occurred\n");
return FALSE;
}
static void destroy( GtkWidget *widget, gpointer data )
{
gtk_main_quit ();
}
int main( int argc, char *argv[] )
{
GtkWidget *window;
GtkWidget *label;
gtk_init (&argc, &argv);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
g_signal_connect (G_OBJECT (window), "delete_event", G_CALLBACK (delete_event), NULL);
g_signal_connect (G_OBJECT (window), "destroy", G_CALLBACK (destroy), NULL);
label = gtk_label_new ("Hello GTK");
gtk_container_add (GTK_CONTAINER (window), label);
gtk_container_set_border_width (GTK_CONTAINER (window), 10);
gtk_widget_show (label);
gtk_widget_show (window);
gtk_main ();
return 0;
}

(为了缩短篇幅删去了所有注释和空行,完整版本参见后面参考资料里面的内容)

2. 好的,为了简单起见,不依赖任何开发环境,咱来写个makefile

gtk_include=-IE:/system/gtkplus/include -IE:/system/gtkplus/lib/gtk-2.0/include -IE:/system/gtkplus/include/gtk-2.0 -IE:/system/gtkplus/include/atk-1.0 -IE:/system/gtkplus/include/pango-1.0 -IE:/system/gtkplus/include/glib-2.0 -IE:/system/gtkplus/include/cairo -IE:/system/gtkplus/lib/glib-2.0/include

gtk_lib=-LE:/system/gtkplus/lib -lcairo -lintl -lgettextpo -lglib-2.0 -lgmodule-2.0 -lgobject-2.0 -lgthread-2.0 -lgdk_pixbuf-2.0 -lgdk-win32-2.0 -lgtk-win32-2.0 -lcharset -liconv -lpango-1.0 -lpangoft2-1.0 -lpangowin32-1.0 -lpangocairo-1.0 -lzdll -latk-1.0

#target_dir=Debug

main: hello.c
gcc -mms-bitfields -Wall -g hello.c -o hello \
${gtk_include} ${gtk_lib}

all:
${MAKE} main

注意事项:
a). 这里我的目录是e:\system\gtkplus,你解压的目录可能不一样
b). “gtk_lib=” 后面的”L”后跟的是gtk lib根目录,然后后面的小写的’l'对应该根目录下面所有的.lib文件,一一排好队,中间空格隔开
c). “gtk_include=” 后面的是所有包含.h文件的文件夹,前面加个”-I”,也来排好队,中间空格隔开
d). 注意makefile要用tab不要用空格
很繁琐吧,试试这个:windows下编译gtk文件的简单方法

3. 好啦,都有了,把hello.c和makefile放在同一个目录下,打开一个命令行进入该目录,敲入”make”,回车(没有make程序?到前头翻翻是否下载了unixutils和gcc for windows)

结果出来了,运行了hello.exe会看到这个界面:
Hello GTK

恭喜,你成功了?什么?还没搞定,rp太差了吧~~~~ :D


参考资料:
1、GTK+ 开发简介
2、在Windows 下以GTK+ 撰写视窗程式安装GTK+


任务列表

  1. 电子商务网站 + 论坛 + 博客
  2. 学习filezilla -- 已经搭建好编译环境
  3. 炒股(换手率高,市盈率低),学习中,中国银行被套
  4. 每日一句英语,放到体验网首页。每次随机提示。允许点击更多,查看所有的英语和翻译。
  5. 天气数据库
  6. 健康数据库,文档已经完成,编程进行中
  7. MP3数据库
  8. 免费的留言板
  9. XML to Excel,http://poi.apache.org/hssf/quick-guide.html
  10. 下载杜曼 http://www.jysls.com/thread-172458-1-1.html -- 已经安装完 amule,尚未开始下载,amule的配置问题已经解决,正在下载过程中。
  11. 下载经营类游戏,尚未开始http://www.mx3x.com/bbs/showthread.php?s=b12b2d60f05ac932b95d337123ac53e7&t=17638
  12. 独立的页尾 -- 已经完成
  13. Javascript 万年历,希望能同时支持Firefox和IE -- 已经完成
  14. yum update -- 已经完成
  15. 增加Yahoo统计,http://tongji.zhan.yahoo.cn -- 已经完成
  16. wscrypt: csharp + bcript的窗口版 -- 已经完成
  17. IP数据库
  18. jquery字典 -- 已经完成
    • jquery ok
    • 字典数据 ok
    • 音标字体 ok

杜曼5本书台湾译本清晰扫描件及配套教学光盘verycd下载链接

杜曼书籍配套光盘链接

下面是eMule专用的下载链接,您必须安装eMule才能点击下载
如何让你的宝宝身强体健1.avi ed2k://|file|%E5%A6%82%E4%BD%95%E8%AE%A9%E4%BD%A0%E7%9A%84%E5%AE%9D%E5%AE%9D%E8%BA%AB%E5%BC%BA%E4%BD%93%E5%81%A51.avi|105747456|CDDE5B698EA56A4081AE35F54632D619|h=RYLYQ5ICCD5HYMH35KAUDMCATQ55LSSU|/
如何让你的宝宝身强体健2.avi
ed2k://|file|%E5%A6%82%E4%BD%95%E8%AE%A9%E4%BD%A0%E7%9A%84%E5%AE%9D%E5%AE%9D%E8%BA%AB%E5%BC%BA%E4%BD%93%E5%81%A52.avi|78383104|29B0F262E3FAE343E74AAFAB3D24BF3D|h=WO5SHKFXEJAG7GGTVSUKQQORDLZ5CG5A|/
如何教你的宝宝阅读.avi
ed2k://|file|%E5%A6%82%E4%BD%95%E6%95%99%E4%BD%A0%E7%9A%84%E5%AE%9D%E5%AE%9D%E9%98%85%E8%AF%BB.avi|170918400|C1EC84CE7877154524EEB2A69B9FDBBD|h=LLOKLX55KTJO2C5LSCERDWOCLGWXH43L|/
如何教你的宝宝数学.avi
ed2k://|file|%E5%A6%82%E4%BD%95%E6%95%99%E4%BD%A0%E7%9A%84%E5%AE%9D%E5%AE%9D%E6%95%B0%E5%AD%A6.avi|104864768|1E31429BB4BD5F3E5720F7324EA8342A|h=QLQAECUQOUWFBE6UJYUSQ74M2WTBWAIS|/
如何教你的宝宝百科知识.avi
ed2k://|file|%E5%A6%82%E4%BD%95%E6%95%99%E4%BD%A0%E7%9A%84%E5%AE%9D%E5%AE%9D%E7%99%BE%E7%A7%91%E7%9F%A5%E8%AF%86.avi|138941952|90248A2080ADB41D7BE3109C67C8C787|h=3QNY4FDKGBFD6MQ7C7E75OLCQK66EURR|/


安装amule

  1. yum install amule
  2. 添加server.met
  3. 打开防火墙的4662端口,运行setup,防火墙配置,开一个other端口4661:tcp

yum install amule 进行安装。启动发现没有服务器列表。

下载服务器列表,下载aMule-server.met-txt

mv aMule-server.met-txt ~/.Amule/server.met

ID最好设置为:[CHN][VeryCD]XXXX

另:记住几个常用的服务器,新装aMule的时候将他们添加进去,aMule会自动搜索其他的服务器。

最常用的aMule服务器列表:

华语p2p:61.152.93.254:4661

Razorback 2:195.245.244.243:4661

安装完成后但不能登录AMULE的服务器 。所以一下方法是如何登录到服务器
方法之一:

在“选项”—“服务器”里面,然后点击第3项后面的“列表”,会打开写字板,把以下的每日更新的服务器列表拷贝到里面:
http://www.srv1000.com/x1/server.met
http://emule.945.cn/server.met
http://www.edk-files.com/x1/server.met

方法之二:

推荐一个每天都更新的世界服务器列表的网站:

http://ed2k.2x4u.de/list.html

网页左下方有个 Home (server.met) 文件,点击进入另外一个网页,出现下面的内容:

connect list: server.met (add to eMule) 2.9kB (25 servers)
best servers: server.met (add to eMule) 6.7kB (63 servers)
all servers: server.met (add to eMule) 9.9kB (94 servers)

选择最下面的一个,点击(add to eMule)就可以把所有的服务器自动添加到eMule当中。

补充说明:何时应该更新服务器列表,更新之后有什么好处吗!?

如 果你的连接没有什么问题,下载都一切正常的话没就有必要经常更新服务器列表。如果哪天连接服务器总是失败或超时的话,可以试着更新一下服务器列表。或许会 有帮助。一般来说,其实只要你选中“选项”—“连接”里面的“连接到服务器时自动更新服务器列表”和“连接到其他客户时更新服务器列表”这两项的话。你的 服务器列表一般都可以保证没有问题。



配置:
下载服务器列表
http://my.opera.com/youknowwho/homes/misc/server.met

kad 更新地址用这个
http://www.emule-inside.net/nodes.dat
http://renololo1.free.fr/e/nodes.dat

ID最好设置为:[CHN][VeryCD]XXXX
比如:[CHN][VeryCD]benben

路由器映射端口:4662 4672 4665


2008年1月5日星期六

6 个月宝宝老抓耳朵和眼睛是怎么回事?

我的宝宝有6个月了,最近不知怎么回事老是抓自已的耳朵和眼睛,耳朵根都被他给抓破了,感觉他好象是很痒,有时抓的时候会使很大的劲,都能把手指伸到眼睛里去抓,好几个晚上都睡不好,弄得我们也非常的累,这不到现在又1有个小时了还不睡,我该怎么办?有在线的帮个忙,要快啊!他前几天腹泻用过氨苄西林。问题补充:谢谢各位,昨晚太急了也没顾上说宝宝以前也一直有湿疹,给用的肤乐霜和尤卓乐,在4 个月时就好的差不多了。我今天带宝宝去医院看了大夫,大夫也说不是过敏就是湿疹引起的,说是过敏引起的再过几天就会自然好了,我还想问问朋友们,如果今天晚上宝宝还是闹我可不可以给他用些扑尔敏???宝宝太可怜了,谢谢大家了



湿疹的缘故。因为湿疹的症状就是刺痒,宝宝对手的支配不是很协调,所以对痒的地方抓的并不是很准。我的宝宝湿疹稍厉害的时候也是这样。最好别吃扑尔敏, 我的宝宝用的尤卓尔效果挺好,它可以再脸上用。现在虽然是冬季但也别让她热着,宝宝的内火比较大如果再热着会更厉害的,宝宝皮肤比较敏感,最好不穿毛衣(尤其是抱孩子的人)注意让孩子的皮肤保持清洁,干燥,别让她搓脸,家长多费心一点,多注意一点。就可以控制住,不过湿疹很容易反复。或者用郁美净(最便宜的一种)晚上洗脸后擦也管用 祝宝宝健康!!!

2008年1月4日星期五

《FIFA足球》详细解析(含说明书全部翻译)

球员资料的2D头像很逼真,3D头像来说,有名的球员都能一眼看出(比如阿森纳所有主力),可是缺乏皮肤的质感。视角来说,有TV,ACTION,END TO END ,SIDELINE,BROADCAST五种可选,每种都有HEIGHT(视角高度),ZOOM(放大)10级可调。个人最喜欢BROADCAST视角,HEIGHT,ZOOM最大,因为最接近英超视角。难度四级可调,业余,准专业,职业,世界级。游戏的速度很好,业余很慢,后三个级别都很正常,世界级很快。另外,高级球队的对决速度更快。游戏的死球有停顿,读取动画信息,进球没有停顿,很体贴的设计。进球没停顿,就可以忽略停顿了。游戏的帧率有点低,不过基本不影响正常游戏,足球游戏象赛车一样高帧率也没有必要球员资料很多,很全,很真实。球队类型,进攻风格,防守风格,角球,任意球战术很多可选。赢球可以挣钱,有钱了,买阿森纳黄蓝色的客队球衣,买海布里夜晚球场,买几首歌曲,不错,^_^(球场细节做的很逼真,好喜欢小小的海布里),买球有什么用处呀?操作手感不错,不能和WE8比,不过是典型的FIFA风格,也很舒服。(见以下说明书翻译)联机方面只能一对一,能够记录胜负场次和最近游戏时间,对网络速度要求很高,150MS很卡(香港玩家),100MS以下(国内玩家)就很流畅了。FIFA PSP也许不能算很好的游戏,可是对得起FIFA的招牌,是足球迷不能错过的一款游戏。---------------------------------------------------以下是翻译说明书内容(有错误大家指出):【基本操作】:摇杆:移动R:加速SELECT:FLASHBACK(就是比赛中途可以存盘,下次进入自动LOAD并删除存盘文件)START:暂停【进攻操作】X:短传O:射门口:长传、横传(下底传中)三角:直传(自动)L:呼喊队员(让队友跑位)L+X:手动传球(短传,直传,玩家精确控制方向)L+O:挑球射门L+口:EARLY CROSS(怎么翻译?和长传有什么区别?GF翻译为“传早了”,晕)L+三角:高球直传注释:1。射门,长传,手动传球有进度条,越长传球的速度和距离越远。射门的时候,进度条到红色区域,就会射偏。方向为射门键释放时候的摇杆方向(球员第一人称)2。自动直传,高球直传,短传,长传会自动按照摇杆的方向修正到队友(队友跑动)的方向;手动传球方向只是摇杆方向,玩家可以精确控制3。一脚出球(传球,射门):在球到队员脚下之前,按相应的键。这样,球员接球后,会立刻动作4。带球时,速度越快,对于球的控制越差。最高速带球时,传球,射门动作速度和准确性都会降低。【防守操作】:X:切换队员O:抢截(说明书说“按住”,我发现快点效果更好)口:铲球三角:守门员出击L:找队友协防注释:协防:对于防守来说,距离球最近的队员,不一定是最适合抢截的队员。在面对一个带球对手的时候,很多时候更有效的方式是,挡住他的射门线路,同时找队友协防来抢截球。【守门员持球操作】摇杆:移动,方向X:手抛球(快攻)口,O:大脚开球三角:放下球(然后可以自己带,传,开大脚)【直接任意球操作】(亨利,贝克汉姆低级别比较容易进球,世界级太快,不好进球)1。摇杆移动球门内的标志,表示球预计位置2。方向键移动球上的旋转标志(见下)3。按口(或者X,O)开始进度条,再按停止进度条(表示球的力量,到红色区球会射偏),第三次按键表示射门准确性,要停在准确区域注释:球的旋转:踢球的一边,球就会向相反方向旋转。触球点越靠近球的边缘,球旋转的效果越好【前场间接任意球操作】摇杆:选择战术X:确定战术O,口,三角:选择接应队员方向键:角球时争夺落点【后场间接任意球操作】摇杆:方向O,口:长传(有进度条)X:短传【手抛球操作】摇杆:移动接球队员X:改变接球队员三角:抛向接球队员跑动方向口:直接抛向接球队员【点球操作】:摇杆:方向O:射门(有进度条)【人墙操作】摇杆:移动人墙口,O,三角:人墙跳起X:切换队员【扑点球操作】摇杆:方向【队员头顶标志】小下三角,球员控制球;大下三角,球员没有控制球;侧大三角:球员在屏幕外。【小技巧】1。FIRST TOUCH(下面详细解释)2。三角(进攻时):直传3。L:让队友跑位4。三角(防守时):守门员出击5。一脚触球:接球前按键以上就是说明书的全部内容,说明书真的太薄了---------------------------------------------------另外,关于方向键,有两个重要问题要说明:【FIRST TOUCH CONTROL】FIFA包装上特性里面第一条就是,注释为“这是高级控制球的技巧”,是FIFA的招牌之一FIRST TOUCH CONTROL,直接翻译就是“第一脚触球控制”,汉语足球术语是“接球转身”,这是现代足球经常用的技巧之一(英超中非常常见,也是我踢球苦练的技巧之一)。一般停球只是将球停在自己脚下,“接球转身”是停球时控制脚的角度和力量,把球停在身体稍远位置,同时身体顺势移动。需要观察场上局势和对手跑位,同时按照自己下一步的意图(转身,摆脱,过人,射门......)来发挥。FIFA 游戏里面,就是在上一个球员出球后,下一个球员接球前,按方向键,这样球员停球的同时就向相应的方向转身。用处有两个:1。停球立刻转身,节省时间2。在对手贴身紧逼防守下,停球的同时,可以摆脱对手注意在对手没有贴身,接球转身的方向又是对手站位时,就会失败,停球直接把球送给对手。【FREESTYLE】足球中过人有三种:1。晃动:游戏中为摇杆动作2。变向加速:游戏中,R加速的时候,方向键为加速中突然变向趟球3。花招过人:这就是FREESTYLE。游戏中需要在不按R加速下,用方向键按照带球的方向,按不同方向键就是不同的FREESTYLE同向:“踩单车”,著名的过人动作(有齐达内旋转就更好了)左向:向左侧拉球(拉球后可轻松过人了)右向:向右侧拉球后向:挑球(闪躲对手铲球)比如,向上带球时,上是同向,左是左向,下是反向;向右带球时,右是同向,上是左向,左是反向。【高手的要求】充分利用球场宽度,保持三条线的距离,不能太近或者太远进攻要有多样性,短传配合,长传,下底传中,直塞空档......防守要好,感觉足球游戏防守都很难练习,只能靠经验另外,就是FIRST TOUCH CONTROL,FREESTYLE要活用,不能滥用另外,补充一点说明书没有的东西:【球队战术设定】 白色是守门员,蓝色是后卫,淡黄色是中场,桔黄色是前锋。 RES一栏下面的表示是没有机会上阵的球员,SUB一栏下面的球员是替补,可以在比赛中随时更换,不过只能有五名。 画面上方是球队目前的阵形,可以自己随意变更。MENTALITY球队心态:NEUTRAL正常、DEFEND防守、ATTACK进攻 ATTACKING进攻方式:POSSESSION控球、LONG PASSES长传、WINGS边路进攻 DEFENCE防守方式:CONTAIN收缩、NEUTRAL正常、PRESSING紧逼 OFFSIDE TRAP是否造越位:ON是、OFF否 再下面就是设定球队的角色:LEFT、RIGHT CORNER左、右角球主踢者,FREE KICK任意球主踢者,PENALTIES罚点球者,CAPTAIN队长。【球员位置】GK是守门员(白色) 后卫(蓝色)和中场(淡黄色)的位置缩写有规律,第一个字母表示这个球员是边路还是中路,L、C、R分别表示左中右。 跟在后面的可能有一个也可能有两个字母,有W字表示是特别擅长踢边路的球员,有A的表示是进攻型,D表示防守型,而最后一个字母是B表示后卫,M表示中场。 前锋(桔黄色)分为CF(前腰)和ST(射手)两种。例子1:LWM 意思为(左路、边、中场) 例子2:RB 意思为(右路、后卫) 例子3:CDM 意思为(中路、防守型、中场) 例子4:RM 意思为(右路、中场) 【球员参数】APP出场次数、G入球、YC黄牌、RC红牌、MOM取得全场最佳球员的次数、CS不失球场次(只适用于守门员)POS 位置 FOOT 常用脚AGE 年龄SKILL 所有参数统计值ACCEL 加速AGGR 侵略性ANTCP 预测球走向的能力BALNCE 平衡力BLCTRL 控球COMPSR 冷静CREATV 创造力CROSS 传中DRIBBL 过人HANDL 接球(门将)HEADNG 头球LNGBLL 长传MRKING 盯人PACE 速度PASSNG 短传POSITN 位置感(门将)REFLEX 反应(门将)RUSHNG 出击(门将)SHTACC 射门准确度SHTPWR 射门力量STAMNA 耐力STRGHT 力量TACKL 拦截【欧洲五大联赛队名中英文对照】 意大利足球甲级联赛 Italy Seria A亚特兰大 Atalanta 博洛尼亚 Bolonga佛罗伦萨 Firoloutina国际米兰 Intermilan尤文图斯 Juventus 莱切 Lecce AC 米兰 A.C.Milan佩鲁贾 Perugia罗马 Roma维罗纳 Verona 切维沃 Chievo 威尼斯 Venice 都灵 Turin皮亚琴察 Piacenzaca英格兰超级联赛 England Premiership阿森纳 Arsenal阿斯顿维拉 Aston Villa查尔顿 Charlton 切尔西 Chelsea德比郡 Derby埃弗顿 Everton伊普斯维奇 Ipswich利兹联 Leeds莱切斯特 Leicester利物浦 Liverpool曼联 Man Utd米德尔斯堡 Middlesbrough纽卡斯尔 Newcastle桑德兰 Sunderland 南安普顿 Southampton托特纳姆 Tottenham西汉姆 West Ham富尔汉姆 Fulham 布莱克本 Blackburn R. 博尔顿 Bolton W.德国足球甲级联赛 Germany Bundesliga慕尼黑1860 Munich 1860拜仁慕尼黑 Bayern Munich云达不莱梅 Werder Bremen科特布斯 Energie Cottbus多特蒙德 Borussia Dortmund弗雷堡 SC Freiburg柏林赫塔 Hertha BSC 汉堡 Hamburger SV 凯泽斯劳滕 Kaiserslautern 科隆 Cologne勒沃库森 Bayer Leverkusen 罗斯托克 Hansa Rostock沙尔克04 Schalke 04 沃尔夫斯堡 VfL Wolfsburg斯图加特 VfB Stuttgart纽伦堡 Nurnberg 圣保利 St.Pauli门兴格拉德巴赫 Monchengladbach西班牙甲级联赛 Spain La Liga阿拉维斯 Alaves 奥萨苏纳 Osasuna巴列卡诺 Rayo Vallecano 巴塞罗那 Barcelona毕尔巴鄂 Athletic Bilbao皇家马德里 Real Madrid拉科鲁尼亚 Deportivo Coruna拉斯帕尔马斯 Las Palmas 马拉加 Malaga 马洛卡 Real Mallorca塞尔塔 CeltaVigo瓦拉杜利德 Real Valladolid萨拉戈萨 Real Zaragoza皇家社会 Real Sociedad比利亚雷亚尔 Villarreal 瓦伦西亚 Valencia 西班牙人 Espanyol 贝蒂斯 RealBetis 塞维利亚 Sevilla特尼里弗 Tenerife

使用嵌入式字体解决音标字体显示

  1. 下载音标字体 http://www.zcwz.jinedu.cn/Soft/ShowSoft.asp?SoftID=5 金山音标字体和苹果公司音标字体
  2. How to Embed Font within Web Page/Email http://morovia.com/font/support/embed-font-web.asp
  3. 直接下载WEFT工具 http://www.microsoft.com/typography/web/embedding/weft3/download.aspx
  4. 使用WEFT工具转换字体
  5. 在网页添加字体定义



2008年1月3日星期四

Jquery是继prototype之后又一个优秀的Javascrīpt框架

Jquery是继prototype之后又一个优秀的Javascrīpt框架。对prototype我使用不多,简单了解过。但使用上 jquery之后,马上被她的优雅吸引住了。有人使用这样的一比喻来比较prototype和jquery:prototype就像Java,而 jquery就像ruby.实际上我比较喜欢java(少接触Ruby 罢了)但是jquery的简单的实用的确有相当大的吸引力啊!在项目里我把 jquery作为自已唯一的框架类包。使用其间也有一点点心得,其实这些心得,在jquery的文档上面也可能有讲,不过还是记下来,以备忘罢。



一,找到你了!
还记得$()这个东西吧?prototype还是DWR都使用了这个函数代替document.getElementById()。没错,jquery也跟风了。为达到document.getElementById()的目的,jquery是这样写的:


代码

var someElement = $("#myId");

看起来比其他两个框架的要多了一个#,好,看看下面的用法:
代码
$("div p");(1)
$("div.container")(2)
$("div #msg");(3)
$("table a",context);(4)


在prototype 里看过这样的写法吗?第一行代码得到所有div标签下的p元素。第二行代码得到class 为container的 div元素,第三行代码得到div标签下面id为msg的元素。第四行代码得到context为上下文的table里面 所有的连接元素。
如果你熟悉CSS,Xpath,你会觉得这些写法很眼熟!对了。正是。看出奥妙了吧。jquery就是通过这样的方式来找到Dom对象里面的元素。跟CSS的选择器相类似。

二,Jquery对象?
jquery提供了很多便利的函数,如each(fn),但是使用这些函数的前提是:你使用的对象是Jquer对象。使一个Dom对象成为一个Jquery对象很简单,通过下面一些方式(只是一部分):

代码

var a = $("#cid");(1)
var b = $("

hello

");(2)
var c = document.createElement("table"); var tb = $(c);


三,代替body标签的onload
这个惯例,也许是除了$()之外,用得最多的地方了。下面一段代码:

代码

$(document).ready(function(){
alert("hello");
});(1)

< body onload="alert('hello');" >(2)


上 面两段代码是等价的。但代码1的好处是做到表现和逻辑分离。并且可以在不同的js文件中做相同的操作,即$(document).ready (fn)可 以在一个页面中重复出现,而不会冲突。基本上Jqeury的很多plugin都是利用这个特性,正因为这个特性,多个plugin共同使用起来,在初始化 时不会发生冲突。
不管怎么说,这个惯例可以分离javascrīpt与HTML。推荐使用。

四,事件机制
我 大量使用的事件可能就是button的onclick了。以前习惯在input 元素上写onclick = "fn()",使用jquery可以使 javascrīpt代码与html代码分离,保持HTML的清洁,还可以很轻松地绑定事件,甚至你可以不知道“事件”这个名词。

代码

$(document).ready(function(){
$("#clear").click(function(){
alert("i am about to clear the table");
});
$("form[0]").submit(validate);
});
function validate(){
//do some form validation
}


五,同一函数实现set&get

代码

$("#msg").html();
$("#msg").html("hello");


上面两行代码,调用了同样的函数。但结果却差别很大。
第一行是返回指定元素的HTML值,第二行则是将hello这串字符设置到指定元素中。jquery的函数大部分有这样的特性。

六,ajax
这是一个ajax横行的时代。多少人,了不了解ajax的都跟着用上一把。呵。使用jquery实现ajax同样简单异常

代码

$.get("search.do",{id:1},rend);
function rend(xml){
alert(xml);
} (1)
$.post("search.do",{id:1},rend);
function rend(xml){
alert(xml);
} (2)

$("#msg").ajaxStart(function(){
this.html("正在加载。。。。");
});(3)
$("#msg").ajaxSuccess(function(){
this.html("加载完成!");
});(4)



这些都是较常用的方法,get和post用法一样。第一个参数是异步请求的url,第二个为参数,第三个回调方法。
3,4的方法会在指定的Dom对象上绑定响应ajax执行的事件。当然,jquery的AJAX相关的函数不仅是这些,有兴趣可以去研究再多。

七,渐入淡出

代码

$("#msg").fadeIn("fast");
$("#msg").fadeOut("slow");



没错,上面两行代码已经分别实现了一个id为Msg的jquery对象的渐入和淡出。做一个像Gmail一样的动态加载通知条,用jquery就那么简单。两个函数接受的参数除了快慢等,还可以接收整型,作为渐入或淡出的完成时间,单位为MS。

八,plugin
这也是一个插件的时代。
jquery插件给我的感觉清一色的清洁,简单。如Jtip,要使用它的功能,只需要在你的元素的class上加上Jtip,并引入jtip.js及其样式即可以了。其他事情插件全包。我喜欢jquery的一个重要原因是发现她已经有了很多很好,很精彩的插件。
写得很烂。可能大家看不出jquery的好处。嗯,光听是没用的,试用一下吧。你会发觉很有趣。
暂时告一段落吧。待有新的发现再来分享。

加一些Jquery的资源:
http://www.visualjquery.com/index.xml 很好的API查询站点
http://jquery.com/demo/thickbox/ 知道lightBox吧,看看Jquery是怎样实现相同的东西
http://www.codylindley.com/blogstuff/js/jtip/ Jtip,实用的提示工具
http://jquery.com/plugins/ 很多牛的插件。
http://15daysofjquery.com/jquery 的15天教程

Ajax: JSON和XML比较

Ajax(Asynchronous JavaScript and XML)说到底就是一种浏览器异步读取服务器上XML内容的技术。现在的技术凡是跟XML扯上关系,再加上个概念做幌子,就像金装了一样,拽得不行。门外 的人看得很是热闹,门里的人摇摇头不外如是。XML呢,跨平台的新潮语言?其实XML=TXT。

XML只是符合很多规范的文本。它本身什么都不是,只是保 存字符的文件。而浏览器异步读取的只是服务器上的文本内容,所以在Ajax开发时完全不必拘泥于XML。[版权所有,www.jialing.net]

  JSON的来历

  XML 的作用是格式化数据内容。如果我们不用XML还有什么更好的方法吗?这个答案是JSON。介绍JSON之前我先介绍一下JavaScript这门脚本语 言。脚本语言自身有动态执行的天赋。即我们可以把想要执行的语句放在字符串里,通过eval()这个动态执行函数来执行。字符串里的内容会像我们写的脚本 一样被执行。

  示例1:

<HTML>
<HEAD>
 <TITLE>eval example 1</TITLE>
</HEAD>
<BODY>
 <script>
  str = "alert('hello')";
  eval(str);
 </script>
</BODY>
</HTML>

  打开页面会弹出hello窗口。

  我们可以在字符串中放任何脚本语句,包括声明语句:

<HTML>
<HEAD>
<TITLE>eval example 2</TITLE>
</HEAD>
<BODY>
<script>
 define = "{name:'Michael',email:'17bity@gmail.com'}";
 eval("data = "+define);
 alert("name:"+data.name);
 alert("email:"+data.email);
</script>
</BODY>
</HTML>

  如果我们在后台异步传来的文本是JavaScript的声明语句,那么不是一条eval方法就能解析了?对于解析复杂的XML,这样的效率是多么大的提高啊!

  现在就来告诉你什么是JSON:JavaScript Object Notation。我更愿意把它翻译为JavaScript对象声明。比如要从后台载入一些通讯录的信息,如果写成XML,如下:

<contact>
 <friend>
  <name>Michael</name>
  <email>17bity@gmail.com</email>
  <homepage>http://www.jialing.net</homepage>
 </friend>
 <friend>
  <name>John</name>
  <email>john@gmail.com</email>
  <homepage>http://www.john.com</homepage>
 </friend>
 <friend>
  <name>Peggy</name>
  <email>peggy@gmail.com</email>
  <homepage>http://www.peggy.com</homepage>
 </friend>
</contact>

  而写成JSON呢:

[
{
 name:"Michael",
 email:"17bity@gmail.com",
 homepage:"http://www.jialing.net"
},
{
 name:"John",
 email:"john@gmail.com",
 homepage:"http://www.jobn.com"
},
{
 name:"Peggy",
 email:"peggy@gmail.com",
 homepage:"http://www.peggy.com"
}
]


  简单的不只是表达上,最重要的是可以丢弃让人晕头转向的DOM解析了。因为只要符合JavaScript的声明规范,JavaScrip会自动帮你解 析好 的。Ajax中使用JSON的基本方法是前台载入后台声明JavaScript对象的字符串,用eval方法来将它转为实际的对象,最后通过 DHTML更新页面信息。

JSON的格式

  JSON的基本格式如下,图片来自json.org:

  ·对象是属性、值对的集合。一个对象的开始于"{",结束于"}"。每一个属性名和值间用":"提示,属性间用","分隔。


  ·数组是有顺序的值的集合。一个数组开始于"[",结束于"]",值之间用","分隔。


  ·值可以是引号里的字符串、数字、true、false、null,也可以是对象或数组。这些结构都能嵌套。


  ·字符串的定义和C或Java基本一致。


  ·数字的定义也和C或Java基本一致。

Ajax:拥抱JSON,让XML走开(图五)
JSON VS XML

  ·可读性

  JSON和XML的可读性可谓不相上下,一边是建议的语法,一边是规范的标签形式,很难分出胜负。

  ·可扩展性


  XML天生有很好的扩展性,JSON当然也有,没有什么是XML能扩展,JSON不能的。

  ·编码难度

  XML有丰富的编码工具,比如Dom4j、JDom等,JSON也有json.org提供的工具,但是JSON的编码明显比XML容易许多,即使不借助工具也能写出JSON的代码,可是要写好XML就不太容易了。

  ·解码难度

  XML的解析得考虑子节点父节点,让人头昏眼花,而JSON的解析难度几乎为0。这一点XML输的真是没话说。

  ·流行度

  XML已经被业界广泛的使用,而JSON才刚刚开始,但是在Ajax这个特定的领域,未来的发展一定是XML让位于JSON。到时Ajax应该变成Ajaj(Asynchronous JavaScript and JSON)了。

QQ汽车陪练

北区电话号码:80623005
网站地址:http://www.qqpeilian.com/index.htm
价钱:买10小时送2小时 440元,单价:40元/小时,车型:捷达

PSP编程之我见

  1. TOPOC-PSP自制程序开发组博客:http://hi.baidu.com/topoc 里面有很完整的开发环境搭建和示例。
    • [PSP教程00]libnge介绍
    • [PSP教程01]helloworld,第一个sdl+nge程序
    • [PSP教程02]中文显示freetype
    • [PSP教程03]移动的精灵
    • [PSP教程04]编外篇,psp开发整合包
    • [PSP教程05]使用SQL数据库
    • [PSP教程06]采用硬解码播放mp3声音的libcoolaudio
  2. Windows and Linux on the Sony PSP http://www.hacker.co.il/psp/bochs/
  3. ps2dev网站:http://ps2dev.org/ 文档很全的英文PSP开发网站
  4. bochs模拟器: http://bochs.sourceforge.net/

财经频道规划文档之资料收集

  1. 互联网数据中心 http://www.dcci.com.cn/ 可以找到 2007简版报告下载
  2. 谷歌热榜 http://www.google.cn/rebang/home 可以找到当前流行的关键词
  3. 百度中文搜索风云榜 http://top.baidu.com/ 和谷歌热榜类似,可以从中发现一些趋势。

C++编程

  1. STL资料站点 http://stl.winterxy.com/
  2. 使用 gperf 实现高效的 C/C++ 命令行处理 http://www.ibm.com/developerworks/cn/linux/l-gperf.html
  3. libxml2编程文档 http://xmlsoft.org/html/index.html

字典数据

  1. 查找字典数据,http://sourceforge.net/project/showfiles.php?group_id=80679,下载StartDict的数据。如:stardict-oxford-gb-2.4.2.tar.bz2,牛津字典。
  2. 解压stardict-oxford-gb-2.4.2.tar.bz2,可以得到,oxford-gb.ifo、oxford-gb.idx、oxford-gb.dict.dz
  3. 需要下载7zip, http://www.7-zip.org/zh-cn/download.html ,解压oxford-gb.dict.dz得到oxford-gb.dict
  4. 需要下载stardict-tools-3.0.1.tar.bz2,从第一步中的相同链接http://sourceforge.net/project/showfiles.php?group_id=80679 下载即可。
  5. 解压stardict-tools-3.0.1.tar.bz2,可以从源代码目录中得到libcommon.cpp,libcommon.h, libstardict2txt.cpp, libstardict2txt.h, stardict2txt.cpp等5个文件。使用g++在cygwin环境进行编译,指令为:g++ -o stardict2txt stardict2txt.cpp libstardict2txt.cpp libcommon.cpp `pkg-config.exe --cflags --libs gtk+-2.0` 得到stardict2txt.exe
  6. 将stardict2txt.exe、oxford-gb.ifo、oxford-gb.idx、oxford-gb.dict四个文件复制到一个临时目录,运行:./stardict2txt.exe oxford-gb.ifo 即可得到文件oxford-gb.txt