скачал я значит SciTE 1.72 возникли вопросы... как написаный текст привратить в программу (то есть можна ли сделать пунктик в меню для компиляции программы опредиленым компилятором) если можна то как?
Очень просто: выбрать в меню Options -> Open Global Options, появится вкладка "SCITEGlobal.properties", я просто заменил все, что там было (если вообще было, не помню) вот на это:
#using free pascal
# compile command.compile.*.pas=fpc "$(FilePath)"
# normal execute if PLAT_WIN command.go.*.pas="$(FileName).exe" command.go.subsystem.*.pas=2 if PLAT_GTK command.go.*.pas="kvt -e $(FileName)"
, потом жмешь File -> Save... Все, эту вкладку можно закрывать...
И теперь при наборе твоей программы и сохранении ее в файл с расширением PAS тебе становятся доступны опции из меню Tools (Compile, Build и все остальные)... Вот так выглядит окно SciTE после компиляции программы, НЕ содержавшей ошибок: А вот так - если ошибки были:
# Define SciTE settings for Pascal files. # Changed by Fernando Lozano <fsl@centroin.com.br> for Free Pascal # Changed by Mathias Rauen <scite@madshi.net> for Delphi
filter.pascal=Pascal (dpr dpk pas dfm inc)|*.dpr;*.dpk;*.pas;*.dfm;*.inc;*.pp|
keywordclass.pascal=and array asm begin case cdecl class const constructor contains \ default destructor div do downto else end end. except exit exports external \ far file finalization finally for function goto if implementation in index inherited \ initialization inline interface label library message mod near nil not \ object of on or out overload override package packed pascal private procedure program \ property protected public published raise read record register repeat requires resourcestring \ safecall set shl shr stdcall stored string then threadvar to try type unit \ until uses var virtual while with write xor
keywordclass.pascalclasses=write read default public protected private property published stored
statement.indent.$(file.patterns.pascal)=5 case catch class default do else for then \ private protected public struct try union while type statement.end.$(file.patterns.pascal)=10 ; statement.lookback.$(file.patterns.pascal)=20 block.start.$(file.patterns.pascal)=10 begin block.end.$(file.patterns.pascal)=10 end
Блин, вообще ерунда какая-то.. Во-первых, в том файле, что здесь написан вообще глобальные настройки, те, о которых написано, содержатся в pascal.properties.. Во-вторых, volvo, если там будет только тот текст, то все параметры выделения синтаксиса надо удалять, кроме того, те настройки стандартные, по идее там надо прописать путь к экзешникам компилятора и т.п, знать бы еще как.. Volvo, если сможешь, выложи пжалст файл pascal.properties, или кто-нибудь, у кого он есть настроенный.
кроме того, те настройки стандартные, по идее там надо прописать путь к экзешникам компилятора и т.п
Если ты устанавливал компилятор как положено, то внеся то, что я показал - получишь работоспособную связку SciTE + FPC... Я ничего просто так не пишу - если я сделал скриншот, значит, я сделал его НЕ в ФотоШопе, правда?
Ok, понятно, пункты компиляции, запуска и т.п. действительно появились. Способ этот если сказать проще- простой перенос данных из pascal.properties в файл глобальных настроек. Однако при попытке запуска либо компиляции файла вылазит ошибка "не удается найти указанный файл". Версия 1.73
Запусти консоль Windows (run -> cmd), перейди в ту папку, в которой лежит исходник - ТВОЙ, исходник, который ты пытаешься откомпилировать!!! (через команду cd), и запусти вот такую команду: D:\pro\Pascal\TurboPascal7\BIN\tpc.exe имя_исходника.pas
Что получишь в результате? Пойми, мой файл ничем не отличается от того, что я показал на скриншоте, а пока у тебя не будет свободно компилироваться то, что я написал выше, то и компиляция через SciTE потерпит неудачу, ибо это - только оболочка, и в конечном итоге все равно вызывается та же самая команда...
Уряя, я сделал это!!! Вся фича была в том, что мне было влом писать длиннай путь к tpc и я вытащил его отдельно на C:\. А для компиляции кроме tpc еще надо TURBO.TPL и SYSTEM.TPU. Вобщем прописал путь к tpc и все заработало!!!
Скриншот результатов компиляции из консоли вместе с открытым как у меня (на вкладке SciteGlobal.Properties) окном SciTE (чтоб было видно пути и в первом и во втором случае и сами результаты тоже) можно посмотреть?
Еще вопрос: чем отличаются команды Compile и Build. В результате вроде дают одно и то же.
Я бы не сказал... Для программ, использующих самописные модули - очень существенное различие... Проверяется очень просто:
Файл first.pas:
unit first;
interface procedure print;
implementation procedure print; begin writeln('hello'); end;
end.
Файл second.pas:
uses first; begin print; end.
Компилируешь, запускаешь... Что получишь? "hello", правильно?
Теперь заменяешь слово 'hello' в файле first.pas на 'hello, world' и сохраняешь изменения... Опять компилируешь (не Build) файл first.pas, и запускаешь... Что получишь?
А теперь - Build файла first.pas, и в результате - правильный вывод... То есть, Build перекомпилирует все исходники, исправленные после создания соответствующего TPU - файла, следовательно, при использовании Build ты всегда запускаешь программу со всеми внесёнными в неё изменениями. Compile же просто проверяет наличие TPU файла, и если он есть - то файл сразу линкуется к главной программе... Вот так то...
Цитата
Впринципе за компиляцию и синтаксис Pascal'я отвечают команды, расположенные в pascal.Properties.
В принципе, это у тебя так... Я же сделал все в одном (глобальном) файле, чтобы настройки постоянно не сбивались, зато могу запускать SciTE из любой папки, и все будет работать...