![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
кол-во подстрок в строке [D7]
Неважно © (2009-11-27 17:39:00)ДД.
Есть строка01hello word01
Необходимо посчитать сколько "подстрок" 01 было в строке.
Есть что-нибудь из 1 команды или только циклом с PosEx ?
Спасибо
Игорь Шевченко (2009-11-30 11:35:00) [1]
> я вполне четко указал языки
Ты б еще с лиспом влез
jack128_ (2009-11-30 11:05:00) [2]
> Мне не надо проверять, я на С (не С++) давно пишу. Если
> кто-то путает языки, это его личные проблемы. Объявление
> переменной внутри блока с областью видимости внутри блока
> - это свойство языка С,
я вполне четко указал языки, про которые говорил. Видимо кто то умеет писать на С, но не умеет читать по-русски...
korneley (2009-11-30 02:15:00) [3]Не понял почему :="болдом" не прошло...
korneley (2009-11-30 02:14:00) [4]
> Периодически на Jav'е пишу
>a :=1;
> и не могу понять, какого черта эта зараза ругается.
> .
Дык, братушка, кто ж Шикльгруберу - то руки подаст? :)
Германн (2009-11-30 01:58:00) [5]
> Юрий Зотов © (30.11.09 01:43) [59]
:)
Юрий Зотов (2009-11-30 01:43:00) [6]> Германн © (30.11.09 01:31) [58]
Периодически на Jav'е пишу
a := 1;
и не могу понять, какого черта эта зараза ругается...
:о)
Германн (2009-11-30 01:31:00) [7]<offtop>
Лично мне на новом месте работы очень помогало то, что язык ST (стандарт МЭК 6-1131/3) в качестве основы взял Паскаль. Но после первого этапа его освоения у меня возникло что-то типа "шизофрении". На паскале (Дельфи) я пытаюсь писать
var
a : Integer;
b at a;
А на ST
A : INT'
B : BYTE absolute A;
</offtop>
korneley (2009-11-30 01:13:00) [8]
> Игорь Шевченко © (29.11.09 22:32) [47]
Эх!!! Чем больше живу, тем больше не хватает "Эль-76". Всё, что угодно и куда угодно. При аппаратной поддержке. И условный слева условному справа и функция даст тебе то, куда назначить/присвоить, и вааще!!! А само звучание:
_Если
_То
_Иначе
_Все
Не говорю уже про события/исключения на русском грмтк. У меня, например, "!Аляулюгонигусей" было. Ну, типа, всё пропало :)))
А вообще, без ностальгии, - да. На чём быстрее и качественнее у конкретного тебя получается, то и оно. В рамках современных реалий.
ЗЫ: А я думаю: "И почему мне пиво нравится?" Всё он, "Эль" окаянный :)))
Игорь Шевченко (2009-11-30 00:33:00) [9]jack128_ (29.11.09 23:13) [52]
> ну проверь сам..
Мне не надо проверять, я на С (не С++) давно пишу. Если кто-то путает языки, это его личные проблемы. Объявление переменной внутри блока с областью видимости внутри блока - это свойство языка С,
Юрий Зотов © (29.11.09 23:31) [53]
> Но на практике новый счетчик с тем же именем объявляется
> практически всегда
Мы говорим о конструкциях языка или о практике ? Если о втором, то давай не надо, программу на Фортране можно написать на любом языке программирования, тут у каждого практика - будь здоров.
jack128_ (2009-11-29 23:49:00) [10]
> Жень, я ведь о джаве говорил. Нет там таких переменных.
каких "таких"??
var
i: Integer;
begin
i = ident; // в паскале - ты не видя объявления ident не скажешь, что это такое, вызов функции или копирование переменной/константы
int i = ident; // в С++ ident - гарантированно константа/переменная (ну либо макрос, но макросы - это отдельная тема)
>
> > по сравнению с function/procedure в паскале - это мелочь
> ;-)
> Жень, я ведь о вызове говорил, а не об объявлении..
ну как те сказать, для меня было бы не очевидно, что объявление требует указания скобок, а вызов нет.
>
> > ты такой синтаксис хотел бы?? -)
> См. чуть выше.
не прокатило бы. Я в последнее время много всяких сорцов смотрю:
for (var i = 0; i < 10; i++)
{
// даже один оператор обрамляют в скобки.
}
хотя в этом и нет необходимости. видимо традиция...
да и в дельфе врятли бы много народу подписалось бы под такой синтаксис, который ты для сишников предлагаешь..
Юрий Зотов (2009-11-29 23:39:00) [11]Alx2 © (29.11.09 22:45) [48]
> Мне показалось, что это - ревность.
Гы... нет, конечно. С [47] действительно можно согласиться. Я это все к тому, что "лишние" буковки в Паскале тыщу раз окупаются его надежностью. По мощности он не уступает C и превосходит Джаву - но он надежнее.
Кроме того, синтаксис Паскаля просто красив, черт побери. Его только надо прочувствовать. Вирт родил шедевр.
Юрий Зотов (2009-11-29 23:31:00) [12]> Alx2 © (29.11.09 21:38) [40]
> Но ведь С++ и Java не требуют объявления своего счетчика
> для каждого цикла.
Не требуют. Но на практике новый счетчик с тем же именем объявляется практически всегда (тем более, что этому способствуют Ctrl+Space в современных средах разработки). На Паскале такое невозможно.
> Alx2 © (29.11.09 22:06) [44]
> Мне кажется, в Паскале однозначность конструкции дает "then".
> В C этого нет. Получается явная недонозначность.
Да. И вместо того, чтобы доработать синтаксис (в Вашем примере - заменить * другим символом, оставив ее только для умножения) взяли - и влепили скобки. Сделали как проще, но не как лучше.
> Alx2 © (29.11.09 22:24) [46]
> finally в стандарте С++ нет, но это не важно.
Я о джаве говорил. Хотя это тоже не важно.
> Но после заключительного catch как тогда сказать где кончился его код?
Если принять такой синтаксис:
<простой_оператор> ::= <оператор_if> | <оператор_while> | ... и т.д.
<список_операторов> ::= <оператор> | <оператор> <список_операторов>
<блок> ::= { <список_операторов> }
<оператор> ::= <простой_оператор> | <блок>
то все становится элементарно просто:
try <список_операторов> finally <список_операторов> catch <оператор>
> jack128_ (29.11.09 22:55) [49]
> по сравнению с function/procedure в паскале - это мелочь ;-)
Жень, я ведь о вызове говорил, а не об объявлении..
> появляется явный признак, что вызвается именно функция,
> а просто переменная копируется.
Жень, я ведь о джаве говорил. Нет там таких переменных.
> ты такой синтаксис хотел бы?? -)
См. чуть выше.
jack128_ (2009-11-29 23:13:00) [13]
> Игорь Шевченко © (29.11.09 23:10) [51]
ну проверь сам..
Игорь Шевченко (2009-11-29 23:10:00) [14]
>
> не придется. область видимости счетчика цикла - сам цикл,
> соответственно для другого цикла можно объявить переменную
> с тем же именем, что и в предыдущем цикле.
Ты бредишь.
jack128_ (2009-11-29 22:57:00) [15]
> разделение модуля на интерфейс и реализацию - безусловно
> плюсы.
вот это кстати - вопрос. Я потихоньку на шарпе пишу - пока не заметил, чтоб отсутствие такого разделения - сильно мешало бы.
jack128_ (2009-11-29 22:55:00) [16]
> А уж если рассматривать циклы, то более громозким скорее
> окажется код на C или Java (где каждый цикл объявляет свой
> счетчик, тогда как в Delphi он может быть общим для нескольких
> циклов).
не придется. область видимости счетчика цикла - сам цикл, соответственно для другого цикла можно объявить переменную с тем же именем, что и в предыдущем цикле.
void Test()
{
for (int i = 0; i<10; i++) {}
for (int i = 0; i<10; i++) {}
}
// касается только с++/с# - что там в джаве - те виднее.
> 1. Вызов функции без параметров. Компилятор и так знает,
> что вызывается функция, и что она без параметров - так
> на фига же ему еще () нужны?
ну по сравнению с function/procedure в паскале - это мелочь ;-) к тому же появляется явный признак, что вызвается именно функция, а просто переменная копируется.
> 3. try {...} catch {...} finally {...};
> Во всех секциях {} - лишние. Синтаксис однозначен и без
> них.
не в всех, а только в блоке try. для катча и файнали - не всегда однозначен.
ты такой синтаксис хотел бы?? -)
try
do_samething(); // здесь мона опускать скобки
catch
exсption_handler(); // здесь мона опускать скобки
finally
{
finally_handler();
}
try
do_samething(); // здесь мона опускать фиг скобки
catch
{
exсpeption_handler(); // а вот тут - нельзя.
}
??
Alx2 (2009-11-29 22:45:00) [17]Игорь Шевченко © (29.11.09 22:32) [47]
Считать минусы языка за какие-то достоинства и подводить под них теоретическую базу - а смысл в этом ?
Мне показалось, что это - ревность. :)
Игорь Шевченко (2009-11-29 22:32:00) [18]Alx2 © (29.11.09 22:00) [43]
> Получается, что Юрий Зотов что-то другое имел в виду?
Придет Юра, расскажет, что он имел в виду.
Я к другому - каждый язык имеет свои плюсы и свои минусы, тем более, если язык достаточно распространен. Считать минусы языка за какие-то достоинства и подводить под них теоретическую базу - а смысл в этом ?
У Паскаля есть плюсы - встроенная в язык работа со строками, строгая проверка типов, разделение модуля на интерфейс и реализацию - безусловно плюсы. Невозможность реализовать итеративный цикл с произвольным началом, условием прекращения и методом итерации - безусловно минус, невозможность локализовать использованием переменных - безусловно минус, невозможность использовать результат операции присваивания - безусловно минус, отсутствие тернарных операторов - опять же, не плюс.
Alx2 (2009-11-29 22:24:00) [19]Юрий Зотов © (28.11.09 22:23) [24]
3. try {...} catch {...} finally {...};
Во всех секциях {} - лишние. Синтаксис однозначен и без них.
finally в стандарте С++ нет, но это не важно. После try, да, трудно примером оправдать скобки. Но после заключительного catch как тогда сказать где кончился его код? В Delphi есть обязательный "end" для этой конструкции, здесь - обязательный составной оператор.
Alx2 (2009-11-29 22:10:00) [20]Юрий Зотов © (28.11.09 22:23) [24]
1. Вызов функции без параметров. Компилятор и так знает, что вызывается функция, и что она без параметров - так на фига же ему еще () нужны?
Например, чтобы отличить адрес (переменную) от вызова по адресу. В Паскале добавлять @, здесь - опускать скобки.
PS
Сорри, что много постов, а не один сводый пост - каждый раз не уверен, что пост последний.