Исправили
круто! Теперь в том окошке все круто… Зато теперь в самой справке по классам весь русский текст кракозябрами Верните как было, пожаааалуйста
Ну, вам не угодишь.
Исправили.
Это не совсем ошибка, но на сайте справка больно уж древней версии. Не та, которую можно скачать, а http://pascalabc.net/downloads/pabcnethelp/index.htm
Изменил
Не понял, что вы сделали, но по той ссылке справка всё та же древней версии, но теперь наполовину сломанная (ошибка 404, название вкладки везде Arial, 8, 0), а вот скачиваемая сломалась полностью.
А вы кеш почистите или зайдите другим браузером.
А в скачиваемой правой мышью флажок про скачивание из интернета установите или снимите - не помню
в программе Dynarray (c:\PABCWork.NET\Samples!MainFeatures\02_Types\Dynarray)
// Процедуры и методы работы с динамическим массивом
begin
var a := ArrRandom(10);
// Вывод всех элементов массива
a.Println;
// Сортировка массива
a.Sort;
a.Println;
// Обращение массива
a.Reverse;
a.Println;
// Изменение размерамассиав с сохранением элементов. То же делает SetLength
a.Resize(a.Length+2);
a.Println;
// Поиск вхождения элемента в массив
var i := a.IndexOf(50);
Writeln(i);
end.
- Опечатки в комментарии, исправить на ‘Изменение размера массива с сохранением элементов.’
- Dynarray.pas(18) : Нет перегруженной подпрограммы с таким количеством параметров Resize
По крайней мере для версии 3.5.2201 такой процедуры нет в PABCSystem (хотя есть вероятность, что она перегружена в другом модуле, если есть, то, пожалуйста, укажите в каком именно,)
setlength(a, [длина массива]), так работает.
c:\PABCWork.NET\Samples!MainFeatures\04_Units\NativeDll\CallNative
// Вызов функции из обычной dll
function add(a,b: integer): integer; external 'NativeDll.dll' name 'add'; // объявление внешней функции
begin // основная программа
writeln(add(2,3));
end.
CallNative.pas(5) : Ошибка времени выполнения: Была сделана попытка загрузить программу, имеющую неверный формат. (Исключение из HRESULT: 0x8007000B)
Вероятнее всего, проблемы с целевой платформой
c:\PABCWork.NET\Samples!MainFeatures\06_Classes\Boxing
// Упаковка-распаковка размерных типов
var
i: integer := 2;
r: real := 3.14;
o: object;
begin
o := i; // Упаковка: объект размерного типа integer упаковывается в объект ссылочного типа,
// котрый и присваивается переменной o
// Преобразование типов при упаковке - неявное
writeln(integer(o)); // Распаковка: из упакованного объекта извлекается значение
// Преобразование типов при распаковке - явное
o := r;
writeln(real(o));
try // При неверном преобразовании типов генерируется исключение InvalidCastException
writeln(shortint(o));
except
on e: Exception do
writeln(e.GetType);
end;
end.
Пропущена буква ‘о’
//котОрый и присваивается переменной o
Потому что она и не из паскаля, а из .Net . Вот так правильно:
System.Array.Resize(a, a.Length+2);
А через метод это сделать и не выйдет.
Потому что при изменении размера выделяется полностью новая область в памяти, а значит ссылка которую хранит переменная a
- после Resize
будет указывать на другой объект.
А методы (и экстеншн-методы тоже) не могут изменять self
.
Да, компилируйте неуправляемую .dll 64-битной.
Большое спасибо за ответ!
c:\PABCWork.NET\Samples!NewExecutors\файлы1
uses Исполнители;
begin
var Файл1 := Файл.Новый;
var Файл2 := Файл.Новый;
Файл1.ОткрытьНаЧтение('текст.txt');
Файл2.ОткрытьНаЗапись('текст2.txt');
while not Файл1.КонецФайла do
begin
var строка := Файл1.ПрочитатьСтроку;
Файл2.Записать(строка);
end;
Файл1.Закрыть;
Файл2.Закрыть;
Файл2.ВывестиСодержимое;
end.
Файлы1.pas(16) : Неверное количество параметров процедуры .
реализация в модуле:
///- Метод Файл.ВывестиСодержимое
/// Выводит содержимое файла
procedure ВывестиСодержимое(имяфайла: строковое);
begin
if (State<>FileState.Closed) and (f.Name.ToLower=имяфайла.ToLower) then
Println('Ошибка: Содержимое можно вывести только у закрытого файла')
else
begin
WritelnFormat('Содержимое файла {0}:',имяфайла);
try
ReadLines(имяфайла).Println(NewLine);
except
WritelnFormat('Файл {0}: отсутствует на диске',имяфайла);
end;
end;
Работает верно только как Файл2[или Файл1].ВывестиСодержимое('текст2[или текст].txt')
;
c:\PABCWork.NET\Samples!Tutorial\04_Graphics\Gr5
// Графика. Pie
uses GraphABC;
const r = 200;
begin
Window.Title := 'Круговая гистограмма';
var x := Window.Center.X;
var y := Window.Center.Y;
Brush.Color := clRandom;
Pie(x,y,r,0,30);
Brush.Color := clRandom;
Pie(x,y,r,30,110);
Brush.Color := clRandom;
Pie(x,y,r,110,160);
Brush.Color := clRandom;
Pie(x,y,r,160,280);
Brush.Color := clRandom;
Pie(x,y,r,280,360);
end.
Обычно гистограммами называют данные, расположенные в строках и столбцах
Но круговые гистограммы не совсем правильны, правильнее будет сказать ‘круговая диаграмма’
c:\PABCWork.NET\Samples!Tutorial\04_Graphics\Gr7
// Графика. Сохраниение изображения графического окна в файл и загрузка из файла
uses GraphABC;
const
delay = 500;
filename = 'GraphWindow.bmp';
begin
Window.Title := 'Window.Save и Window.Load';
SetWindowSize(320,240);
for var x:=0 to Window.Width - 1 do
for var y:=0 to Window.Height - 1 do
SetPixel(x,y,RGB(x-2*y,y+x,y-2*x));
Window.Save(filename);
for var i := 1 to 5 do
begin
Window.Clear;
Sleep(delay);
Window.Load(filename);
Sleep(delay);
end;
end.
Опечатка : Сохранение изображения графического окна в файл и загрузка из файла
c:\PABCWork.NET\Samples!Tutorial\04_Graphics\GrAnim2
строка 14 // Перерисовываем окно из внеэранного буфера
Опечатка: Внеэкранного
c:\PABCWork.NET\Samples!Tutorial\11_Enums\ Enum2 // ѕеречислимый тип uses System;
type Months = (January,February,March,April,May,June,July,August,September,October,November,December);
begin
var t: &Type := typeof(Months);
var names: array of string := Enum.GetNames(t);
writeln('÷икл по именам перечислимого типа');
foreach name: string in names do
write(name,' ');
writeln; writeln;
var v: &Array := Enum.GetValues(t);
var mm: array of Months := new Months[v.Length];
writeln('÷икл по массиву всех значений перечислимого типа');
for var i:=0 to v.Length-1 do
mm[i] := Months(v.GetValue(i));
for var i:=0 to mm.Length-1 do
write(mm[i],' ');
end.
- // ѕеречислимый тип - перечислимый тип
- ÷икл по именам - цикл по именам
- ÷икл по массиву - цикл по массиву
Не у одного меня такое
Ошибка кодировки в Samples
c:\PABCWork.NET\Samples!Tutorial\12_Files\Text1
// Программа, выводящая текст из своего файла
var
f: Text;
begin
assign(f,'Text1.pas');
reset(f);
while not eof(f) do
begin
var s: string;
readln(f,s);
writeln(s);
end;
close(f);
end.
В окне вывода комментарий
// Программа, выводящая текст из своего файла
Ошибка в кодировке. Использует CP1251.
c:\PABCWork.NET\Samples!Tutorial\13_Pointers\Pointer3
writeln('Значение в динамичесской памяти = ',p^);
Исправить на: динамической.
c:\PABCWork.NET\Samples!Tutorial\13_Pointers\ProcPointer2
writeln('Содержимое массива после умножения его элеметов на 2: ');
исправить на: элементов