![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как найти в end, соответствующий begin-у [D7]
Леван © (2006-03-16 11:08:00)Привет мастерам
Как в тексте программы найти end по begin-у и наоборот ?
TStas (2006-03-21 10:48:00) [1]Папрсить, батенька. Сначала разобрать код на отдельныеислова. Потом составить те, у которых тожен быть end . И список лескем читать, свтретьлся end увеличил счетчик, встретился его закрывающей, try например, уменьших счетчик. Стал счетчик =0 - нашел что искал. Я когда-то так изскал тэги HTML у них же неограниченная вложенность. Только вот с if облом выйти, наверно, может. Хотя нет. ЕСли есть end, знать есть и бегин. РАзобрать на просто слова не просто, а очень просто
function IsIdentifier(out IdentStr: String): Boolean;
var
ln: Integer;
p1, p2, ln1: Integer;
begin
SkipSpace;
ln:=Length(s); //Äëèííà ñòðîêè
Result:=IsLetter(s[p]); //Ïåðâûé ñèìâîë äîëæåí áûòü áóêâîé
if not result then exit;
p1:=p; //Íà÷àëî èäåíòèôèêàòîð 224;
p2:=P1;
inc(p); //Ñäâèãàþ óêàçàòåëü
while IsLetter(s[p]) or IsDigit(s[p]) do
begin
if p
GrayFace (2006-03-21 10:28:00) [2]> ППКС
Что за зверь?
tesseract (2006-03-17 15:35:00) [3]
> Я пока использовал только форматтер DelForEx - прилично
> форматирует.
да в новый gexperts он оказывается тоже вошёл.
clickmaker (2006-03-17 12:52:00) [4]
> GrayFace © (17.03.06 10:50) [15]
> Я пока использовал только форматтер DelForEx - прилично
> форматирует
ППКС
GrayFace (2006-03-17 10:50:00) [5]Я пока использовал только форматтер DelForEx - прилично форматирует.
tesseract (2006-03-17 09:32:00) [6]
> Sergey Masloff (16.03.06 21:54) [10]
Тогда встречный вопрос .
А какими экспертами кто пользуется ?
Есть среди них с нормальным форматтером?
TUser (2006-03-17 08:45:00) [7]far (файлманагер такой) + colorer (плагин к нему)
Програмно - читать текст, обращая внимание на [1], а также на комментарии, апостроф. Рекурсию использовать не надо - надо сделать автомат с конечным числом состояний и читать.
аноним (2006-03-17 04:53:00) [8]>end; // if <> then
бррр... не люблю такой изврат. хотя в особо крупных и запутанных блоках помогает. а лучше юзать BDS2006 :) ну или Castalia...
Германн (2006-03-17 01:42:00) [9]
> Sergey Masloff (16.03.06 21:54) [10]
>
> tesseract © (16.03.06 17:00) [7]
>
> >угу я так делаю
> >if <> then
> >begin
>
> >end; // if <> then
> То есть после энда коммент энд чего это? НЕНАВИЖУ!!!! (Ничего
> личного)
> ;-)))
! - четыре раза повторен, а ")" только три. Чтобы это значило?
Sergey Masloff (2006-03-16 21:54:00) [10]tesseract © (16.03.06 17:00) [7]
>угу я так делаю
>if <> then
>begin
>end; // if <> then
То есть после энда коммент энд чего это? НЕНАВИЖУ!!!! (Ничего личного)
;-)))
Gydvin (2006-03-16 19:54:00) [11]www.gaplayer.narod.ru
Во ее (программу) колбасит :)))
Belorus (2006-03-16 18:34:00) [12]www.gaplayer.narod.ru
Там лежит програмулька(24КБ) по сортировке таких вещей.
Он в частности пробелы ставит как надо. Можете попробовать. Только не пинайте написал за 2 часа.
tesseract (2006-03-16 17:00:00) [13]
> Учись правельно оформлять код.
угу я так делаю
if <> then
begin
end; // if <> then
Pavia (2006-03-16 16:09:00) [14]Учись правельно оформлять код.
Black Krok (2006-03-16 12:38:00) [15]Есть всякие примочки типа GExperts. Ставятся на среду, позволяют кучу всяких сервисов, 3/4 нафиг не нужны :)
Но этот сервис реализован.
Anatoly Podgoretsky (2006-03-16 12:08:00) [16]Рекурсивно
Леван (2006-03-16 12:01:00) [17]в смисле, глазами или какой-нибудь клавишей ?
Леван (2006-03-16 12:00:00) [18]и как искать ? :)
wal (2006-03-16 11:26:00) [19]end в программе может закрывать не только begin, но и package, record, try, case, asm, object, class, initialization, interface, вроде все.
Вот и ищи все эти операторные скобки.