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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.02.2016, 18:23   #1
palpetrovich
 
Регистрация: 11.02.2016
Сообщений: 7
По умолчанию В чем смысл: Result := Hf = -1; ?

Все привет, туплю, не пойму как это работает, да и работает-ли вообще?

Код:
  Hf := FileOpen(aFileName, fmOpenReadWrite or fmShareExclusive);
  Result := Hf = -1;
из справки FileOpen:
Если файл успешно открыт, то функция возвращает дескриптор файла, иначе возвращается значение -1.

min@y™ "вангую..."

да что тут ванговать, ежу понятно понятно откуда текст .. я непонимаю именно это: Result := Hf = -1;

Последний раз редактировалось palpetrovich; 15.02.2016 в 18:47.
palpetrovich вне форума Ответить с цитированием
Старый 15.02.2016, 18:42   #2
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

вангую
Код:
{$TELEPATOR_MODE ON}

function CrackFile(const AFileName: string): Boolean;
var
  Hf: THandle;
begin
  Hf := FileOpen(aFileName, fmOpenReadWrite or fmShareExclusive);
  Result := Hf = -1 { INVALID_HANDLE_VALUE }; // вообще, логичнее <>, чтобы вернуть true при успехе

  if Result
    then Exit;
    
  try
    // тут работа с файлом (чтение и запись)
    // переменная возврата тоже может тут фигурировать
  finally
    CloseHandle(Hf);
  end;
end;

begin
  if not CrackFile('kernel32.dll')
    then writeln('ok')
    else writeln('shit!');
end;

{$TELEPATOR_MODE OFF}
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...

Последний раз редактировалось min@y™; 15.02.2016 в 18:47.
min@y™ вне форума Ответить с цитированием
Старый 15.02.2016, 18:54   #3
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

А что тут непонятного ?
Hf = -1 - это логическая операция сравнения. Если это истинно, то и возвращает значения True .
У функции же тип Boolean

То есть функция CrackFile как бы спрашивает :" а нет ли ошибки, а ?.."
type_Oleg вне форума Ответить с цитированием
Старый 15.02.2016, 18:56   #4
palpetrovich
 
Регистрация: 11.02.2016
Сообщений: 7
По умолчанию

min@y™ "вангую..." - прошу прощения, недоглядел, у меня немного код другой:

Код:
//Проверка открыт-ли файл. True - файл уже открыт. Иначе - False.
function IsOpen(const aFileName : String) : Boolean;
var
  Hf : Integer;
begin
  Hf := FileOpen(aFileName, fmOpenReadWrite or fmShareExclusive);
  Result := Hf = -1;
  if not Result then FileClose(Hf);
end;
type_Oleg - вот!!!! Спасибо, дошло! ...говорю-ж, туплю
palpetrovich вне форума Ответить с цитированием
Старый 15.02.2016, 19:07   #5
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
у меня немного код другой
да как раз тот же самый 1 в 1, только без защиты от незакрытия файла в случае фейла.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 15.02.2016, 19:15   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
я непонимаю именно это: Result := Hf = -1;
установить логическую переменную-результат функции CrackFile в значение "истина", если файл не открылся, или в "ложь", если файл открылся успешно.

эта запись эквивалентна такой:
Код:
if Hf = -1 then  Result := true else  Result := false;

уп-с. я опоздал....
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Фильм Груз 200, в чем смысл в самом конце? romantik2011 Свободное общение 20 02.01.2016 11:11
В чем смысл ООП nfernee PHP 2 14.03.2012 00:38
Условный переход командой jnb. В чем смысл данного перехода? Ibanez Wizard Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 01.04.2011 04:41
Краткий смысл. В чем цель и смысл вашей жизни? grenles Свободное общение 20 13.09.2010 07:13
В чем смысл жизни? NNN Свободное общение 76 14.07.2008 21:16