Сохранение в FreePascal

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

Петр
незнакомец
Сообщения: 2
Зарегистрирован: 15.11.2015 13:00:03

Сохранение в FreePascal

Сообщение Петр »

Привет всем!
Я только учусь программировать на Паскале. Хочу поинтересоваться, почему, когда я начинаю выполнение программы, т.е. нажимаю кнопку Run, Паскаль заставляет меня сохранить программу? Все дело в том, что сейчас я пишу много простых учебных программок, и сохранять их всех нет особого смысла. Скажите, можно ли запускать программы без их сохранения?
Аватара пользователя
WAYFARER
энтузиаст
Сообщения: 567
Зарегистрирован: 09.10.2009 00:00:04
Откуда: г. Курган

Сообщение WAYFARER »

Нет. Запустить не сохранив не получится. Файл с исходником передается параметром компилятору fpc (ну путать с fp-ide, в которой вы пишите).
Аватара пользователя
runewalsh
энтузиаст
Сообщения: 579
Зарегистрирован: 27.04.2010 00:15:25

Сообщение runewalsh »

В Турбо Паскале так можно было, да :3
Btw, ничего такого в этом нет, при желании могли бы и сделать, можешь реквестнуть на http://bugs.freepascal.org/.
Петр
незнакомец
Сообщения: 2
Зарегистрирован: 15.11.2015 13:00:03

Сообщение Петр »

Понятно.

Добавлено спустя 24 минуты 52 секунды:
У меня возник следующий вопрос: где можно взять встроенную справку? Сейчас, когда я захожу в справку, там написано, что ради экономии места, файлы справки не загружены, и их нужно скачать по ссылке (далее приведен адрес). Переходя по адресу, я не обнаруживаю никаких файлов справки. Что можете посоветовать?
Аватара пользователя
runewalsh
энтузиаст
Сообщения: 579
Зарегистрирован: 27.04.2010 00:15:25

Сообщение runewalsh »

Забей на эту IDE (она глючная штонемогу) и используй Lazarus.

По вопросу. Там на сайте ссылка на sourceforge. Она, действительно, сломалась, но, тем не менее, перейди по ней, потом в папку Documentation/2.6.4, скачай какой-то из html, распакуй и добавь корневой .html через Help → Files.
Аватара пользователя
Лекс Айрин
долгожитель
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград
Контактная информация:

Сообщение Лекс Айрин »

runewalsh писал(а):В Турбо Паскале так можно было, да :3

Неа... просто файл сохранялся во временный файл без ведома пользователя.

runewalsh писал(а):Забей на эту IDE (она глючная штонемогу) и используй Lazarus.

не такая уж и глючная... а запускать каждый раз, когда надо написать тестовую программу, лазаря это как-то странновато :?

Или вы и в булочную на такси отправляетесь?
xdsl
постоялец
Сообщения: 131
Зарегистрирован: 15.01.2009 12:49:03

Сообщение xdsl »

Наилучший вариант для учебы (разработка небольших консольных программ) - комбинация FreePascal+Geany+Linux.
FreePascal - понятно почему
Geany - универсально, просто, многоязычно
Linux - нет проблем с кодировками, utf8 везде.

Остальные варианты - либо сложнее, либо неудобно, либо громоздко.
SSerge
энтузиаст
Сообщения: 971
Зарегистрирован: 12.01.2012 05:34:14
Откуда: Барнаул

Сообщение SSerge »

xdsl писал(а):Linux - нет проблем с кодировками, utf8 везде.


Вам наглядный пример большой проблемы, как раз из-за кодировки utf8:

Код: Выделить всё

Var s1,s2,s3:string;

.......
здесь s1-s3 присваиваются смешанные англо-русские строки
.......


writeln(s1:30,s2:30,s3:30);

Аватара пользователя
alexs
долгожитель
Сообщения: 4069
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

SSerge писал(а):writeln(s1:30,s2:30,s3:30);


Кстати, у меня в FPC 3.1.1 Linux x64 вооще форматирование строки таким образом не работает. Строка выводится полностью.
xdsl
постоялец
Сообщения: 131
Зарегистрирован: 15.01.2009 12:49:03

Сообщение xdsl »

SSerge писал(а):Вам наглядный пример большой проблемы, как раз из-за кодировки utf8:
И в чем проблема :? ?
SSerge
энтузиаст
Сообщения: 971
Зарегистрирован: 12.01.2012 05:34:14
Откуда: Барнаул

Сообщение SSerge »

Форматирование строк на выводе будет перекошено
xdsl
постоялец
Сообщения: 131
Зарегистрирован: 15.01.2009 12:49:03

Сообщение xdsl »

SSerge писал(а):Форматирование строк на выводе будет перекошено
А пример кода со скриншотом перекошенного результата можно? А то у меня никак в голове не срастается, где там можно перекосить, при выравнивании по правому краю.
SSerge
энтузиаст
Сообщения: 971
Зарегистрирован: 12.01.2012 05:34:14
Откуда: Барнаул

Сообщение SSerge »

xdsl писал(а):А то у меня никак в голове не срастается, где там можно перекосить, при выравнивании по правому краю.



Число позиций выравнивания при выводе типа string считается во writeln по байтам, а не по символам. У вас UTF8. Русские символы - два байта и больше. Где будет выравнивание?

Впрочем, alexs, сообщает что в его версии - его вообще не будет. :D

при выравнивании по левому краю, конечно, еще нагляднее.
Аватара пользователя
WAYFARER
энтузиаст
Сообщения: 567
Зарегистрирован: 09.10.2009 00:00:04
Откуда: г. Курган

Сообщение WAYFARER »

alexs писал(а):Кстати, у меня в FPC 3.1.1 Linux x64 вооще форматирование строки таким образом не работает. Строка выводится полностью.

в 2.6.4 так же.
Аватара пользователя
alexs
долгожитель
Сообщения: 4069
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь
Контактная информация:

Сообщение alexs »

Кстати - я сразу не понял. Забыл что это не обрезание, а выравнивание.
Переделал свой исходник
Теперь очень хорошо видна разница в обработке строк

Код: Выделить всё

{$codepage UTF8}

program test1;
uses
  cwstring;
var
  S1, S2, S3:UnicodeString;
  S11, S21, S31:String;
begin
  S1:='Это очень длинная строка с русскими буквами! and small other text';
  S2:='Other - ' + S1;
  S3:=Copy(S1,1,15);
  writeln(S1:100);
  writeln(S2:100);
  writeln(S3:100);

  S11:=S1;
  S21:=S2;
  S31:=S3;
  writeln(S11:100);
  writeln(S21:100);
  writeln(S31:100);
end.


Добавлено спустя 37 секунд:
Так что прошу прощения если кого запутал...
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Ответить