IPB
ЛогинПароль:

> Правила раздела!

1. Заголовок или название темы должно быть информативным !
2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК !
4. НЕ используйте форум для личного общения!
5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!

2 страниц V < 1 2  
 Ответить  Открыть новую тему 
> Копирование файла
сообщение
Сообщение #21


Ищущий истину
******

Группа: Пользователи
Сообщений: 4 825
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


А вот очень красивый вариант копирования (достал в конференции ФИДО)
Полностью подходит под определение объектное программирование!

Реализация перенесена сюда: FAQ: Файлы
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #22


Бывалый
***

Группа: Пользователи
Сообщений: 180
Пол: Мужской

Репутация: -  2  +


Oleg_Z
Это из TurboVision, для пользователя да, предельно ясно и красиво... вот только если захочешь сделать с этим что-нибудь нестандартное, тогда проблемы и начнутся...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #23


Ищущий истину
******

Группа: Пользователи
Сообщений: 4 825
Пол: Мужской
Реальное имя: Олег

Репутация: -  45  +


Да, согласен, кстати на форуме нет ничего про объекты, TV, ООП, надо что-то придумать! (да и в инете недостаточно инфы!)


--------------------
Помогая друг другу, мы справимся с любыми трудностями!
"Не опускать крылья!" (С)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #24


Прогрессор
****

Группа: Пользователи
Сообщений: 602
Пол: Мужской
Реальное имя: Михаил

Репутация: -  9  +


Цитата(P@sh@ @ 9.04.04 7:19)
Oleg_Z
Это из TurboVision, для пользователя да, предельно ясно и красиво... вот только если захочешь сделать с этим что-нибудь нестандартное, тогда проблемы и начнутся...

Если есть исходники TV, то не проблема! {Кстати, свою процедуру копирования я как-то вставлял в прогру с usаньем TV, сделал достаточно быстро, что без исходников бы вряд ли получилось}

P@sh@, Oleg_Z, спасибо за искодники! Как только скачаю Pascal for Windows, простетирую все три проги на файлах разного размера и, наверное, на разных компах, напишу, что получается.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #25


Профи
****

Группа: Пользователи
Сообщений: 930
Пол: Мужской

Репутация: -  11  +


Цитата(Dark @ 22.03.04 2:58)
Ну копирование это то не сложно, а вот реестр ) чтоб пользователь не знал...

http://argon.com.ru/windows/winxp/xpautorun
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #26


Новичок
*

Группа: Пользователи
Сообщений: 43
Пол: Мужской

Репутация: -  0  +


SKVOZNJAK спасибо обезательно воспользуюсь
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #27


Знаток
****

Группа: Пользователи
Сообщений: 408
Пол: Мужской

Репутация: -  3  +


Я знаю этот модуль XMS тока он у мя немного расширен по удобству smile.gif
почти одно и тоже но...


unit xmslib;

                    interface
type TXMS = record
MajVer,MinVer:byte;
Func:pointer;
end;

type
PMoveStruct= ^TMoveStruct;
TMoveStruct=record
 lenght            :longint;{желательно, четная}
 SourceHandle      :word;{0 - читать из convension memory}
 SourceOffset      :longint;{полный pointer}
 DestanationHandle :word;{0 - читать из convension memory}
 DestanationOffset :longint;{полный pointer}
end;

var       IsXMS:boolean;
         XMS:TXMS;

procedure DetectXMS;{есть ли XMS}
function  XMSGetFreeMem:word;{Скока мемори свободно?}
function  XMSAllocateMem(size:word):word;{захватить большой кус памяти}
function  XMSReAllocateMem(desc,size:word):word;{переопределить размеры куска - нам вечно МАААЛО =)}
function  XMSFreeMem(desc:word):boolean;{Освободить кусок}
procedure XMSMoveMem(MoveStruct:PMoveStruct);{перебросить инфу из памяти в память}

                    implementation

procedure DetectXMS;
begin
 asm
  mov [IsXMS],0
{--- Is xms ---}
  mov ax,4300h
  int 2Fh
  cmp al,80h
  jne @exit
  mov [IsXMS],1
{--- xms control---}
  mov ax,4310h
  int 2Fh
  mov word ptr [XMS.func],bx
  mov word ptr [XMS.func+2],es
{--- xms Ver---}
  xor ax,ax
  call [xms.func]
  mov [XMS.MajVer],ah
  mov [XMS.MinVer],al

@exit:
 end;
end;

function XMSGetFreeMem:word;
begin
 asm
  mov @result,0
  cmp [IsXMS],0
  je @exit
  xor ax,ax
  mov ah,8
  call [xms.func]
  mov @result,dx
@exit:
 end;
end;

function XMSAllocateMem(size:word):word;
begin
 asm
  mov @result,0
  cmp IsXMS,0
  je @exit
  mov ax,0900h
  mov dx,[size]
  call [xms.func]
  cmp ax,1
  jne @exit
  mov @result,dx
@exit:
 end;
end;

function XMSReAllocateMem(desc,size:word):word;
begin
 asm
  mov @result,0
  cmp IsXMS,0
  je @exit
  mov ax,0F00h
  mov bx,[size]
  mov dx,[desc]
  call [xms.func]
  cmp ax,1
  jne @exit
  mov @result,dx
@exit:
 end;
end;

function XMSFreeMem(desc:word):boolean;
begin
 asm
  cmp IsXMS,0
  je @exit
  mov ax,0A00h
  mov dx,[desc]
  call [xms.func]
  mov @result,al
@exit:
 end;
end;

procedure XMSMoveMem(MoveStruct:PMoveStruct);
begin
 asm
  cmp IsXMS,0
  je @exit
  push ds
  lds si,MoveStruct
  mov ax,0B00h
  call [xms.func]
  pop ds
@exit:
 end;
end;

begin
DetectXMS;
end.

(*
Здесь немнога бла бла бла по поводу - почему мне XMS больше чем EMM
понравилось - так вот,

1. EMM позволяет из куска памяти в 64 Kb копировать все 64 Kb -
здесь тоже самое, НО после этого, для копирования нового куска
в 64 Kb здесь надо всего навсего изменить один параметр записи, а EMM
необходимо сдвинуть окно (или его часть).

2.Процедуру для копирования здесь предоставляет драйвер, в EMM вы пишете
ее сами.

3. Нельзя наверняк сказать - есть ли на компьютере EMM драйвер, потому что
проверка осуществляеться с помощью проверки поинтера. Про XMS можно узнать
однозначно путем вызова прерывания.

4. На XMS можно установить hook и проверять что программа там вызывает.
*)



--------------------
- Где я?
- Во тьме.
- В какой тьме?
- Во тьме твоего мозга.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

2 страниц V < 1 2
 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 27.09.2020 3:31
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name