![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
777 |
![]() ![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 19 Пол: Мужской Реальное имя: Сергей Репутация: ![]() ![]() ![]() |
Нужно составить программу во FREE Паскале, которая из текстового файла забирает все имеющиеся в нём Интернет ссылки, и выводит их на экран + сохраняет их в другой текстовый файл! Чесно скажу, я учусь на заочном, второй семестр на занятиях полностью отсутствовал из за работы, и сейчас на работе такой завал, сто вникать в Паскаль просто нет возможности! Пожалуйста, помогите! Что такое программа Паскаль я узнал четыре дня назад, на лабораторной работе по информатике...
|
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Цитата Нужно составить программу во FREE Паскале, которая из текстового файла забирает все имеющиеся в нём Интернет ссылки, и выводит их на экран + сохраняет их в другой текстовый файл Вот в FPC это делается элементарно, как раз:
{$mode objfpc}
uses
classes,
regexpr, strutils;
var
re: TRegExprEngine;
s, subs: AnsiString;
ok: boolean;
index, len: longint;
sL_In, sL_Out: TStringList;
begin
sL_In := TStringList.Create;
sL_Out := TStringList.Create;
try
sL_In.LoadFromFile('test.txt'); // отсюда берем текст
s := sL_In.Text;
ok := GenerateRegExprEngine(
'http://([\w+?\.\w+])+([a-zA-Z0-9\~\!\@\#\$\%\^\&\*\(\)_\-\=\+\\\/\?\.\:\;\''\,]*)?',
[], re
);
if not ok then writeln('error: init regexp')
else
begin
subs := s;
while Length(subs) > 0 do
begin
if RegExprPos(re, PChar(subs), index, len) then
begin
sL_Out.Add(Copy(subs, index + 1, len));
subs := RightStr(subs, Length(subs) - index - len);
end
else
break;
end;
DestroyRegExprEngine(re);
sL_Out.SaveToFile('result.txt'); // сюда записываем все ссылки
end;
finally
sL_Out.Free;
sL_In.Free;
end;
end.
Только непонятно, чем тебе это поможет, ты ж не разберешься, как оно работает, если Паскаль увидел 4 дня назад... |
![]() ![]() |
![]() |
Текстовая версия | 1.08.2025 18:36 |