Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Ветеран


Сообщения: 3320
Благодарности: 916

Профиль | Отправить PM | Цитировать


Ещё одна вариация на тему, с поддержкой C#, VB, HTML, XML, T-SQL, MSH (Monad)
http://www.manoli.net/csharpformat/

Для переделки под форумные посты(BB-Cod), в частности для движка vBulletin, на котором работает конференция, необходимо изменить в файле CodeFormat.cs
Код: Выделить весь код
sb.Append("<span class=\"rem\">");
	sb.Append("[color=#008000]");
sb.Append("</span>");
	sb.Append("[/color]");
return "<span class=\"str\">" + match.ToString() + "</span>";
	return "[color=#a31515]" + match.ToString() + "[/color]";
return "<span class=\"preproc\">" + match.ToString() + "</span>";
	return "[font color=#cc6633]" + match.ToString() + "[/color]";
return "<span class=\"kwrd\">" + match.ToString() + "</span>";
	return "[color=#0000ff]" + match.ToString() + "[/color]";
и SourceFormat.cs.
sb.Append("<pre class=\"csharpcode\">\n");
->sb.Append("[code]");
sb.Append("</pre>");
->sb.Append("[/code]");

-> указывает на что заменить (так как в не code табуляция не видна, а вложенное в [code] - [noparse] не даёт сработать первому), сам "->" копировать не надо.

Создать новый WinForm проект, добавить или файлы исходника (с заменёнными строками), или отдельно собранную библиотеку по изменённому коду. Создать файл Form1.cs с таким кодом
Код: Выделить весь код
using System;
using System.Drawing;
using System.Windows.Forms;

class Form1 : Form
{
    RichTextBox RichTextBox1 = new RichTextBox();
    Button Button1 = new Button();
    public static new void Main()
    {
        Application.Run(new Form1());
    }
    public Form1()
    {
        Text = "CSharp|VBLikeFormat";
        MaximizeBox = false;
        FormBorderStyle = FormBorderStyle.FixedDialog;
        {
            RichTextBox1.Parent = this;
            RichTextBox1.Location = Point.Empty;
            RichTextBox1.Size = ClientSize - new Size(0, 25);
        }
        {
            Button1.Parent = this;
            Button1.Location = new Point(RichTextBox1.Size - new Size(ClientSize.Width, 0));
            Button1.Size = new Size(ClientSize.Width, 25);
            Button1.Text = "Apply";
        }
        Button1.Click += Button1_Click;
    }
    public void Button1_Click(object sender, System.EventArgs e)
    {
        //Manoli.Utils.CSharpFormat.VisualBasicFormat VisualBasicFormat = new Manoli.Utils.CSharpFormat.VisualBasicFormat();
        //RichTextBox1.Text = VisualBasicFormat.FormatCode(RichTextBox1.Text);
        Manoli.Utils.CSharpFormat.CSharpFormat CSharpFormat = new Manoli.Utils.CSharpFormat.CSharpFormat();
        RichTextBox1.Text = CSharpFormat.FormatCode(RichTextBox1.Text);
    }
}
В файле Form1.cs приведён пример для VB.NET(закомментирован) и C#.

Отправлено: 14:16, 31-08-2010 | #5