Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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
15-1190136505
iop
2007-09-18 21:28
2007.10.21
А почему мы одних любим...


15-1190138260
Mozart
2007-09-18 21:57
2007.10.21
знатели Exchange!!! ПОМОГИТЕ!!!!


2-1190829137
AKA
2007-09-26 21:52
2007.10.21
Как перетащить картинку со stringgrida в image???


15-1190624861
tytus
2007-09-24 13:07
2007.10.21
Delphi2007 for Win32.


15-1190155991
Константинов
2007-09-19 02:53
2007.10.21
Настройка фрейвола





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский