Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.07.2007, 20:36   #1
Pancher
Пользователь
 
Регистрация: 31.07.2007
Сообщений: 11
По умолчанию ошибка 48 - программа больше 62520 байт. Что делать?

Люди помогите пожалуйста. Я написал прогу на паскале очень большую, сначало ругалась что слишком большая типа сигмент должен быть 24К, я загнал её в процедуры, теперь прогу сделал ещё больше, строчек 3000 и она выдаёт ошибку 48, что программа больше 62520 байт. Что делать?? Больше ничего удалить не могу, загнать в процедуры больше не чего, да и если делаю новые процедуры, ошибка остаётся, помогает только удаление части программы, а это делать мне никак нельзя!!!!

Помогите пожалуйста, может можно увеличить число 62520, в настройках ничего похожего не нашёл :-(
Pancher вне форума Ответить с цитированием
Старый 31.07.2007, 21:22   #2
Alex21
With best regards
Участник клуба
 
Регистрация: 20.04.2007
Сообщений: 1,448
По умолчанию

Цитата:
Компилятор позволяет обрабатывать программы и библиотечные модули, в которых объем данных и генерируемый машинный код не превышают 64 Кб...
Используйте библиотечные модули (.TPU файлы) или оверлейные структуры.
Alex21 вне форума Ответить с цитированием
Старый 31.07.2007, 21:36   #3
Pancher
Пользователь
 
Регистрация: 31.07.2007
Сообщений: 11
По умолчанию

Цитата:
Сообщение от Alex21 Посмотреть сообщение
Используйте библиотечные модули (.TPU файлы) или оверлейные структуры.
А что это такое??? Где их взять и как ими пользоваться?

Раскажите пожалуйста поподробнее, просто я в этом совсем не разбираюсь :-( А программу надо на этой недели срочно сдавать :-((((

У меня Борланд Паскаль 7,0 Если Турбо Паскаль 7,0.
Pancher вне форума Ответить с цитированием
Старый 31.07.2007, 23:39   #4
KORT
Вот я и
Форумчанин
 
Аватар для KORT
 
Регистрация: 07.04.2007
Сообщений: 501
По умолчанию

Модуль - это такая программа, которая имеет интерфейсную (все переменные и подпрограммы, которые используются в модуле) и инициирующую (реализация подпрограмм) часть. В начале модуля, перед интерфейсной частью прописывается зарезервированное слово UNIT (следом за ним название твоего модуля), но вот в чем фишка - сохраняешь модуль так, как написано слово после UNIT, например:
Unit Laba;
Interface
--------
Implenentation
--------
end.
(сохраняняешь программу так Laba.pas)
Когда модуль готов, компилируешь его Alt+F9.
Теперь в основной программе пишешь:
Program LB1;
Uses Laba;
Var
--------
Begin
----
end.
Понятно??????? Хоть немного..........
Исходники программ - http:\\www.kort.3dn.ru

Последний раз редактировалось KORT; 31.07.2007 в 23:42.
KORT вне форума Ответить с цитированием
Старый 31.07.2007, 23:43   #5
KORT
Вот я и
Форумчанин
 
Аватар для KORT
 
Регистрация: 07.04.2007
Сообщений: 501
По умолчанию

Если сможешь скинь программку на форум, авось чем смогу, тем помогу....... (если можно, то с комментариями)..........
Исходники программ - http:\\www.kort.3dn.ru
KORT вне форума Ответить с цитированием
Старый 31.07.2007, 23:46   #6
Iceman
Форумчанин
 
Регистрация: 08.07.2007
Сообщений: 154
По умолчанию

положи сюда код в txt. я постараюсь сделать.
Iceman вне форума Ответить с цитированием
Старый 31.07.2007, 23:55   #7
Pancher
Пользователь
 
Регистрация: 31.07.2007
Сообщений: 11
По умолчанию

KORT спасибо большое что попытался объяснить, но я ничего не понял :-( Лучше конечно это на примере показать.

Я завтра скину саму программу и текст программы в тхт формате. Буду очень признателен за помощь!!!!
Pancher вне форума Ответить с цитированием
Старый 01.08.2007, 12:17   #8
pinhead
Пользователь
 
Аватар для pinhead
 
Регистрация: 08.12.2006
Сообщений: 36
По умолчанию

Цитата:
Сообщение от Pancher Посмотреть сообщение
спасибо большое что попытался объяснить, но я ничего не понял :-(. Лучше конечно это на примере показать.
Пример:
Код:
unit MaxMin;
 
Interface
 
function Min(a, b: real): real;
function Max(a, b: real): real;
 
Implenentation
 
function Min(a, b: real): real;
begin
   if a>=b then
     Min:= b
   else
     Min:= a;
end;
 
function Max(a, b: real): real;
begin
   if a>=b then
     Max:= a
   else
     Max:= b;
end;
 
end.
Сохраняем этот код под именем ...\MaxMin.pas
Компилим и получаем файл с именем ...\MaxMin.tpu - это модуль!
Затем кидаем этот модуль в папку с программой которую вы пишете!
Пример использования модуля:
Код:
Program UsesModuleMinMax;
uses
   MinMax;
var
   a, b :real;
begin
   writeln('Введите два числа');
   write(a->);
   readln(a);
   write(b->);
   readln(b);
   writeln(Min(a, b), ' -это минимальное число из введённых!');
   writeln(Max(a, b), ' -это максимальное число из введённых!');
   readln;
end.
Т.е. мы используем те функции которые находятся в модуле!
Знание этого – Мудрость.
Умение этим пользоваться – Искусство.
pinhead вне форума Ответить с цитированием
Старый 01.08.2007, 19:04   #9
Pancher
Пользователь
 
Регистрация: 31.07.2007
Сообщений: 11
По умолчанию

Прикрепил файл pas c программой. + листинг программы в ворде и в блакноте.

Я сегодня пытался сделать модули но что то не получилось. Модули то я сделал но главная программа не взаимодействовала с ними :-((

Кто может сделайте пожалуйста модули в моей программе, чтобы всё работало! Очень прошу!!!
Вложения
Тип файла: rar Программа.rar (17.5 Кб, 23 просмотров)
Pancher вне форума Ответить с цитированием
Старый 01.08.2007, 21:39   #10
Alex21
With best regards
Участник клуба
 
Регистрация: 20.04.2007
Сообщений: 1,448
По умолчанию

У Вас используется 47 примерно одинаковых "пунктов". Можно упростить Ваш код, введя процедуру с параметрами.
Т.е. как я понял различие в пунктах: № пункта, 3 цвета, 3 сообщения.

Цитата:
procedure PPP
(punct:byte;color1,color2,color3:TC olor;mes1,mes2,mes3:string);
begin
а сюда весь текст из части про пункт, вместо параметров вставляем переменные. (см ниже)
end;
и соответственно будет 47 вызовов этой процедуры (т.е. всего 47 строк)

вызов примерно так:
PPP(24,green,blue,red,'сообщение1','соо бщение2','сообщение3');
подчеркнуты переменные.

Если и не все пункты можно так заменить, то покрайне мере большую их часть.
Ну это как вариант.
Alex21 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
1 байт 9 бит ?! Иллидан Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 4 13.04.2008 12:47
байт режима адресации fermat_c Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 10.04.2008 15:39
что делает эта программа и где ошибка? дангер Паскаль, Turbo Pascal, PascalABC.NET 27 28.01.2008 13:38
записать байт файл мандарин Общие вопросы Delphi 8 09.05.2007 20:45
че делать если вылетает ошибка Table does not exist? Алёна БД в Delphi 4 25.04.2007 15:09