Помощь - Поиск - Пользователи - Календарь
Полная версия: Помогите с программкой
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
777
Нужно составить программу во FREE Паскале, которая из текстового файла забирает все имеющиеся в нём Интернет ссылки, и выводит их на экран + сохраняет их в другой текстовый файл! Чесно скажу, я учусь на заочном, второй семестр на занятиях полностью отсутствовал из за работы, и сейчас на работе такой завал, сто вникать в Паскаль просто нет возможности! Пожалуйста, помогите! Что такое программа Паскаль я узнал четыре дня назад, на лабораторной работе по информатике...
volvo
Цитата
Нужно составить программу во 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 дня назад...
777
Огромное спасибо!!! Мне это поможет лишь тем, что будет допуск к экзамену!!! Вечером дома попробую...
Чем я Вам обязан???
777
Записал листинг в программу, всё как Вы написали, за исключением того, что на русском языке -
- отсюда берем текст
- сюда записываем все ссылки ("//" -оставил на месте)
... компилятор пишет:
(32,25) Error: Identifier not found "Copi"
(33,39) Error: Identifier not found "Lenght"
(46,4) Fatal: There were 2 errors compiling module, stopping
(0) Fatal: Compilation aborted
volvo
Цитата
Error: Identifier not found "Copi"
У меня НЕТ такого идентификатора. Есть Copy
Цитата
Error: Identifier not found "Lenght"
Такого тоже нет в моем коде, ты поменял местами 2 последних символа. Неужели это ТАК СЛОЖНО, не перепечатать, а потом обвинять в чем-то, а СКОПИРОВАТЬ (тем более, что FPC имеет пункт меню Edit -> Paste from Windows)... Если б оно не компилировалось или не работало - я бы это не выложил, наверное?

Вот так отбивается всякая охота кому-то помогать. Спасибо за внимание... Дальше - без меня...
777
Зачем же Вы так резко, я ведь не в претезии написал, а если у меня с компьютером действительно отношения напряжённые... я на русском то пачатаю - черепаха быстрее ходит. Я к вам как к специалистам и обратился! Извините что потревожил, и огромное спасибо что помогли. Честное слово - не хотел обидеть... unsure.gif
Lapp
Цитата(777 @ 28.01.2010 0:10) *
Зачем же Вы так резко, я ведь не в претезии написал, а если у меня с компьютером действительно отношения напряжённые... я на русском то пачатаю - черепаха быстрее ходит. Я к вам как к специалистам и обратился! Извините что потревожил, и огромное спасибо что помогли. Честное слово - не хотел обидеть... unsure.gif
И ты тоже не обижайся. Ты просто (случайно) бросил программеру самое тяжкое обвинение: что он тебе дал нерабочую прогу. Постарайся быть внимательнее.
Заходи, поможем.

Кстати, набирать код (а не копировать) - это крайне полезно для новичков, я считаю. Конечно, нужно понимать, что при этом возможны опечатки, и проверять на них..
777
Я ни в коем случае не хотел никого обвинять, и в мыслях то не было. Просто я очень старался вбить "один в один", однако при первой проверке вылезло ошибок восемь, около часа я вычищал свои косяки, но вот на последних застопорился... не зная что делать опять пришёл за советом, а в результате получилось то что получилось... huh.gif
Текст я не копировал, а вбивал в ручную. Я бы и рад был скопировать, да вот только у меня это не получилось...
А на данный момент я исправил то что мне было сказано, но...
программа проверку проходит, только сразу закрывается с "exitcode = 217", файл .exe тоже мелькнёт и пропадает.... такие вот дела...
А по поводу "не обижайся" - я не обижаюсь, неначто, просто не совсем удобно что я другого обидел...
... Понимаете, если курящий человек идёт к доктору, то ведь доктор (я имею ввиду нормального доктора) всё равно будет его лечить, потому что кроме врача этого никто профессионально не сделает, не смотря на то, что больной сам себя убивает табаком...
Lapp
Цитата(777 @ 29.01.2010 0:22) *
А на данный момент я исправил то что мне было сказано, но...
программа проверку проходит, только сразу закрывается с "exitcode = 217", файл .exe тоже мелькнёт и пропадает....
Послушай, 777, к сожалению, единственный способ нам тебе помочь - это увидеть реалный код, который ты компилишь. Баста.

Давай обсудим, что у тебя за трудности с копированием. Ты скажи, как ты пытался, а я заранее попробую предложить что-то от себя.
Способ, который использую я: с помощью файлового менеджера FAR. Он имеет следующие преимущества:
- бесплатный для русскоговорящих;
- встроенная поддержка нужных кодировок: DOS и Windows;
- встроенный редактор.

Задача: скопировать текст проги с форума на комп.
Ты заходишь в редактор (shift-F4, задать имя файла с расширением pas), переходишь в кодировку DOS (F8), копируешь нужный фрагмент (Ctrl-C -> Ctrl-V) и сохраняешь файл (F2). Все, дальше ты можешь открывать этот файл в FreePascal.

Задача: скопировать прогу с компа на Форум.
Открываешь файл в FAR (F4), добиваешься кнопкой F8 правильного отображения русских букв - и все те же ctrl-C -> ctrl-V

Взять FAR можно тут: http://farmanager.com/index.php?l=ru .

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

Как только у тебя появится возможность показать ТО, что ты запускаешь, мы продолжим разговор. Идет?
Если у тебя есть другие предложения, я готов их выслушать.
volvo
Цитата
Текст я не копировал, а вбивал в ручную. Я бы и рад был скопировать, да вот только у меня это не получилось...
Извини, не получилось ЧТО? Выделить текст программы на форуме, нажать Ctrl+C, перейти в окно FPC, и в меню Edit выбрать "Paste from Windows"?

Цитата
программа проверку проходит, только сразу закрывается с "exitcode = 217"
Стоп, стоп... Exitcode 217 - это необработанное исключение. Программа запустилась, где-то что-то пошло не так, было выброшено исключение, но вот незадача - оно выбросилось НЕ ВНУТРИ блока try/except... Что могло пойти не так в этой программе - не представляю. Файл с именем "test.txt" на диске присутствует? Права на запись в папку (если ты не с привилегиями администратора работаешь)? Где именно ты разместил свои исходник, тоже уточни (особенно, если не под админом).

Теперь вот об этом:
Цитата
файл .exe тоже мелькнёт и пропадает.... такие вот дела...
blink.gif Откуда у тебя пропадает EXE? По идее должен в текущую папку (где лежит исходник программы, экзешник и text.txt) добавиться еще файл result.txt, содержащий все ссылки. Можно подробнее, что именно и откуда пропадает?
777
Цитата(Lapp @ 29.01.2010 2:12) *

Послушай, 777, к сожалению, единственный способ нам тебе помочь - это увидеть реалный код, который ты компилишь. Баста.


Добрый вечер всем! Скачал я ФАР, всё на английском, русский установить у меня не получилось. тыкал кнопки на сколько у меня хватает знаний в английском... в общем на Ваше обозрение что у меня получилось:
Program DZ;
{$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.

Но это ещё не всё!!!!!
Я может выразился не совсем понятно, когда описывал программу, но из сообщения VOLVO я понял что должен
быть уже заранее заготовлен тестовый файл в этой же дирректории что и .ехе,
а по условию задания: 1.) путь к тестироваему файлу должен задаваться по запросу программы, 2) затем пользователь прописывает этот путь, 3.) программа показывает найденные в файле ссылки, 4.) пользователь прописывает куда сохранить и как назвать уже другой файл только с одними ссылками!
volvo
Цитата
а по условию задания:
А ты это условие ПРИВЕЛ раньше? Здесь что, форум телепатов, чтобы знать, что там у тебя в условии?

Не с того начинаешь. Ты для начала проверь, работает ли у тебя вообще программа. Запихни тестируемый файл в ту же папку, где EXE и проверь, выполняет ли программа то, что от нее требуется. Если выполняет - тогда уже будешь продвигаться дальше, и "навешивать" нужный тебе интерфейс.

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

Цитата
в общем на Ваше обозрение что у меня получилось:
А чего на наше-то? Ты у себя запусти. У меня и мой вариант работает...
777
Цитата(volvo @ 29.01.2010 5:06) *

Извини, не получилось ЧТО? Выделить текст программы на форуме, нажать Ctrl+C, перейти в окно FPC, и в меню Edit выбрать "Paste from Windows"?

Стоп, стоп... Exitcode 217 - это необработанное исключение. Программа запустилась, где-то что-то пошло не так, было выброшено исключение, но вот незадача - оно выбросилось НЕ ВНУТРИ блока try/except... Что могло пойти не так в этой программе - не представляю. Файл с именем "test.txt" на диске присутствует? Права на запись в папку (если ты не с привилегиями администратора работаешь)? Где именно ты разместил свои исходник, тоже уточни (особенно, если не под админом).

Теперь вот об этом: blink.gif Откуда у тебя пропадает EXE? По идее должен в текущую папку (где лежит исходник программы, экзешник и text.txt) добавиться еще файл result.txt, содержащий все ссылки. Можно подробнее, что именно и откуда пропадает?

Дело в том, что я знаю кнопку просто "Paste", но она в этом случае почему то не активна, по этому и копировать у меня не получалось, а вот для чего кнопка "Paste from Windows" я не знал... увы.
Исходного тестового файла конечно же нет, так как мы наверное друг друга изначально не поняли - тестируемый файл должен выбираться пользователем, прописывая путь к нему, так же как и задаваться файл сохранённый (имя и путь)... sad.gif

Добавлено через 11 мин.
Цитата(volvo @ 29.01.2010 23:28) *

А ты это условие ПРИВЕЛ раньше? Здесь что, форум телепатов, чтобы знать, что там у тебя в условии?

Не с того начинаешь. Ты для начала проверь, работает ли у тебя вообще программа. Запихни тестируемый файл в ту же папку, где EXE и проверь, выполняет ли программа то, что от нее требуется. Если выполняет - тогда уже будешь продвигаться дальше, и "навешивать" нужный тебе интерфейс.

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

А чего на наше-то? Ты у себя запусти. У меня и мой вариант работает...

Вы извините конечно, но с Вами диалога не получается, слишком много в Вас Вашего Я! Да, Вы мастер своего дела, наверное... - не мне судить! В свою очередь Я Вам торжественно обещаю (жаль что доказать ничем не смогу) что НЕ НАРУШУ ВАШИХ АВТОРСКИХ ПРАВ, и НЕ БУДУ ЗАНИМАТЬСЯ ПЛАГИАТОМ!!! эта программа так как она есть будет сейчас удалена с моего компьютера. Ещё раз извините за беспокойство, и прошу не судить обо всех по МНЕ!!!
Помогайте другим - это всё равно рано или поздно зачтётся...
Lapp
777, пожалуйста, используй тэги при публикации кода (выделить код, кликнуть с меню CODE над окном ввода и выбрать нужный пункт)

Добавлено через 10 мин.
777, зря ты так..
volvo ничего подобного не имел в виду. Мегабайты его кода лежат в свободном доступе, все и учатся на них, и используют для дела. Не понимаю, что тебя заставило так подумать, но лучше бы ты отказался от своих слов и извинился.. Что тебя задело? Я тебе один раз уже пытался сказать корректно: volvo не любит непонимания простых вещей (уж не знаю, как корректнее сказать) и еще когда условие изменяют по ходу решения. Не раздражай его глупыми действиями - и все будет ок.

volvo, давай я поработаю с этим юзером, ладно? Так будет лучше для всех, думаю. Ок? smile.gif

Итак, 777, если ты согласен, давай начнем с того, что ты опишешь текущий вариант условия по возможности полно (но не до абсурда). Приведешь текущий вариант проги (в тегах) и скажешь, что в нем плохо и что ты бы хотел. Годится так?
777
Цитата(Lapp @ 29.01.2010 23:41) *

777, пожалуйста, используй тэги при публикации кода (выделить код, кликнуть с меню CODE над окном ввода и выбрать нужный пункт)

Код
Я сейчас нажал код (#), но честное слово, я не понял что я сделал, и в каких случаях эно нужно делать... сейчас снова нажму (#)


Добавлено через 14 мин.
Цитата(777 @ 29.01.2010 23:52) *

Код
Я сейчас нажал код (#), но честное слово, я не понял что я сделал, и в каких случаях эно нужно делать... сейчас снова нажму (#)


Для начала я теперь попробую восстановить программу из оставшегося текстового файла, затем если всё вернётся на круги своя, я создам тестовый файл, затем если всё будет нормально работать, посмотрю как это будет выглядеть, но на это мне потребуется немного времени smile.gif , а так как мозги у меня уже вскипели, то это будет завтра, иначе я сейчас такого по наворочаю... страшно представить. Экзамен у меня всё равно уже провален, так что это теперь просто дело до ума довести, и может быть сравнив два варианта, понять хоть как нибудь, как это делается и как работает... если заработает (У МЕНЯ!)

Добавлено через 2 мин.
Цитата(Lapp @ 29.01.2010 23:41) *

777, пожалуйста, используй тэги при публикации кода (выделить код, кликнуть с меню CODE над окном ввода и выбрать нужный пункт)

Добавлено через 10 мин.
777, зря ты так..
volvo ничего подобного не имел в виду. Мегабайты его кода лежат в свободном доступе, все и учатся на них, и используют для дела. Не понимаю, что тебя заставило так подумать, но лучше бы ты отказался от своих слов и извинился.. Что тебя задело? Я тебе один раз уже пытался сказать корректно: volvo не любит непонимания простых вещей (уж не знаю, как корректнее сказать) и еще когда условие изменяют по ходу решения. Не раздражай его глупыми действиями - и все будет ок.

volvo, давай я поработаю с этим юзером, ладно? Так будет лучше для всех, думаю. Ок? smile.gif

Итак, 777, если ты согласен, давай начнем с того, что ты опишешь текущий вариант условия по возможности полно (но не до абсурда). Приведешь текущий вариант проги (в тегах) и скажешь, что в нем плохо и что ты бы хотел. Годится так?

...я по моему ответ не в то окошко запесочил - мозги скрючились уже - прошу меня простить...
Lapp
Цитата(777 @ 29.01.2010 22:52) *
Я сейчас нажал код (#), но честное слово, я не понял что я сделал, и в каких случаях эно нужно делать... сейчас снова нажму (#)

Объясняю подробнее.
Тэги - это специальные маркеры текста (команды форматирования), которые меняют режим просмотра. Они обычно заключаются в скобочки (в данном случае - квадратные: [] )
Есть тэги открывающие и закрывающие (не всегда).
Закрывающий тэг начинается с символа / (после скобки).
Тэги не показываются при показе текста.

Кодом называется программный текст на языке прогрммировани (Паскаль, например).

Пример (честный) я прямо тут написать не могу, потому что он будет интерпретирован и спрятан. В идущем ниже примере я заменю латинскую букву "o" на русскую "о". Тогда тэг не сработает и будет виден (а текст не будет отформатирован).

[cоde=pas]program Aaa;
var
b: integer;
begin
ReadLn(b);
WriteLn(b)
end.[/cоde]
Помни, что ТУТ буква "о" в слове code - неправильная! Когда будешь набирать тэг - не копируй отсюда.

Тэги можно набрать вручную, они будут работать. Но для удобства есть кнопки над формой ввода мессаджа.
Чтобы заключить код в тэги, нужно выделить его (мышью или стрелками с шифтом), потом кликнуть в меню CODE над формой ввода, бывадет менюшка, в ней выбрать нужный пункт (Паскаль). Ты увидишь, что тэги встанут по краям кода.
Попробуй, пожалуйста.

Также есть тэги для цвета текста, жирного шрифта и т.п.
777
Цитата(Lapp @ 29.01.2010 23:41) *

777, пожалуйста, используй тэги при публикации кода (выделить код, кликнуть с меню CODE над окном ввода и выбрать нужный пункт)

Добавлено через 10 мин.
777, зря ты так..
volvo ничего подобного не имел в виду. Мегабайты его кода лежат в свободном доступе, все и учатся на них, и используют для дела. Не понимаю, что тебя заставило так подумать, но лучше бы ты отказался от своих слов и извинился.. Что тебя задело? Я тебе один раз уже пытался сказать корректно: volvo не любит непонимания простых вещей (уж не знаю, как корректнее сказать) и еще когда условие изменяют по ходу решения. Не раздражай его глупыми действиями - и все будет ок.

volvo, давай я поработаю с этим юзером, ладно? Так будет лучше для всех, думаю. Ок? smile.gif

Итак, 777, если ты согласен, давай начнем с того, что ты опишешь текущий вариант условия по возможности полно (но не до абсурда). Приведешь текущий вариант проги (в тегах) и скажешь, что в нем плохо и что ты бы хотел. Годится так?

А по поводу <непонимания простых вещей> - почему он сам не может понять, что для одних это простая вещь, а для других та же самая вещь - "тёмный лес", "джунгли" и без проводника не выбраться... и я тоже повторюсь - как будет выглядеть, когда врач реанимации будет читать, умирающему от инфаркта больному, лекцию о вреде табака и алкоголя, вместо того чтобы начать уже операцию... - я думаю это не очень хорошо, но всё равно У ВСЕХ ПРОШУ ИЗВИНЕНИЯ если чем то обидел...

Добавлено через 5 мин.
Цитата(Lapp @ 30.01.2010 0:09) *

Объясняю подробнее.
Тэги - это специальные маркеры текста (команды форматирования), которые меняют режим просмотра. Они обычно заключаются в скобочки (в данном случае - квадратные: [] )
Есть тэги открывающие и закрывающие (не всегда).
Закрывающий тэг начинается с символа / (после скобки).
Тэги не показываются при показе текста.

Кодом называется программный текст на языке прогрммировани (Паскаль, например).

Пример (честный) я прямо тут написать не могу, потому что он будет интерпретирован и спрятан. В идущем ниже примере я заменю латинскую букву "o" на русскую "о". Тогда тэг не сработает и будет виден (а текст не будет отформатирован).

[cоde=pas]program Aaa;
var
b: integer;
begin
ReadLn(b);
WriteLn(b)
end.[/cоde]
Помни, что ТУТ буква "о" в слове code - неправильная! Когда будешь набирать тэг - не копируй отсюда.

Тэги можно набрать вручную, они будут работать. Но для удобства есть кнопки над формой ввода мессаджа.
Чтобы заключить код в тэги, нужно выделить его (мышью или стрелками с шифтом), потом кликнуть в меню CODE над формой ввода, бывадет менюшка, в ней выбрать нужный пункт (Паскаль). Ты увидишь, что тэги встанут по краям кода.
Попробуй, пожалуйста.

Также есть тэги для цвета текста, жирного шрифта и т.п.

я обязательно попробую, но не сегодня, сейчас я выхожу...
До свидания, спокойной ночи!!!
Lapp
Цитата(777 @ 29.01.2010 23:23) *
по поводу <непонимания простых вещей> - почему он сам не может понять, что для одних это простая вещь, а для других та же самая вещь - "тёмный лес", "джунгли" и без проводника не выбраться... и я тоже повторюсь - как будет выглядеть, когда врач реанимации будет читать, умирающему от инфаркта больному, лекцию о вреде табака и алкоголя, вместо того чтобы начать уже операцию...
...
я обязательно попробую, но не сегодня, сейчас я выхожу...
До свидания, спокойной ночи!!!
Поверь мне, иногда нежелание пошевелить лишний раз пальцем довольно трудно отличить от элементарного непонимания. Тем более, твоя задача не выглядит как самая начальная - отсюда первое суждение об уровне юзера. Кстати, может, разбить ее на кусочки? Это было бы полезно.

Давай, приходи, спокойной ночи.
777
Цитата(Lapp @ 30.01.2010 0:44) *

Поверь мне, иногда нежелание пошевелить лишний раз пальцем довольно трудно отличить от элементарного непонимания. Тем более, твоя задача не выглядит как самая начальная - отсюда первое суждение об уровне юзера. Кстати, может, разбить ее на кусочки? Это было бы полезно.

Давай, приходи, спокойной ночи.

Добрый вечер Lapp! Экзамен по информатике прошёл... увы, пришлось его купить... почему меня это не совсем устраивает - потому что в этом же вузе учится мой старший сын - лоботряс в отношении учёбы,очень хотелось утереть ему нос, и мня вовсе не трогает метод как это сделать!!! Ну вот, давайте с начала истории появления меня у Вас на Форуме... Мне 42, государственный служащий в должности руководителя среднего звена. эта должность подразумевает высшее образование, которого у меня нет. меня все просто достали с этим образованием... и вот я студент заочник одного из вузов. поступил на самую невостребованную специальность с минимальным проходным баллом (0,45 - катастрофический недобор) на бюджет, только бы получить корочки. так что в любом случае, даже если я не закончу институт - "корову я не проиграю"!
Сфера моей деятельности очень далека от программирования, а с компьютером сталкиваюсь только в программах word и Excel и не часто... во втором семестре, из - за работы, я не посетил ни одного занятия, включая и информатику... Сессию закрыл через хороших знакомых, которые с меня никакой оплаты за это просто не взяли, и теперь к ним подходить не совсем удобно, не люблю оставаться должником... Так вот, последствия моего отсутствия на занятиях не заставили долго ждать... информатика, домашнее задание (как выяснилось)... Что же делать, подумал я, и набрал в поисковике форум специалистов по Паскалю - так я появился у Вас на Форуме. Дальше - буду ли я заниматься программированием - это вряд ли, интересен ли мне язык программиривания ПАСКАЛЬ - нет, зачем теперь, когда экзамен уже куплен, я появился здесь на форуме - довести до логического завершения начатое дело, познав нечто новое для общего развития (кто знает что ждёт нас в жизни)...
когда я зашёл на форум, я не скрывал и не маскировал своих целей, на вопрос VOLVO - чем мне всё это поможет, я открыто сказал - что мне просто нужен допуск к экзамену, а программирование я абсолютно не знаю, и сам разобраться просто не в состоянии... Теперь, про условие задания (промелькнуло, что я его меняю по ходу решения)... Если внимательно почитать самое первое моё сообщение: "Нужно составить программу во FREE Паскале, которая из текстового файла забирает все имеющиеся в нём Интернет ссылки, и выводит их на экран + сохраняет их в другой текстовый файл! Чесно скажу, я учусь на заочном, второй семестр на занятиях полностью отсутствовал из за работы, и сейчас на работе такой завал, сто вникать в Паскаль просто нет возможности! Пожалуйста, помогите! Что такое программа Паскаль я узнал четыре дня назад, на лабораторной работе по информатике..." , то там моя ошибка состояла в том, что я не оговорил что файл имеющий ссылки и файл сохраняемый должны выбираться пользователем, а что все найденные ссылки должны быть выведены на экран - это изначально было оговорено, но и хочу заметить что не оговаривалось название файлов (test и save) и тем более что они уже заложены в программе...
Что я полный чайник - я этого не скрываю и не стесняюсь, не всем дано...
сейчас я попытаюсь загрузить текст программы используя коды, и прикреплю всё что у меня получилось используя тестовый файл - всё это далеко от поставленной задачи - ссылки на экран не вывелись, в сохраненном файле ссылки далеко не все...
Program DZ;
{$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.

Надеюсь что на этот раз я всё правильно сделал, человек - существо обучаемое, просто учитель нужен...
Теперь тебе решать - продолжать диалог или не продолжать... а своих целей я никогда не скрывал - на тот момент мне был нужен готовый текст программы, теперь - довести дело до конца, если получится, то попытаться понять как это работает, и для общего развития...
Lapp
Цитата(777 @ 31.01.2010 19:35) *
довести дело до конца, если получится, то попытаться понять как это работает, и для общего развития...

Сергей, если нужна помощь в понимании или обучении - всегда пожалуйста. Неважно, какая конечная цель и т.п. Я или еще кто-то ответит на вопросы, если сможет. Конечно, если нет стимула применить в работе, то приходится сомневаться в успехе и целесообразности, но это все субъективно. Для мозгов, конечно, это хорошая разминка, особенно в 42. Самое сложное - начальный импульс.

Я чуть позже сегодня посмотрю твой код, сейчас не могу. Но в целом все то же мнение остается: лучше начинать с отдельных задач попроще. В сложной задаче все не в два раза сложнее, а на порядок. И чтобы уделить достаточное внимание вершнему уровню, нужно чтоб нижний отскакивал от зубов. Понимаешь?
Ладно, до встречи.

Добавлено через 18 мин.
Просьба на форуме обращаться все же ко всем участникам.. То есть обращаться можно и к кому-то, но приветствовать все же всех.
777
Цитата(Lapp @ 1.02.2010 2:04) *

Сергей, если нужна помощь в понимании или обучении - всегда пожалуйста. Неважно, какая конечная цель и т.п. Я или еще кто-то ответит на вопросы, если сможет. Конечно, если нет стимула применить в работе, то приходится сомневаться в успехе и целесообразности, но это все субъективно. Для мозгов, конечно, это хорошая разминка, особенно в 42. Самое сложное - начальный импульс.

Я чуть позже сегодня посмотрю твой код, сейчас не могу. Но в целом все то же мнение остается: лучше начинать с отдельных задач попроще. В сложной задаче все не в два раза сложнее, а на порядок. И чтобы уделить достаточное внимание вершнему уровню, нужно чтоб нижний отскакивал от зубов. Понимаешь?
Ладно, до встречи.

Добавлено через 18 мин.
Просьба на форуме обращаться все же ко всем участникам.. То есть обращаться можно и к кому-то, но приветствовать все же всех.

Если можно и если не сложно, напишите пожалуйста на каждой строчке кода что она означает... (это я такое же сообщение оставил забыв зайти под своим логином)
volvo
Цитата
всё это далеко от поставленной задачи - ссылки на экран не вывелись, в сохраненном файле ссылки далеко не все...
То, что ты говоришь - еще дальше от правды. Чтобы нечто могло считаться ссылкой, оно должно начинаться с названия протокола: ftp:// или http:// (ну, если еще несколько, но их здесь касаться не будем).

Строго говоря - www.laser-plastic.kz ссылкой не считается. Вот тебе и доказательство: скрипт форума, автоматически конвертирующий текст в URL (если он таковым является. Пример: http://google.com , набираю чистым текстом, что ты видишь? Правильно, кликабельную ссылку. Значит ЭТО может считаться корректным адресом) оставил этот ЛазерПластик без изменений... Так что неплохо бы ко всему еще и уточнить, что именно надо считать "интернет-ссылкой"

Что касается "Не выведено на экран" - да, это я ошибся. Достаточно добавить еще пару строк кода. Если (и когда) ты уточнишь, что есть ссылка - я дополню программу, и добавлю этот функционал.

Добавлено через 12 мин.
P.S. Кстати, чтоб потом лишних вопросов не было: у тебя есть одинаковые ссылки (тот же ЛазерПластик встречается больше одного раза в тексте). С ними что делать? Два раза выводить, или ссылка должна быть уникальной?
777
Цитата(volvo @ 1.02.2010 10:42) *

То, что ты говоришь - еще дальше от правды. Чтобы нечто могло считаться ссылкой, оно должно начинаться с названия протокола: ftp:// или http:// (ну, если еще несколько, но их здесь касаться не будем).

Строго говоря - www.laser-plastic.kz ссылкой не считается. Вот тебе и доказательство: скрипт форума, автоматически конвертирующий текст в URL (если он таковым является. Пример: http://google.com , набираю чистым текстом, что ты видишь? Правильно, кликабельную ссылку. Значит ЭТО может считаться корректным адресом) оставил этот ЛазерПластик без изменений... Так что неплохо бы ко всему еще и уточнить, что именно надо считать "интернет-ссылкой"

Что касается "Не выведено на экран" - да, это я ошибся. Достаточно добавить еще пару строк кода. Если (и когда) ты уточнишь, что есть ссылка - я дополню программу, и добавлю этот функционал.

Добрый день всем! (если он конечно у всех добрый) VOLVO! ещё раз прошу меня извинить, если я изначально чем то Вас задел или обидел, но на самом деле у меняи выслях такого небыло...
Если Вы ещё до сих пор не отошли от общения со мной, то вернёмся к условию задачи:
запустив файл .exe, программа должна: 1.) попросить указать путь к файлу который должен быть проанализирован, 2.) если файл имеет интернет ссылки, то программа должна отобразить их на экране, 3.) отображённые ссылки программа должна попросить указать путь куда сохранить и как назвать файл со ссыками.
Далее, что считать ссылками... в задании это не оговаривалось, да это наверное и не суть важно, пусть это будет так как Вы сказали, просто в моём понимании "интернет ссылки" - это то, что включает в себя: http://, https://, ftp://, www., @, .ru, .com, .net, .org, .ua, .kz, и т.д - ещё раз оговорюсь, то, что думаю я по поводу что считать ссылками - это не есть условие задачи, пусть ссылки будут именно те, что назвали Вы, просто мне нужно будет понять как это задаётся...
и мне очень хочется повторить свою просьбочку, написать что каждая строка в программе обозначает. Я готов рассмотреть, как предложил Lapp, сначала разбить программу на части, если так проще понять...
В задании не оговаривалось что делать с двойными ссылками, я думаю можно оставить как проще, хотя было бы интересно узнать альтернативу простому.
volvo
Цитата
мне очень хочется повторить свою просьбочку, написать что каждая строка в программе обозначает. Я готов рассмотреть, как предложил Lapp, сначала разбить программу на части, если так проще понять...
Смотри, я прокомментировал каждую строку своего кода, подробно прокомментировал... Попробуй разобраться, если что не понятно - то тогда уже можно разбить программу на подзадачи...

Итак: вот прокомментированный код (в аттаче - тот же код, но без комментариев, можно сохранить файл к себе на диск, откомпилировать и проверить). У меня в программе ссылки вида www.google.com дополняются префиксом http://, а не https и не ftp.
Program DZ;
{$mode objfpc}
uses
classes,
regexpr, sysutils, strutils;

// Ну, описания переменных, используемых в программе - это понятно...
var
re: TRegExprEngine;
s, subs, sLink, f_n: AnsiString;
ok: boolean;
index, len: longint;

sL_In, sL_Out: TStringList;

begin
// Итак, начинаем:

// Первым делом создаем два StringList-а (есть в ObjectPascal-е
// такой удобны для хранения строк класс) - первый для исходного
// текста, во второй "будем бросать кости", в смысле, выдернутые
// из текста ссылки
sL_In := TStringList.Create;
sL_Out := TStringList.Create;

// Теперь в защищенном блоке (даже если произойдет какая-нибудь ошибка,
// удалить-то созданные StringList-ы все равно надо), поэтому код, который
// может вызвать ошибку, пишем в секции try (попробуем выполнить, в смысле),
// а то, что ГАРАНТИРОВАННО должно произойти, даже если программа завершится
// с ошибкой - в секции finally
try
// Что же мы тут делаем?
// Для начала просим пользователя ввести название файла, который
// будем обрабатывать:
write('Enter file name: '); readln(f_n);
// Теперь заталкиваем содержимое этого файла в первый StringList...
sL_In.LoadFromFile(f_n);

// А вот теперь - внимательно. Это важный момент: берем то, что прочитали
// (sL_In.Text), заменяем в этом тексте "www." на "http://www." (будем
// надеяться, что ссылок на ww2.что_то в файле нет, только www.). Флажок
// rfReplaceAll заставляет функцию StringReplace изменить все вхождения,
// а не завершить выполнение после первой замены.

// Но стоп. Что же у нас получилось? Если адрес был записан в виде
// www.site.com, то все в порядке, будет добавлен протокол и получится
// httр://www.site.com, если сайт был записан как httр://site.com - тоже
// будет все в порядке, www не присутствует, ничего вообще меняться
// не будет. А что, если httр://www.site.com? Ведь после изменения у нас
// выйдет вот такой бред: httр://httр://www.site.com !!!

// Для этого добавлена в следующей строке еще одна замена: если есть
// дублирование протокола "http://http://", то исправим его, чтоб осталось
// "http://" один раз.
s := StringReplace(
StringReplace(sL_In.Text, 'www.', 'http://www.', [rfReplaceAll]),
'http://http://', 'http://', [rfReplaceAll]
);

// Дальше - генерируем новое регулярное выражение, которое в заданном тексте
// будет искать определенную последовательность символов. Я здесь задал такое
// выражение, которое будет искать правильно оформленную http:// -ссылку
ok := GenerateRegExprEngine('http://([\w+?\.\w+])+([a-zA-z0-9\~\!\@\#\$\%\^\&\*\(\)\_\-\=\+\\\/\?\.\:\;\"\,]*)?',[],re);

// В переменной Ok вернулся признак удачного создания регулярки.
// Если там false - то сообщаем о неудаче и заканчиваем работу
if not ok then writeln('error: init regexp')
else
begin
// Если пришли сюда - значит, регулярное выражение было создано. Идем дальше.

// Ну, вот тут я просто перестраховался, работал с копией текста
// из файла (subs), а не с самим текстом (s).
subs := s;

// До тех пор, пока есть что проверять (пока текст не обработан полностью)
while Length (subs) > 0 do
begin
// Натравливаем на этот текст регулярку. Если последовательность символов,
// которая является ссылкой, обнаружена - то в index вернется индекс
// её первого символа, а в len - длинна.
if RegExprPos(re, PChar(subs), index, len) then
begin
// Угу, ссылка найдена. Копируем ее из текста в отдельную переменную
sLink := Copy(subs, index + 1, len);
// Проверяем, есть ли она уже в списке ссылок?
// Если нету - то вернется (-1)
if sL_Out.IndexOf(sLink) = -1 then
begin
// Ссылка встетилась впервые, добавляем ее к списку ссылок
// и, заодно, выводим на экран.
sL_Out.Add(sLink);
writeln(sLink);
end;

// А теперь - просто, берем и удаляем из "рабочего" текста кусок,
// в котором только что была найдена ссылка, чтоб в нём же больше
// не искать... Таким образом "продвигаемся" вперед по тексту -
// удаляем из начала => продвигаемся к концу
subs := RightStr(subs, Length(subs) - index - len);
end

// Стоп. В оставшемся куске текста регулярка не нашла ссылку...
// Выходим из цикла
else
break;
end;

// Всё, цикл поиска ссылок закончился. Что осталось сделать?
// Правильно, удалить регулярку...
DestroyRegExprEngine(re);

// ..., спросить у пользователя куда сохранять файл с результатами,
// и сохранить их, собственно:
write('File name to store results: '); readln(f_n);
sL_Out.SaveToFile(f_n);
end;

finally
// Это будет выполнено, либо когда все ссылки найдены и все
// завершилось благополучно, либо при первой же ошибке при выполнении
// программы.
sL_Out.Free;
sL_In.Free;
end;

// Всё, миссия завершена, выходим...
end.

Цитата
В задании не оговаривалось что делать с двойными ссылками, я думаю можно оставить как проще, хотя было бы интересно узнать альтернативу простому.
Если не обязательно обеспечивать уникальность ссылки - то условие
 if sL_Out.IndexOf(sLink) = -1 then // строка 88
можно просто убрать...
777
Цитата(volvo @ 1.02.2010 12:25) *

Смотри, я прокомментировал каждую строку своего кода, подробно прокомментировал... Попробуй разобраться, если что не понятно - то тогда уже можно разбить программу на подзадачи...

Даааааа!!! shok.gif
Я вечером попытаюсь это как-то переварить blink.gif
Ничего, если у меня будет очень много тупых вопросов, откровенно тупых, но без ответов на которые мне будет ещё сложнее???
volvo
Если возникают вопросы - уже хорошо... Гораздо хуже - если человек придет, молча скопирует и уйдет.

Все вопросы, которые будут - задавай. Для того форум и существует, чтоб помочь разобраться.
Lapp
Цитата(volvo @ 1.02.2010 13:07) *
Если возникают вопросы - уже хорошо... Гораздо хуже - если человек придет, молча скопирует и уйдет.
на 200% согласен )).
Я очень рад, что тема продвинулась. volvo, спасибо, я вчера немного замотался в разъездах.
2 777: надеюсь, твой пыл не иссякнет вскоре smile.gif. Не стесняйся, ЛЮБЫЕ вопросы - это хорошо.

777
Цитата(volvo @ 1.02.2010 14:07) *

Все вопросы, которые будут - задавай.

Цитата
// Ну, описания переменных, используемых в программе - это понятно...

Начнём с того, что мне пока вообще сложно что то понять, так как это всё для меня ново!!! Из всего что есть в программе мне знакомо только Var - после этого слова идёт перечисление переменных, begin - выполнить, где перечисляются команды, writeln - вывести на экран, ну и конечно - Program DZ, название программы... - вот настолько досканально я знаю Паскаль! Если я тут где нибудь ошибся - прошу меня поправить! А, забыл ещё and. - завершить...
Теперь у меня к Вам прозьба разжевать мне в подробностях вот этот фрагмент программы
Program DZ; - понятно
{$mode objfpc} - вообще не понятно
uses - догадываюсь (какая - нибудь дополнительная библиотека с командами)
classes,
regexpr, sysutils, strutils; - что означает каждое из слов - не знаю

// Ну, описания переменных, используемых в программе - это понятно...
var
re: - ? TRegExprEngine - ?;
s - ?, subs - ?, sLink - ?, f_n: - ? AnsiString - ?;
ok: -? boolean - ?;
index - ?, len: - ? longint - ?;

sL_In - ?, sL_Out - ?: TStringList - ?;


Если не сложно, ответьте на вопросы...

Добавлено через 18 мин.
Цитата(Lapp @ 1.02.2010 22:12) *

на 200% согласен )).
Я очень рад, что тема продвинулась. volvo, спасибо, я вчера немного замотался в разъездах.
2 777: надеюсь, твой пыл не иссякнет вскоре smile.gif. Не стесняйся, ЛЮБЫЕ вопросы - это хорошо.

Мой пыл конечно когда нибудь иссякнет, но вот мозги готовы взорваться прямо сейчас !3.gif bomb.gif
осталось надеть ведро на голову, чтоб стены не запачкать, и бронежилет, чтоб остальные части тела не испортить... (накой мне это всё на старости лет... - сам себе удивляюсь), но я ооочень постараюсь продержаться до AND.а!!!
volvo
"Ну-с, приступим..." (С)

Итак, когда я пишу программу, мне совсем не обязательно реализовывать какие-то вещи, которые кто-то (возможно - разработчик компилятора, а возможно - и я сам) уже реализовал. Я могу просто взять готовый модуль, подключить его к своей программе, и пользоваться всем тем, что для меня предоставили разработчики этого модуля. Вот для того, чтобы подключить и использовать сторонние модули, и присутсивует в программе раздел Uses:
uses // описывается блок Uses, в котором перечисляются все используемые модули
classes, // здесь описаны классы, в частности, TStringList, который я использовал
regexpr, // Это - библиотека для работы с регулярными выражениями
sysutils, // Здесь реализованы многие системные функции, в частности функция, StringReplace
strutils; // Это - библиотека работы со строками, но ее можно не подключать, без нее тоже будет работать.

Теперь о {$mode objfpc}... Когда я работаю в FPC, у меня есть возможность создавать приложения, совместимые со старым досовским Турбо-Паскалем, с Дельфи, или написанные собственно на Object Pascal-е, что позволяет мне пользоваться всеми средствами этого языка. Можно, конечно, задавать режим совместимости в самой IDE, но я предпочитаю всегда делать это явно, чтобы любой, кто берет программу, не сталкивался с тем, что у него программа не компилируется, потому что у него (по умолчанию, или по забывчивости) стоит другой режим. Вот таким образом я уведомляю компилятор, что программа написана на Объектном Паскале.

Ну, а дальше - описания переменных, которые где-то ниже по тексту программы используются. В Паскале (в отличие от других языков) так принято - переменные описываются перед блоком инструкций (или как это перевести на русский, statements) в виде имя_переменной: тип_переменной
var
re: TRegExprEngine; // переменная re типа TRegExprEngine (предназначена для работы с регулярными выражениями);
s, subs, sLink, f_n: AnsiString; // Все перечисленные переменные - строковые;
// Ok - логическая (булева) переменная, используется ниже
// для хранения признака успеха определенной операции, я написал в комментариях
ok: boolean;

// Еще 2 целочисленных переменных
index, len: longint;

// А это - 2 переменные для хранения списков строк (в комментариях, опять же, расписано,
// как именно они ИСПОЛЬЗУЮТСЯ. А вот тут они ОПИСЫВАЮТСЯ)
sL_In, sL_Out: TStringList ;
Понимаешь, в чем дело? До двоеточия - вообще не обращай внимания... Я когда-то давным-давно спросил у своего преподавателя, "А почему я называю переменную именно Len? То, что она типа LongInt - понятно, но почему Len???" На что он мне ответил: "А как ты думаешь, почему я назвал своего сына Алексеем? Откуда я знаю, что он должен быть именно Алексеем, а не Иваном и не Сергеем? Так вот это мой сын, и я даю ему имя. Точно так же, как это твоя переменная, и ты ее называешь как хочешь."

До сих пор помню это объяснение... smile.gif

Ну что, хоть что-то их того, что я тут написал, стало понятнее?

Цитата
я ооочень постараюсь продержаться до AND.а!!!
До чего? smile.gif Там End вообще-то smile.gif And - кое что другое, не путай...
777
Цитата(volvo @ 1.02.2010 23:23) *

Ну что, хоть что-то их того, что я тут написал, стало понятнее?

Не так быстро... мне нужно время чтоб дать ответ на этот вопрос... на данный момент.... нет надо попробовать разобраться... не торопите... Спасибо! наверное до завтра!

Добавлено через 8 мин.
Цитата(volvo @ 1.02.2010 23:23) *

До чего? smile.gif Там End вообще-то smile.gif And - кое что другое, не путай...

до ENDа конечно же... smile.gif
777
Добрый день всем!!! Это опять я...
Цитата(volvo @ 1.02.2010 23:23) *

uses // описывается блок Uses, в котором перечисляются все используемые модули
classes, // здесь описаны классы, в частности, TStringList, который я использовал
regexpr, // Это - библиотека для работы с регулярными выражениями
sysutils, // Здесь реализованы многие системные функции, в частности функция, StringReplace
strutils; // Это - библиотека работы со строками, но ее можно не подключать, без нее тоже будет работать.


Правильно ли я понял, что вот эти модули - есть, как бы сказать, готовые мини программы, шаблоны, куда вставляются нужные нам переменные??? И почему взяты именно эти модули а не какие то другие??? Как Вы это отределяете???
Цитата(volvo @ 1.02.2010 23:23) *

Теперь о {$mode objfpc}... Когда я работаю в FPC, у меня есть возможность создавать приложения, совместимые со старым досовским Турбо-Паскалем, с Дельфи, или написанные собственно на Object Pascal-е, что позволяет мне пользоваться всеми средствами этого языка. Можно, конечно, задавать режим совместимости в самой IDE, но я предпочитаю всегда делать это явно, чтобы любой, кто берет программу, не сталкивался с тем, что у него программа не компилируется, потому что у него (по умолчанию, или по забывчивости) стоит другой режим. Вот таким образом я уведомляю компилятор, что программа написана на Объектном Паскале.

Об этом потом...
Цитата(volvo @ 1.02.2010 23:23) *

тип_переменной
var
re: TRegExprEngine; // переменная re типа TRegExprEngine (предназначена для работы с регулярными выражениями);
s, subs, sLink, f_n: AnsiString; // Все перечисленные переменные - строковые;
// Ok - логическая (булева) переменная, используется ниже
// для хранения признака успеха определенной операции, я написал в комментариях
ok: boolean;

// Еще 2 целочисленных переменных
index, len: longint;

// А это - 2 переменные для хранения списков строк (в комментариях, опять же, расписано,
// как именно они ИСПОЛЬЗУЮТСЯ. А вот тут они ОПИСЫВАЮТСЯ)
sL_In, sL_Out: TStringList ;


А как узнать что именно подразумевается в каждой из переменных, для чего каждая из них нужна, как они работают, почему именно они, ведь наверняка существуют ещё аналогичные типы???!!!
Lapp
Цитата(777 @ 2.02.2010 12:42) *
Правильно ли я понял, что вот эти модули - есть, как бы сказать, готовые мини программы, шаблоны, куда вставляются нужные нам переменные??? И почему взяты именно эти модули а не какие то другие??? Как Вы это отределяете???
Да, только иногда совсем не "мини". И "шаблон" - тоже не очень хорошее сравнение. Официальное название: unit. Туда вставляются как переменные и константы, так и процедуры и функции, которые тебе часто нужны в разных программах. Например, если многие твои программы используют тангенс, ты создаешь функцию для него и оформляешь в модуль. Дальше достаточно втавить этот модуль в программу, и можешь использовать тангенс. О процедурах и функциях поговорим позже..

Цитата
А как узнать что именно подразумевается в каждой из переменных, для чего каждая из них нужна, как они работают, почему именно они, ведь наверняка существуют ещё аналогичные типы???!!!
Перед использованием модуля ты должен прочитать его описание, там все есть.

Вот именно поэтому я и говорил про маленькие задачи. Все нужно узнавать постепенно. Даже обед ты ешь с салата до десерта последовательно, а не выливаешь чай в гуляш. Иначе каша в голове, понимаешь?

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

Последнее: тебе надо написать что-то, пусть самое простое, но САМОМУ. Напиши программу, которая выводит "Hello, world!" Все с этого начинали. Если это слишком просто - напиши программу, которая запрашивает название файла - и все пока. Только САМ напиши (вопросы все же можешь задавать).
777
Цитата(Lapp @ 2.02.2010 21:52) *

Перед использованием модуля ты должен прочитать его описание, там все есть.
(вопросы все же можешь задавать).

Как и где найти описание переменных , модулей и функций, только на русском языке!!! Иначе легче застрелиться mega_chok.gif ypriamii.gif
Lapp
Цитата(777 @ 2.02.2010 21:23) *
Как и где найти описание переменных , модулей и функций, только на русском языке!!! Иначе легче застрелиться mega_chok.gif ypriamii.gif
Есть описания на русском. Хоть и не все, но достаточно. Но дело в том, что для простейшей программы ничего этого не нужно. Тебе надо сначала разобраться с языком, все расширения потом. У тебя учебник есть? Какой?
777
Цитата(Lapp @ 3.02.2010 0:20) *

У тебя учебник есть? Какой?

Да НЕТ конечно!!! Я же не врал, когда написал что "о Паскале узнал 4 дня назад"...
Может в интернете где скачать можно??? Я с удовольствием (пока!)...
Может ссылки какие подскажете?
Unconnected
Посмотри здесь: Литература , там по паскалю есть книги.
Гость
Вот с этого и надо было начинать! (Книжки)
Гость - ZetVV
Volvo, Laap! Удивляюсь Вашей выдержке! good.gif

777 - научись решать проблеммы методом "ОТ ПРОСТОГО К СЛОЖНОМУ", а не наоборот. norespect.gif

И вообще получилась "Повесть о том, как один мужик двух генералов РАЗВОДИЛ" (Классика: Салтыков-Щедрин Михаил Евграфович)

С уважением ZetVV. good.gif

Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.