Помощь новичкам

Кошмар. Сообщения за 2 месяца пропали

2 лайка

Пользователи делятся на тех, кто уже пережил аварию жесткого диска и тех, кому только предстоит узнать, что это такое

Стоимость мероприятий по защите данных не должна превосходить стоимости ущерба от потери этих данных.

2 лайка

Восстановили из бэкапа

Ничего больного. Бывает, это техника. Хотя админ уже восстановили. Спасибо.

Подскажите пожалуйста как в модуле GraphWpf использовать тип линии Pen.Style и заливка Brush.Style, Brush.Hatch? В модуле GraphAbc без проблем!

Нет в GraphWPF такой функциональности. Попробую сделать

Спасибо.

Здравствуйте! Почему у меня при компиляции паскаль ругается на Close Неизвестное имя ‘Close’

**unit** Unit1;

**interface**

**uses** System, System.Drawing, System.Windows.Forms;

**var** f: text;

**type**

Form1 = **class** (Form)

**procedure** button1_Click(sender: Object; e: EventArgs);

{$region FormDesigner}

**internal**

{$resource Unit1.Form1.resources}

{$include Unit1.Form1.inc}

{$endregion FormDesigner}

**public**

**constructor** ;

**begin**

InitializeComponent;

**end** ;

**end** ;

**implementation**

**procedure** Form1.button1_Click(sender: Object; e: EventArgs);

**var**

namef: string;

**begin**

Assign(f, namef);

Rewrite(f);

Writeln(f, 'Строка1');

Writeln(f, 'Строка2');

Сlose();

**end** ;

**end** .

Ну, Close содержит русские буквы…

1 лайк

Прежде всего, отформатируйте код. Для этого перед ним нужно вставить строку, содержащую с первой позиции три обратных апострофа подряд (это клавиша, где русская буква Ё) ``` и такую же строку нужно добавить после завершения кода.

Спасибо! Close исправил, но у меня теперь создается пустой файл. Почему? Writeln в форме на работает?

Ну так а что вы закрываете? Вы не указали какой файл закрыть надо, поэтому берёт следующее ближайшее Close. В контексте формы это закрытие самой формы. А файл так и остался открыт и не сохранён. И затем, при завершении работы программы, освободился до записи содержимого на диск.

Если я ставлю Close(f), то выдает ошибку “Неверное количество параметров процедуры”.

Ну так надо с этим разбираться, а не пытаться делать рандомные изменения, вроде убирания передачи файла который надо закрыть в закрывающую процедуру.

Для начала удостоверьтесь что у вас последняя версия. Обновляться это сюда:
http://pascalabc.net/ssyilki-dlya-skachivaniya

Далее - вставьте код нормально, так чтоб его можно было сразу скопировать, запустить, и увидеть то же поведение что у вас.
И желательно найти минимальный код который будет говорить что не нашёл такую Close.

Попробуйте CloseFile

Спасибо с CloseFile получилось.

Всем привет! Подскажите, пожалуйста, есть ли встроенная функция для подсчёта количества непересекающихся вхождений подстроки в строку. Например, для подстроки ‘ABA’ и строки ‘ABABA’ возвращающая 1?

Понятно, что можно эту функцию вручную описать с использованием, например, Pos, но мой вопрос как раз в том, есть ли втроенная, готовая функция?

Знаю, что есть метод CountOf для строковых переменных, но он считает только количество вхождений односимвольных строк (или точнее char?) в строку.

Заранее спасибо!

##
var s := 'ABABA';
s.IndicesOf('ABA').Count.Print

Вызов со вторым параметром IndicesOf('ABA', True) вернет количество вхождений с учетом пересечений. Реализация - КМП-алгоритм, так что эффективно работает и для строк с безумной длиной.

3 лайка

Спасибо! Супер! :+1:

Пожалуйста. Еще можно написать регулярное выражение, найти все его вхождения посредством MatchValues и подсчитать их количество. Для коротких строк может оказаться наиболее быстрым решением.

1 лайк