五千年(敝帚自珍)

主题:【原创】【老兵开源】一个可以计算你写的帖子有多少字的程序 -- 老兵帅客

共:💬27
分页树展主题 · 全看首页 上页
/ 2
下页 末页
  • 家园 【原创】【老兵开源】一个可以计算你写的帖子有多少字的程序

    说明:

    这个程序用于计算字符串的长度并显示在特定区域,这样用户可以随时知道帖子长度,并设法使其超过1分/3分的边界线。

    由于西西河似乎没有上传附件的功能(至少我是没有找到),只好贴上全部源代码,请用户自行编译。

    编译方法:本程序是用C#写成的,因此用户需要有.Net Framework(可以从微软网站下载)或者Visual Studio.Net。然后用户或者使用集成环境构造一个C# Windows Application,加入该源程序并编译;或者使用CSC来编译该源程序。

    使用方法:启动编译后的程序,将用户关心的字符串(例如正在编辑的西西河帖子)拷入该程序的上面那个大框子,该程序的下面那个小框子将自动显示该字符串的长度。注意:在该程序中,一个汉字或者一个字符都只算一个字符。

    下面是源程序:

    using System;

    using System.Drawing;

    using System.Collections;

    using System.ComponentModel;

    using System.Windows.Forms;

    using System.Data;

    namespace TextLength

    {

    /// <summary>

    /// Summary description for Form1.

    /// </summary>

    public class MainForm : System.Windows.Forms.Form

    {

    private System.Windows.Forms.Label lblText;

    private System.Windows.Forms.TextBox txtText;

    private System.Windows.Forms.Button btnExit;

    private System.Windows.Forms.Label lblLength;

    private System.Windows.Forms.TextBox txtLength;

    /// <summary>

    /// Required designer variable.

    /// </summary>

    private System.ComponentModel.Container components = null;

    public MainForm()

    {

    //

    // Required for Windows Form Designer support

    //

    InitializeComponent();

    //

    // TODO: Add any constructor code after InitializeComponent call

    //

    }

    /// <summary>

    /// Clean up any resources being used.

    /// </summary>

    protected override void Dispose( bool disposing )

    {

    if( disposing )

    {

    if (components != null)

    {

    components.Dispose();

    }

    }

    base.Dispose( disposing );

    }

    #region Windows Form Designer generated code

    /// <summary>

    /// Required method for Designer support - do not modify

    /// the contents of this method with the code editor.

    /// </summary>

    private void InitializeComponent()

    {

    System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(MainForm));

    this.lblText = new System.Windows.Forms.Label();

    this.txtText = new System.Windows.Forms.TextBox();

    this.btnExit = new System.Windows.Forms.Button();

    this.lblLength = new System.Windows.Forms.Label();

    this.txtLength = new System.Windows.Forms.TextBox();

    this.SuspendLayout();

    //

    // lblText

    //

    this.lblText.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));

    this.lblText.Location = new System.Drawing.Point(24, 16);

    this.lblText.Name = "lblText";

    this.lblText.Size = new System.Drawing.Size(136, 16);

    this.lblText.TabIndex = 0;

    this.lblText.Text = "Please fill in the text:";

    //

    // txtText

    //

    this.txtText.Location = new System.Drawing.Point(16, 40);

    this.txtText.Multiline = true;

    this.txtText.Name = "txtText";

    this.txtText.ScrollBars = System.Windows.Forms.ScrollBars.Both;

    this.txtText.Size = new System.Drawing.Size(296, 176);

    this.txtText.TabIndex = 1;

    this.txtText.Text = "";

    this.txtText.TextChanged += new System.EventHandler(this.txtText_TextChanged);

    //

    // btnExit

    //

    this.btnExit.Location = new System.Drawing.Point(132, 264);

    this.btnExit.Name = "btnExit";

    this.btnExit.Size = new System.Drawing.Size(64, 23);

    this.btnExit.TabIndex = 3;

    this.btnExit.Text = "Exit";

    this.btnExit.Click += new System.EventHandler(this.btnExit_Click);

    //

    // lblLength

    //

    this.lblLength.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));

    this.lblLength.Location = new System.Drawing.Point(20, 231);

    this.lblLength.Name = "lblLength";

    this.lblLength.Size = new System.Drawing.Size(96, 16);

    this.lblLength.TabIndex = 4;

    this.lblLength.Text = "Current length:";

    //

    // txtLength

    //

    this.txtLength.BackColor = System.Drawing.SystemColors.HighlightText;

    this.txtLength.Location = new System.Drawing.Point(124, 231);

    this.txtLength.Name = "txtLength";

    this.txtLength.ReadOnly = true;

    this.txtLength.TabIndex = 5;

    this.txtLength.Text = "";

    //

    // MainForm

    //

    this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);

    this.ClientSize = new System.Drawing.Size(328, 302);

    this.Controls.Add(this.txtLength);

    this.Controls.Add(this.lblLength);

    this.Controls.Add(this.btnExit);

    this.Controls.Add(this.txtText);

    this.Controls.Add(this.lblText);

    this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));

    this.MaximizeBox = false;

    this.Name = "MainForm";

    this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;

    this.Text = "Text Length Detector";

    this.ResumeLayout(false);

    }

    #endregion

    /// <summary>

    /// The main entry point for the application.

    /// </summary>

    [STAThread]

    static void Main()

    {

    Application.Run(new MainForm());

    }

    private void btnExit_Click(object sender, System.EventArgs e)

    {

    Dispose();

    }

    private void txtText_TextChanged(object sender, System.EventArgs e)

    {

    this.txtLength.Text=Convert.ToString(this.txtText.TextLength);

    }

    }

    }

    • 家园 老兵在传播病毒,大家不要上他的当
      • 家园 怎么可能是病毒,我提供全部源代码了,愿者上钩
        • 家园 老兵这又何必呢?

          There is a line we should not cross.

          • 家园 道理我当然是明白的

            能够把程序编译成功的,不会在乎多敲几个字;真正懒的,也不会去编译程序了。

            原本这个程序的目的只是为了检验字符串的长度:在.Net下面,中文和英文字符的长度是一样的,都是Unicode。看了Highway的回帖,我才想起要做个填充器。

            纯属搞笑。

            这次阿康被我赚了。

            遗憾地是,西西河真正理解我的人,这几天不在。

            谢了。

            • 家园 是让你赚拉

              显得我特小人是吧?

              小人之心自然难度老兵的君子之腹

              哼哼, 别急, 比赛尚未结束呢!

              • 家园 现在还可以斗嘴玩儿,以后就难了,200汉字斗嘴词,怎么凑啊
                • 家园 这不都是你害的, 还好意思说

                  是谁害得我们上飞机要脱鞋检查,

                  是谁害得我们回国签证要被Check,

                  还不是可恶的911恐怖分子!

                  • 家园 回复

                    不过说实话,这个新制度对交流很不利,因为大多数交流的文字都不会很多。分数倒是无所谓,可是短帖数量限制却的确是个大问题,什么时候都要算帐,算算自己今天还有几次发短帖的机会,实在是累。

                    说句不好听的,这个制度的最大受益者是转载专业户和贴图(几个链接就可以凑够字节数了)爱好者了,对其它会员都不利,特别是咱们这些多数时间都是在讨论问题的,其结果很可能是增加了安静的阅读者,却没有多少人在讨论。

                    好心办坏事,此其谓矣。

                    上面这些话用我的程序计算的结果是211个字,够数了。

                    • 回复
                      家园 小生想插句话,两位前辈不要暴打

                      我倒觉得,这个限制不是全没道理。就好像法庭上,talk show,以及辩论比赛,对于各方的发言次数,长度都是有一定规矩的,不是想说多少就说多少。这样,一是防止没完没了,二是因为各方机会都弥足珍贵,大家自会三思而言,说话之前想想这是不是车轱辘话,有没有必要说;有没有漏洞,会不会被别人轻易驳倒;等等。这样说出来的话闪光点更多,发言质量提高了。发言质量确实不应该用长短来衡量。但每天能做十个有思想,有意义的发言,也不少了吧。从我这样的潜水者角度,我确实很喜欢看各位讨论,可以学到不少。但有时也觉得动辄绵延十几页的跟贴实在太多,看不过来。最后的结果,除了积极参与辩论的少数几位,其他人很难受教受益。

                      还有一个好处,就是架不太容易吵起来。在短时间内密集发言,大家容易越说越激动;要隔个一天,说不定就冷静下来了。

                      转贴与贴图者受益的问题,可以设法从技术上解决。实际上还有其他漏洞,值得多探讨。比如,这个制度会不会造成马甲泛滥?

                      • 家园 别客气,大家畅所欲言就是了

                        你觉得交流中有多少是长篇大论?又有多少是短句子?

                        我觉得在讨论问题的时候,短而密集的反馈经常要比少而长的更加有效。

                        最简单的一个例子,咱们做软件的时候,肯定是要做很多测试用例的,你会做少量而庞大的测试用例呢?还是会做大量短小而目标明确的测试用例呢?就我个人而言,选择是不言而喻的。

                        其实人文环境和科学技术的很多方面都是类似的,道理也是相似的。

                        铁手是好意,但是很多事情是无法事先意会的,只能够让它慢慢发展来教育观察的人。

                        222字。

                        • 家园 我想说得都说了,看来没法说服二位了。没关系,想来只是视角不同。

                          我相信这个问题,最后会取决于民意。但是我希望不是简单的多数派压制少数派,当然也不是铁手独裁。咱们多学学美国政治家们的智慧,坐下来,看看有没有妥协方案。小生拍了一下脑袋,请看看可使得?就算不行,集思广益,也应该有别的路走。我想一个基本的思想,就是给读者最大的选择权。各取所需。

                          http://www.cchere.com/article/193081

                      • 家园 不是非常同意

                        说实在的,多数原创作者的动机,就是想看回帖的,

                        回帖要超过200字,有,但不多,回帖本身即使质量不高,

                        也可以激发思考。

                        看回帖困难,可以用平板方式,吵架什么的,可以用其他方式控制,

                        交流是BBS的根本,因为上述原因而限制发帖,实在是因噎废食。

                    • 回复
                      家园 俺也同意这个新制度非常不利于交流

                      美国政府911以后的政策,限制了大量外国留学生的进入,

                      长远看来也将大大不利于美国的科技和经济发展

                      但是这又确实是美国遭受到911打击以后可以理解的正常反应,

                      所以罪魁祸首还是恐怖分子.

        • 家园 这么长,看得我头晕,宁愿相信梦里依稀

          再说,能成功编译你这程序的,就能自己写。这话不错吧?

分页树展主题 · 全看首页 上页
/ 2
下页 末页


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河