Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ ОС и ПО _ Scite + компилятор

Автор: compiler 12.02.2007 0:09

скачал я значит SciTE 1.72 возникли вопросы...
как написаный текст привратить в программу
(то есть можна ли сделать пунктик в меню для компиляции программы опредиленым компилятором)
если можна то как?

заранее благодарен.

Автор: volvo 12.02.2007 1:53

Очень просто: выбрать в меню 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)"

# build
command.build.*.pas=fpc -B "$(FilePath)"
command.build.subsystem.*.pas=1

command.name.0.*.pas=Debug Compile
command.0.*.pas=fpc -g "$(FilePath)"
command.name.1.*.pas=Debug Build
command.1.*.pas=fpc -g -B "$(FilePath)"
command.name.2.*.pas=GDB
if PLAT_WIN
command.2.*.pas=gdbpasw "$(FileName)"
if PLAT_GTK
command.2.*.pas=gdb "$(FileName)"
command.name.3.*.pas=DDD
command.3.*.pas=ddd "$(FileName)"
, потом жмешь File -> Save... Все, эту вкладку можно закрывать...

И теперь при наборе твоей программы и сохранении ее в файл с расширением PAS тебе становятся доступны опции из меню Tools (Compile, Build и все остальные)... Вот так выглядит окно SciTE после компиляции программы, НЕ содержавшей ошибок:
Прикрепленное изображение
А вот так - если ошибки были:
Прикрепленное изображение

smile.gif

Автор: compiler 12.02.2007 23:42

а у меня так


# 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|

file.patterns.pascal=*.dpr;*.dpk;*.pas;*.dfm;*.inc;*.pp
lexer.$(file.patterns.pascal)=pascal

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

keywords.$(file.patterns.pascal)=$(keywordclass.pascal)
keywords2.$(file.patterns.pascal)=$(keywordclass.pascalclasses)

# Pascal styles
# White space
style.pascal.0=fore:#000000,$(font.pascal)
# Comment
style.pascal.1=fore:#007F00,$(font.comment)
# Line Comment
style.pascal.2=fore:#007F00,$(font.comment)
# Doc comment
style.pascal.3=fore:#7F7F7F
# Number
style.pascal.4=fore:#007F7F

# Keyword
style.pascal.5=fore:#00007F,bold
# Double quoted string
style.pascal.6=fore:#7F007F,italics,$(font.comment)
# Single quoted string
style.pascal.7=fore:#7F007F,italics,$(font.text)
# Symbols
style.pascal.8=fore:#007F7F
# Preprocessor
style.pascal.9=fore:#7F7F00
# Operators
style.pascal.10=fore:#000000
# Inline Asm
style.pascal.14=fore:#008080
# Default/Identifiers
style.pascal.32=fore:#800000
# Brace highlight
style.pascal.34=fore:#0000FF,notbold
# Brace incomplete highlight
style.pascal.35=fore:#FF0000,notbold
# Braces are only matched in operator style
braces.pascal.style=10

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

#using virtual pascal
#pc=C:\Vp21\Bin.w32\Vpc.exe -VC:\Vp21\Bin.w32\Vp.vpo "$(FilePath)"
#using free pascal
...(дальше текст совпадает)

1)зачем этот текст?
2)что делать если я хочу одновременно работатоь с 2 компиляторами(Fre + Turbo)

Автор: Xamil 22.04.2007 20:25

Блин, вообще ерунда какая-то.. Во-первых, в том файле, что здесь написан вообще глобальные настройки, те, о которых написано, содержатся в pascal.properties.. Во-вторых, volvo, если там будет только тот текст, то все параметры выделения синтаксиса надо удалять, кроме того, те настройки стандартные, по идее там надо прописать путь к экзешникам компилятора и т.п, знать бы еще как.. Volvo, если сможешь, выложи пжалст файл pascal.properties, или кто-нибудь, у кого он есть настроенный.

Автор: compiler 22.04.2007 20:42

Цитата(Xamil @ 22.04.2007 16:25) *
или кто-нибудь, у кого он есть настроенный.
что значит настроенный? вот помоему оригинальный..Прикрепленный файл  pascal.zip ( 1.36 килобайт ) Кол-во скачиваний: 631

Цитата(Xamil @ 22.04.2007 16:25) *
по идее там надо прописать путь к экзешникам компилятора и т.п
у меня FP работал и без этого, а вот c TP так просто не получилось..
тогда вместо
Код
command.compile.*.pas =fpc    "$(FilePath)"
пишеш
Код
command.compile.*.pas=D:\pro\Pascal\TurboPascal7\BIN\tpc.exe  "$(FilePath)"
ну или типа того...(должно еще работать замена fpc на tpx или tpcx или tpc но я прописал путь.)

Автор: volvo 22.04.2007 20:50

Цитата
кроме того, те настройки стандартные, по идее там надо прописать путь к экзешникам компилятора и т.п
Если ты устанавливал компилятор как положено, то внеся то, что я показал - получишь работоспособную связку SciTE + FPC... Я ничего просто так не пишу - если я сделал скриншот, значит, я сделал его НЕ в ФотоШопе, правда?

Автор: Xamil 22.04.2007 21:19

Ok, понятно, пункты компиляции, запуска и т.п. действительно появились. Способ этот если сказать проще- простой перенос данных из pascal.properties в файл глобальных настроек. Однако при попытке запуска либо компиляции файла вылазит ошибка "не удается найти указанный файл". Версия 1.73

Автор: compiler 29.05.2007 1:39

добрый день!
а как использовать ключ -Fc с кодировкой UTF-8
так

Код
# compile
command.compile.*.pas=fpc -FcUTF "$(FilePath)"

заранее благодарен...

Автор: VinK 30.06.2007 23:22

Доброго времени суток. Может кто-нибудь в деталях обьяснить как сделать работающую связку
Scite + TurboPascal?
Если сделать так

Цитата
command.compile.*.pas=D:\pro\Pascal\TurboPascal7\BIN\tpc.exe "$(FilePath)"

т.е. в pascal.properties заменить все fpc на путь к tpc, то программа

Program pr;
begin
writeln('Привет');
readln;
end.


в принципе компилируется но получается
ExitCode:1 и не создается .exe-файл. ypriamii.gif

Автор: volvo 30.06.2007 23:51

Прикрепленное изображение
что я делаю не так?

(расширение *.inc было выбрано только потому, что pas настроено для FPC)

Попробуй ввести команду, которая появляется в окне ошибок, из командной строки (из той же папки, где лежит исходник), что будет? Компилируется?

Автор: VinK 1.07.2007 17:21

Цитата
Попробуй ввести команду, которая появляется в окне ошибок, из командной строки (из той же папки, где лежит исходник)

Эээ... Я не совсем понял о чем речь. И Scite я скачал уже в готовом виде, а не исходник.

Можешь прикрепить измененные pascal.properties и SciTEGlobal.properties, а то все мои изменения не приводят к желаемому результату?

Автор: volvo 1.07.2007 17:29

Цитата
Я не совсем понял о чем речь.
Запусти консоль Windows (run -> cmd), перейди в ту папку, в которой лежит исходник - ТВОЙ, исходник, который ты пытаешься откомпилировать!!! (через команду cd), и запусти вот такую команду:
D:\pro\Pascal\TurboPascal7\BIN\tpc.exe имя_исходника.pas

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

Автор: VinK 1.07.2007 18:01

Вобщем через консоль компилить получается,
все как надо: отображает кол-во строк, размер и создает exe-файл.

Автор: VinK 1.07.2007 20:21

Уряя, я сделал это!!! smile.gif smile.gif smile.gif
Вся фича была в том, что мне было влом писать длиннай путь к tpc и я вытащил его отдельно на C:\.
А для компиляции кроме tpc еще надо TURBO.TPL и SYSTEM.TPU. lol.gif lol.gif Вобщем прописал путь к tpc и все заработало!!! yahoo!.gif

А, да, ОГРОМНОЕ спасибо, Volvo!

Автор: volvo 1.07.2007 20:28

Скриншот результатов компиляции из консоли вместе с открытым как у меня (на вкладке SciteGlobal.Properties) окном SciTE (чтоб было видно пути и в первом и во втором случае и сами результаты тоже) можно посмотреть?

Что-то у тебя с путями к файлу TPC.EXE ...

Добавлено:
smile.gif

Автор: VinK 2.07.2007 21:29

Цитата
Скриншот ... как у меня

А как сделать как у тебя ? smile.gif
Вот прикрепил. Прикрепленный файл  scite.rar ( 27.6 килобайт ) Кол-во скачиваний: 632


Цитата
на вкладке SciteGlobal.Properties

А зачем? Впринципе за компиляцию и синтаксис Pascal'я отвечают команды, расположенные в pascal.Properties. Его-то я и редактировал.

Еще вопрос: чем отличаются команды Compile и Build. В результате вроде дают одно и то же.

Автор: volvo 2.07.2007 22:46

Цитата
Еще вопрос: чем отличаются команды 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 из любой папки, и все будет работать...