Текущий архив: 2007.10.21;
Скачать: CL | DM;
ВнизРазбор текста с "тегами" и вывод его на RichEdit Найти похожие ветки
← →
Kostya2x (2007-09-30 16:48) [0]Здравствуйте!
Мне необходимо сделать такую вещь... Есть файл с текстом типа
~b~The some bold text~ normal text ~u~underline text~
~bu~bold underline text~
Надо считать его, обработать "теги" и вывести текст на RichEdit
в соответствии с ними.
Сколько я не бился, у меня почему-то получается зависание. :-)
У кого-нибудь есть примеры того, как можно сделать подобное? "Теги"
могут быть и другими, это не принципиально.
← →
Dib@zol © (2007-09-30 16:58) [1]как-то теги косо расставлены...
← →
Anatoly Podgoretsky © (2007-09-30 17:05) [2]> Kostya2x (30.09.2007 16:48:00) [0]
У тебя ошибка в программе.
← →
Dib@zol © (2007-09-30 17:06) [3]> [2] Anatoly Podgoretsky © (30.09.07 17:05)
Не нужно быть эйнштейном, чтоб это понять. Показывай как делал.
← →
Anatoly Podgoretsky © (2007-09-30 17:13) [4]Еще чего, делать мне больше нечего.
← →
Dib@zol © (2007-09-30 17:17) [5]Уважаемый АП! Я вообще-то это автору темы сказал.
← →
Kostya2x (2007-09-30 21:14) [6]Вот код. Сильно не бейте меня по разным частям тела за него. :)
const
CR = ^M;
LF = ^J;
var
MainForm: TMainForm;
// Обрабатываемый символ
Look: Char;
// Файловая переменная
InFile: TextFile;
implementation
{$R *.dfm}
// Чтение символа из входного потока
procedure GetChar();
begin
Read(InFile, Look)
end;
// Распознавние и пропуск перевода строки
procedure NextLine();
begin
if (Look = CR) then begin
GetChar();
if (Look = LF) then
GetChar()
end
end;
// Выводим символ
procedure OutputSymbol();
begin
MainForm.RichEdit.Text := MainForm.RichEdit.Text + Look;
end;
// Разбираем тэг
procedure ParseTag();
begin
GetChar;
Tag := Look;
case Look of
"b": MainForm.RichEdit.DefAttributes.Style := MainForm.RichEdit.DefAttributes.Style + [fsBold];
else MainForm.RichEdit.DefAttributes.Style := MainForm.RichEdit.DefAttributes.Style;
end;
GetChar;
repeat
MainForm.RichEdit.Text := MainForm.RichEdit.Text + Look;
GetChar()
until (Look = "~");
MainForm.RichEdit.DefAttributes.Style := MainForm.RichEdit.DefAttributes.Style - [fsBold]
end;
// Инициализация
procedure Init();
begin
GetChar()
end;
procedure TMainForm.DoTextClick(Sender: TObject);
begin
AssignFile(InFile, "parse.txt");
Reset(InFile);
repeat
case Look of
"~": ParseTag();
else OutputSymbol()
end;
NextLine()
until Eof(InFile);
Init();
CloseFile(InFile)
end;
Страницы: 1 вся ветка
Текущий архив: 2007.10.21;
Скачать: CL | DM;
Память: 0.46 MB
Время: 0.049 c