Lazarus

Other Languages => Russian => Topic started by: Ivan291368 on May 27, 2020, 08:13:05 am

Title: Лазарус на MacOS
Post by: Ivan291368 on May 27, 2020, 08:13:05 am
hello everyone why can't I run THE SIMPLEST program? using an online compiler is running but HERE ( https://radikal.ru/video/XaRxCW7F56N) NO
how fix ?
Title: Re: Lazarus on MAcOS
Post by: dbannon on May 27, 2020, 08:35:13 am
Sorry Ivan, you will need to give us a lot more information about what you are doing.

By "run the simplest program" do you mean compile and run a Lazarus or FPC program on your Mac ? Or are you downloading a program from somewhere and trying to run it ?

Assuming FPC and  or Lazarus, have you installed either of both FPC, Lazarus ?

Do they start up and work as expected ?

If they work, then maybe the source code of your simplest program is the problem, post it here !

Davo
Title: Re: Lazarus on MAcOS
Post by: trev on May 27, 2020, 08:47:05 am
Code: Pascal  [Select][+][-]
  1. Program seconds;
  2.  
  3. uses
  4.   crt;
  5.  
  6. var
  7.   rez : longint;
  8.  
  9. begin
  10.   clrscr;
  11.   rez := 60;
  12.  
  13.   writeLn('Seconds in a day: ', rez*24*60);
  14.   writeLn('Seconds in a week: ', rez*24*60*7);
  15.   writeLn('Seconds in a year: ', rez*24*60*365);
  16. end.
  17.  

Compile on the command line with: fpc program.pas

Run the program on the command line with: ./program

Code: Text  [Select][+][-]
  1. Seconds in a day: 86400
  2. Seconds in a week: 604800
  3. Seconds in a year: 31536000

If you want to do this in the Lazarus IDE, then you need to select the correct type of project. It looks like you selected "Application" which is for a GUI program because you have a TForm called Form1. You needed to instead select "Simple Program" which looks like my attachment and compiles and runs without error :)

Title: Re: Lazarus on MAcOS
Post by: wp on May 27, 2020, 09:12:12 am
If you can live without a cleared screen, you could also skip the "uses crt" and "ClearScr".
Title: Re: Lazarus on MAcOS
Post by: Ivan291368 on May 27, 2020, 09:44:04 am
Oh, guys, I don't understand. I open in the usual way (in that video I opened via the macOS terminal) and it seems that all settings are reset
in short, what me need edit here ( https://radikal.ru/video/1VERHMKoWyh)  ?
Or tell me what need to do so that the result of executing this code can be displayed on the screen
Title: Re: Lazarus on MAcOS
Post by: trev on May 27, 2020, 10:03:33 am
1. Start the Lazarus IDE in the normal way from the Applications folder;
2. Choose Project -> New project -> Simple Program;
3. Delete any code in the editor window;
4. Paste in your code (I posted it above) into the editor window;
5. Compile and Run.

If you have trouble doing this, please use the Russian Forum (https://forum.lazarus.freepascal.org/index.php/board,75.0.html) where you can get help in your native language.

Title: Re: Lazarus on MAcOS
Post by: Ivan291368 on May 27, 2020, 11:06:56 am
works but I don't see any results
inserted the code, pressed the green START button and immediately writes that the execution is stopped
Title: Лазарус на MacOS
Post by: Ivan291368 on May 27, 2020, 11:12:33 am
короче, что мне нужно отредактировать здесь ( https://radikal.ru/video/1VERHMKoWyh)?
Или подскажите что нужно сделать чтобы результат выполнения этого кода можно было вывести на экран

на иностранном форуме мне написали так
1. Запустите IDE Lazarus обычным способом из папки приложения;
2. Выберите проект -> Новый проект - > простая программа;
3. Удалить любой код в окне редактора;
4. Вставьте ваш код (я разместил его выше) в окно редактора;
5. Компиляция и запуск.

я сделал, программа запустилась, но не вижу результат, после нажатия на зеленую кнопку СТАРТ пишет что исполнение остановлено

вот код

Program seconds;

var
  rez : longint;
begin
  rez := 60;
  writeLn('Seconds in a day: ', rez*24*60);
  writeLn('Seconds in a week: ', rez*24*60*7);
  writeLn('Seconds in a year: ', rez*24*60*365);
  readln();
end.
Title: Re: Lazarus on MAcOS
Post by: lucamar on May 27, 2020, 12:39:24 pm
inserted the code, pressed the green START button and immediately writes that the execution is stopped

Make sure you have the "Console" open. A console program will read/write from a shell/terminal, so executing it from a GUI program will show nothing: it'l execute and do its thing but the results will go to "limbo".

In Lazarus select "View->Debug Windows->Console In/Output", as shown in the attached image. Then run your program again and the output will show in the "console" window.
Title: Re: Лазарус на MacOS
Post by: mig-31 on May 27, 2020, 12:39:28 pm
Вы создали терминальную программу без графического интерфейса.  Поэтому ее надо запускать из эмулятора терминала (если не ошибаюсь у Мака нет терминала как в Linux/Unix в который можно переключиться через Ctrl+Alt+F<2..12>).

Запускаете эмулятор терминала:
1)  с помощью команды cd переходите в папку проекта и находите бинарный файл имя которого совпадает с названием проекта после слова program; в вашем случае seconds
2) запускаете бинарный файл ./<имя файла>; в вашем случае ./seconds

Команда ls отображает содержание папки.



 
Title: Re: Lazarus on MAcOS
Post by: Ivan291368 on May 27, 2020, 03:16:46 pm
Hmm I don't have this function
there is no combination of the key with the letter O
Title: Re: Lazarus on MAcOS
Post by: skalogryz on May 27, 2020, 04:39:36 pm
Никогда не ставь "целевая ось" как "macos"
твоя целевая ось это "darwin"

про CPU "i386" тоже неплохо было бы забыть.  Начиная с Каталины будет работать только  "x86_64"

а чтобы увидеть окошко вывода, добавь перед readln(); перед end.
Title: Re: Lazarus on MAcOS
Post by: Ivan291368 on May 27, 2020, 08:40:17 pm
In response to the Russian man
Все равно не так
Да, сначала новый файл потом простая программа но все равно не получается
без изменений
https://radikal.ru/video/tGDPzkwty4i
с "darvin"
https://radikal.ru/video/VCbeIBBH0KN
с "x86_64"
https://radikal.ru/video/TTWHyaqwI0c
про выбор "dwaft-3" взял с инета туториала
Вы меня слышишь ? Просто кажется, что я неправильно отвечаю
for all
Do you hear me answering you? If I don't answer correctly, tell me how to do it. just the first time on the site
Title: Re: Лазарус на MacOS
Post by: skalogryz on May 27, 2020, 09:14:57 pm
слил обе темы в одну.

на последнем видео, ты показываешь, что выбираешь настройки Darwin в параметрах сборки лазаруса. Это не то чтобы плохо, но это твоему проекту не поможет.

Чтобы сделать настройки проекта, нужно смотреть меню "Проект"->"Параметры Проекта"

попробуй вот что сделать - запустить проект БЕЗ отладчика.
Title: Re: Лазарус на MacOS
Post by: zoltanleo on May 27, 2020, 09:28:57 pm
Вообще, странно, что ТС в качестве "простейшей программы" пытается запустить консольный проект. Может, стоит попробовать классический "Hello, World!"?

И ещё пожелание, выкладывать скрины аттачем, чем постить видео на русском ресурсе (не знаю, как они открываются у зарубежных участников форума).
Title: Re: Лазарус на MacOS
Post by: skalogryz on May 27, 2020, 09:49:14 pm
что первое попалось, то и пробуем.

он же говорил, что этот пример работает в "онлайн компиляторе".
в "онлайн компиляторах" ГУЁвые программы пока что проблема.
Title: Re: Лазарус на MacOS
Post by: zoltanleo on May 27, 2020, 10:39:07 pm
Парень не самый простой путь выбрал для начинания  :)
Title: Re: Лазарус на MacOS
Post by: skalogryz on May 28, 2020, 01:10:49 am
без отладчика работает:
https://www.dropbox.com/s/co7nsry8t6hef8p/running_cmdline.mov?dl=0
Title: Re: Лазарус на MacOS
Post by: Ivan291368 on May 28, 2020, 06:31:32 am
Ниче не понял
запустил БЕЗ отладчика появилось какое-то приложение и сразу закрылось (см. внизу)
https://radikal.ru/video/jpPd0rOv3w7
только я через самую верхнюю панель, потому что как ты сделал на видео-программа закрывается
можешь показать все ваши настройки ?
Или у вас старая версия ?
Title: Re: Лазарус на MacOS
Post by: skalogryz on May 28, 2020, 07:10:05 am
я не знаю почему у тебя всё сразу закрывается.
может у тебя проект создан как-то по-особенному

выбери Проект -> закрыть проект

а потом повтори все шаги, вот как на этом видео:
https://www.dropbox.com/s/t6zenhgb9acr5aw/step-by-step.mov?dl=0

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

Замечу, что запуск через Application Bundle точно не нужен


Вот ещё... зайди в Lazarus->Настройки (или Сервис->Настройки) и попробуй отключить Отладчик глобально. Как показано на картинке: (там где написано (None))
Title: Re: Лазарус на MacOS
Post by: Ivan291368 on May 28, 2020, 10:25:26 am
УРАА наконецто
спасибо!
Есть несколько вопросов:
1-нормально что после выполнения программы появляется окошко "исполнение остановлено", а потом я пишу данные ?

2 Кстати а "файлы" как работают ?
Я сохранил код а файла не вижу
имя файла должен быть f1 и f2
ну код должен записать данные в файл
если не знаете, ничего, зато, благодаря вам, получилось так как хотел, спасибо!
пример программы в файле:
Title: Re: Лазарус на MacOS
Post by: zoltanleo on May 28, 2020, 12:23:44 pm
Ощущение, что уровень программирования у вас beginner. Вы в курсе, куда и какую инфу fpc и lazarus сохраняют?
Title: Re: Лазарус на MacOS
Post by: mig-31 on May 29, 2020, 01:50:53 pm
Ощущение, что уровень программирования у вас beginner. Вы в курсе, куда и какую инфу fpc и lazarus сохраняют?
У меня создалось впечатление, что все еще больше запущено. Скорее даже не знает как сохранить проект а может он у него даже в /tmp.


2 Кстати а "файлы" как работают ?
Я сохранил код а файла не вижу
имя файла должен быть f1 и f2
ну код должен записать данные в файл
если не знаете, ничего, зато, благодаря вам, получилось так как хотел, спасибо!
пример программы в файле:


Смотрите скриншот, где найти пути куда бы сохранены последние проекты.

Если вы жали кнопку сохранить и так Lazarus сохранит в  папку /tmp домашнего каталога пользователя.
Полный путь /home/<имя пользователя>/tmp


Title: Re: Лазарус на MacOS
Post by: Ivan291368 on May 29, 2020, 02:36:11 pm
не, вы не так поняли
куда сохранился КОД я это знаю, а вот ФАЙЛ который создал код-где посмотреть?

вот код который должен записать данные в файл f1 и f2
program project1;
uses SysUtils;
type intfile=file of integer;
var f1: file of integer;
f2: file of integer;

procedure InputFile1(var f1:intfile);
var i,n,x,k:integer;
begin
  Rewrite(f1);
  writeln('Введите количество чисел');
  readln(n);
  k:=1;
  for i:=1 to n do
  begin
    writeln('Введите число, равное 0 или 1');
    readln(x);
    write(f1,x);
  end;
  CloseFile(f1);
end;

procedure ReadFile1(var f1:intfile);
var i,x:integer;
begin
  reset(f1);
  writeln();
  writeln('Файл f1 состоит из чисел');
  for i:=1 to FileSize(f1) do
  begin
    read(f1,x);
    write(x:5);
  end;
end;

procedure InputFile2(var f2:intfile);
var i,x,k: integer;
begin
  reset(f1);
  rewrite(f2);
  for i:=1 to FileSize(f1) do
  begin
    read(f1,x);
    if x=1 then
    begin
      k:=0;
      write(f2,k);
    end;
    if x=0 then
    begin
      k:=1;
      write(f2,k);
    end;
  end;
end;

procedure ReadFile2(var f2:intfile);
var i,k:integer;
begin
  reset(f2);
  writeln();
  writeln();
  writeln('Файл f2 состоит из чисел');
  for i:=1 to FileSize(f2) do
  begin
    read(f2,k);
    write(k:5);
  end;
end;

begin
  Assign(f1,'f1.txt');
  Assign(f2,'f2.txt');
  InputFile1(f1);
  ReadFile1(f1);
  InputFile2(f2);
  ReadFile2(f2);
  readln();
end.
Title: Re: Лазарус на MacOS
Post by: zoltanleo on May 29, 2020, 02:54:38 pm
Содержимое редактора сохраняется в файле с расширением *.pas или *.pp, содержимое формы в *.lfm. Обычно они сохраняются в той же папке, что и файл проекта *.lpr. Это азы, поэтому и возникли предположения в уровне знаний
Title: Re: Лазарус на MacOS
Post by: mig-31 on May 29, 2020, 03:17:07 pm
не, вы не так поняли
куда сохранился КОД я это знаю, а вот ФАЙЛ который создал код-где посмотреть?
Code: Pascal  [Select][+][-]
  1.   Assign(f1,'f1.txt');
  2.   Assign(f2,'f2.txt');
  3.  

или  задайете полный путь
ParamStr(0) - возвращает полный путь к бинарному файлу программмы

Code: Pascal  [Select][+][-]
  1.   Assign(f1, ParamStr(0) + 'f1.txt');
  2.   Assign(f2, ParamStr(0) + 'f2.txt');
  3.  

Тогда файлы будут 100 процентно в папке проекта

Title: Re: Лазарус на MacOS
Post by: Ivan291368 on May 29, 2020, 05:27:09 pm
всё
спасибо
Title: Re:Лазарус на MacOS
Post by: lucamar on May 29, 2020, 07:55:49 pm
или  задайете полный путь
ParamStr(0) - возвращает полный путь к бинарному файлу программмы

Code: Pascal  [Select][+][-]
  1.   Assign(f1, ParamStr(0) + 'f1.txt');
  2.   Assign(f2, ParamStr(0) + 'f2.txt');
  3.  

Тогда файлы будут 100 процентно в папке проекта

Google translated

Почти, но не совсем; ParamStr[0] должен возвращать полное имя файла исполняемого файла (включая полный путь), поэтому правильный способ получить папку исполняемого файла - передать его через ExtractFilePath() до того как в:

Code: Pascal  [Select][+][-]
  1.  ThePath: = ExtractFilePath(ParamStr(0));
  2.    Assign(f1, ThePath + 'f1.txt');
  3.    Assign(f2, ThePath + 'f2.txt');

Когда вы просто Assign(f, 'file.ext'), файл создается в / считывается из / записывается в текущую папку, которую вы можете получить с помощью [/tt]GetCurrentDir[/tt] и изменить с помощью [/tt]SetCurrentDir()[/tt], что означает, что вы можете сделать это, чтобы узнать, где находятся ваши файлы по умолчанию:

Code: Pascal  [Select][+][-]
  1.  WriteLn ('Файлы находятся в:', GetCurrentDir)

English original
Almost but not quite; ParamStr[0] should return the full file name of the executable (including the full path)  so the proper way to get the executable's folder is by passing it through ExtractFilePath() before as in:

Code: Pascal  [Select][+][-]
  1.     ThePath  := ExtractFilePath(ParamStr(0));
  2.   Assign(f1, ThePath + 'f1.txt');
  3.   Assign(f2, ThePath + 'f2.txt');

When you just Assign(f, 'file.ext') the file is created in/read from/written to the current folder, which you can get with GetCurrentDir and change with SetCurrentDir(), which means you can do this to know where your files are by default:

Code: Pascal  [Select][+][-]
  1. WriteLn('Files are in: ', GetCurrentDir)


ETA: Sorry for the unicode mishap; happens sometimes when you mix multiple editing tools :-[
Title: Re: Лазарус на MacOS
Post by: skalogryz on May 29, 2020, 08:02:56 pm
lucamar, ¿su navegador no es compatible con UTF 8?
Title: Re: Лазарус на MacOS
Post by: mig-31 on June 01, 2020, 10:37:21 am
@lucamar

Of course your way is also proper, by the official documentation
https://www.freepascal.org/docs-html/rtl/system/paramstr.html (https://www.freepascal.org/docs-html/rtl/system/paramstr.html)

This means even on Unix, paramstr(0) returns the full path to the program executable
Title: Re: Лазарус на MacOS
Post by: ASerge on June 01, 2020, 03:56:05 pm
Of course your way is also proper, by the official documentation
https://www.freepascal.org/docs-html/rtl/system/paramstr.html (https://www.freepascal.org/docs-html/rtl/system/paramstr.html)
This means even on Unix, paramstr(0) returns the full path to the program executable
"...is the path and file name with which the program was started". You mean ParamStr(0) + 'f1.txt" = ".../project1.exe.f1.txt" are located in the same folder?
TinyPortal © 2005-2018