Я использую C #.NET 2.0 и WinForms.
У меня есть фрагмент кода, который отформатирован в ассемблере так:
VARIABLE = 40
ADDRESS = $60
LDA VARIABLE;
STA ADDRESS;
Вывод должен быть:
!VARIABLE = 40
!ADDRESS = $60
LDA !VARIABLE;
STA !ADDRESS;
Конечно,есть гораздо больше, чем это.Как 2000 строк, но дело в том, что в начале файла есть объявления, и я могу загружать / сохранять или делать с ними что угодно.Но моя проблема в том, что я должен «предварять» ВСЕ эти объявления (даже в необработанном коде) с помощью!.
Мой текущий метод такой:
var defs = tab.tb.GetRanges(@"^\s*([A-Za-z0-9_]+){4,255}\s*=", RegexOptions.Multiline); // all declarations are formatted like this, so use regex to get all of them
foreach (var def in defs)
{
string actual = def.Text.Substring(0, def.Text.IndexOf(' ')); // remove the = sign since its not used in actual code
txt = txt.Replace(actual, "!" + actual);
}
Однако этот методочень медленноТребуется приблизительно 3 секунды, чтобы "исправить" все объявления в моем файле.Есть ли лучший способ?И для записи, синтаксис немного отличается от обычного текстового поля, потому что я использую http://www.codeproject.com/KB/edit/FastColoredTextBox_.aspx в качестве текстового элемента управления.