Recent

Author Topic: Лазарус на MacOS  (Read 10270 times)

skalogryz

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 2770
    • havefunsoft.com
Re: Лазарус на MacOS
« Reply #15 on: May 27, 2020, 09:49:14 pm »
что первое попалось, то и пробуем.

он же говорил, что этот пример работает в "онлайн компиляторе".
в "онлайн компиляторах" ГУЁвые программы пока что проблема.

zoltanleo

  • Sr. Member
  • ****
  • Posts: 486
Re: Лазарус на MacOS
« Reply #16 on: May 27, 2020, 10:39:07 pm »
Парень не самый простой путь выбрал для начинания  :)
Win10 LTSC x64/Deb 11 amd64(gtk2/qt5)/Darwin Cocoa (Monterey):
Lazarus x32/x64 2.3(trunk); FPC 3.3.1 (trunk), FireBird 3.0.10; IBX by TonyW

Sorry for my bad English, I'm using translator ;)

skalogryz

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 2770
    • havefunsoft.com
Re: Лазарус на MacOS
« Reply #17 on: May 28, 2020, 01:10:49 am »

Ivan291368

  • New Member
  • *
  • Posts: 10
Re: Лазарус на MacOS
« Reply #18 on: May 28, 2020, 06:31:32 am »
Ниче не понял
запустил БЕЗ отладчика появилось какое-то приложение и сразу закрылось (см. внизу)
https://radikal.ru/video/jpPd0rOv3w7
только я через самую верхнюю панель, потому что как ты сделал на видео-программа закрывается
можешь показать все ваши настройки ?
Или у вас старая версия ?

skalogryz

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 2770
    • havefunsoft.com
Re: Лазарус на MacOS
« Reply #19 on: May 28, 2020, 07:10:05 am »
я не знаю почему у тебя всё сразу закрывается.
может у тебя проект создан как-то по-особенному

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

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

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

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


Вот ещё... зайди в Lazarus->Настройки (или Сервис->Настройки) и попробуй отключить Отладчик глобально. Как показано на картинке: (там где написано (None))
« Last Edit: May 28, 2020, 07:13:20 am by skalogryz »

Ivan291368

  • New Member
  • *
  • Posts: 10
Re: Лазарус на MacOS
« Reply #20 on: May 28, 2020, 10:25:26 am »
УРАА наконецто
спасибо!
Есть несколько вопросов:
1-нормально что после выполнения программы появляется окошко "исполнение остановлено", а потом я пишу данные ?

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

zoltanleo

  • Sr. Member
  • ****
  • Posts: 486
Re: Лазарус на MacOS
« Reply #21 on: May 28, 2020, 12:23:44 pm »
Ощущение, что уровень программирования у вас beginner. Вы в курсе, куда и какую инфу fpc и lazarus сохраняют?
Win10 LTSC x64/Deb 11 amd64(gtk2/qt5)/Darwin Cocoa (Monterey):
Lazarus x32/x64 2.3(trunk); FPC 3.3.1 (trunk), FireBird 3.0.10; IBX by TonyW

Sorry for my bad English, I'm using translator ;)

mig-31

  • Sr. Member
  • ****
  • Posts: 305
Re: Лазарус на MacOS
« Reply #22 on: May 29, 2020, 01:50:53 pm »
Ощущение, что уровень программирования у вас beginner. Вы в курсе, куда и какую инфу fpc и lazarus сохраняют?
У меня создалось впечатление, что все еще больше запущено. Скорее даже не знает как сохранить проект а может он у него даже в /tmp.


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


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

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


Lazarus 2.2.6 - OpenSuse Leap 15.4, Mageia 8, CentOS 7

Ivan291368

  • New Member
  • *
  • Posts: 10
Re: Лазарус на MacOS
« Reply #23 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.

zoltanleo

  • Sr. Member
  • ****
  • Posts: 486
Re: Лазарус на MacOS
« Reply #24 on: May 29, 2020, 02:54:38 pm »
Содержимое редактора сохраняется в файле с расширением *.pas или *.pp, содержимое формы в *.lfm. Обычно они сохраняются в той же папке, что и файл проекта *.lpr. Это азы, поэтому и возникли предположения в уровне знаний
Win10 LTSC x64/Deb 11 amd64(gtk2/qt5)/Darwin Cocoa (Monterey):
Lazarus x32/x64 2.3(trunk); FPC 3.3.1 (trunk), FireBird 3.0.10; IBX by TonyW

Sorry for my bad English, I'm using translator ;)

mig-31

  • Sr. Member
  • ****
  • Posts: 305
Re: Лазарус на MacOS
« Reply #25 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 процентно в папке проекта

Lazarus 2.2.6 - OpenSuse Leap 15.4, Mageia 8, CentOS 7

Ivan291368

  • New Member
  • *
  • Posts: 10
Re: Лазарус на MacOS
« Reply #26 on: May 29, 2020, 05:27:09 pm »
всё
спасибо

lucamar

  • Hero Member
  • *****
  • Posts: 4219
Re:Лазарус на MacOS
« Reply #27 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 :-[
« Last Edit: May 29, 2020, 08:10:17 pm by lucamar »
Turbo Pascal 3 CP/M - Amstrad PCW 8256 (512 KB !!!) :P
Lazarus/FPC 2.0.8/3.0.4 & 2.0.12/3.2.0 - 32/64 bits on:
(K|L|X)Ubuntu 12..18, Windows XP, 7, 10 and various DOSes.

skalogryz

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 2770
    • havefunsoft.com
Re: Лазарус на MacOS
« Reply #28 on: May 29, 2020, 08:02:56 pm »
lucamar, ¿su navegador no es compatible con UTF 8?

mig-31

  • Sr. Member
  • ****
  • Posts: 305
Re: Лазарус на MacOS
« Reply #29 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

This means even on Unix, paramstr(0) returns the full path to the program executable
Lazarus 2.2.6 - OpenSuse Leap 15.4, Mageia 8, CentOS 7

 

TinyPortal © 2005-2018