Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

GetFileTime и SetFileTime


Zool ©   (2002-03-18 19:22:00) 

Добройночи, доброе утро госпада программисты!
Подскажите почему не пашет такой код :
..........
var
T1, T2, T3 : PFileTime;
begin
GetFileTime(FileOpen("File.txt", fmOpenRead), T1, T2, T3);
SetFileTime(FileOpen("File.txt", fmOpenWrite), T2, T2, T2);
end;
При запуске Делфи ужасно матерится, а причуну не пойму, плиз хелп. Спосибо.


Zool   (2002-03-20 21:44:00) [1]

Всем сенкс! наконец-то всё пашет!!!


Rooman   (2002-03-20 19:40:00) [2]

ты некорректно используешь функцию FileOpen.

GetFileTime(FileOpen("S.txt", fmShareDenyNone), @T1, @T2, @T3);
// ты открыл файл s.txt и считал его параметры

SetFileTime(FileOpen("S.txt", fmOpenWrite), @T2, @T2, @T2);
// ты открыл тот же файл повторно

FileClose(FileOpen("S.txt", fmOpenWrite));
// ты открыл тот же файл третий раз и закрыл его

А первые две открытых, скажем так, копии этого файла - ты хрен закрыл!

Исправь так:

procedure TForm1.Button4Click(Sender: TObject);
var
T1, T2, T3 : TFileTime;
h:THandle;
begin
h:=FileOpen("S.txt", fmOpenReadWrite);
GetFileTime(h, @T1, @T2, @T3);
SetFileTime(h, @T2, @T2, @T2);
FileClose(h);
end;


Zool   (2002-03-20 17:58:00) [3]

Ну я и запарился с етой фигнёй! Мне, как я понял T2 менять не надо, я его меняю с помощью FileSetDate. И ещё как я понимаю, мы считываем с помощью ф-ции GetFileTime, а потом с помощью SetFileTime, заменяем двсе даты на дату открытия, то есть T2, я прав? Ну если я прав, то я не понимаю почему ета прога ровным счётом нифига не делает!
<T2 уже предстовляет собой дату 20 марта 2003 года :)>
procedure TForm1.Button4Click(Sender: TObject);
var
T1, T2, T3 : TFileTime;
begin
GetFileTime(FileOpen("S.txt", fmShareDenyNone), @T1, @T2, @T3);
SetFileTime(FileOpen("S.txt", fmOpenWrite), @T2, @T2, @T2);
FileClose(FileOpen("S.txt", fmOpenWrite));
end;


Anatoly Podgoretsky   (2002-03-19 20:51:00) [4]

Должен ихменить, но она то у тебя не отличается, ты же обратно записывешь старое значение, кроме того еще и окрываешь два раза один и тот же файд, неплохо бы и закрыть.

h :=FileOpen
GetFileTime(h, T1, T2, T3);
изменить что нибудь в T1, T2, T3
SetFileTime(h, T2, T2, T2);
FileClose

примерно так


Zool   (2002-03-19 17:23:00) [5]

А разве данный код не должен в файле File.txt, изменить дату создания, открытия, изминения на дату открытия?


Zool   (2002-03-19 12:57:00) [6]

А разве данный код не должен в файле File.txt, изменить дату создания, открытия, изминения на дату открытия?


Zool   (2002-03-19 10:15:00) [7]

А разве данный код не должен в файле File.txt, изменить дату создания, открытия, изминения на дату открытия?


Anatoly Podgoretsky   (2002-03-18 22:02:00) [8]

Я не значю чего тч от нее ожидаешь, но ты ничего не просишь


Zool   (2002-03-18 21:31:00) [9]

Ничё не выдаёт, а просто нефига не делает, не делает того, чего от нее просят!


Anatoly Podgoretsky   (2002-03-18 20:44:00) [10]

А что значит не пашет, выдает какую лиюо ошибку?
Я сейчас в чате.


Zool   (2002-03-18 20:33:00) [11]

Нету, ето весь код! И скажите на милось чего не пашет?


Zool   (2002-03-18 20:32:00) [12]

Win32Check улётная вещь! Короче если в var написать T1, T2, T3 : PFileTime, а не
TFileTime, тогда ошибка : неверный дискриптор, а если наоборот, то вообще нифига не происходит!


Anatoly Podgoretsky   (2002-03-18 20:26:00) [13]

А между Get и Set есть что нибудь?


Zool   (2002-03-18 20:16:00) [14]

Win32Check улётная вещь! Короче если в var написать T1, T2, T3 : PFileTime, а не
TFileTime, тогда ошибка : неверный дискриптор, а если наоборот, то вообще нифига не происходит!


Zool   (2002-03-18 20:09:00) [15]

Может оно и работает, но ф-ция SetFileTime(FileOpen("File.txt", fmOpenWrite), @T2, @T2, @T2), приносит 0 эффекта! Почему?!


Anatoly Podgoretsky   (2002-03-18 20:07:00) [16]

Zool (18.03.02 19:22)
При ссылке на матюги желательно их приводить полностью
Но возможно у тебя не дельфи матюгается, а система, надо проверять работу функции на ошибку

if GetFileTime(FileOpen("File.txt", fmOpenRead),@T1,@T2,@T3) = 0 then
ShowMessage("Error: " + IntToStr(GetLastError)):

А еще лучше Win32Check(GetFileTime(FileOpen("File.txt", fmOpenRead),@T1,@T2,@T3));


LLL   (2002-03-18 19:54:00) [17]

Указатели не иниц-ны.
var
T1, T2, T3 : TFileTime;
begin
GetFileTime(FileOpen("Test.dpr",fmOpenRead),@T1, @T2, @T3);
должно сработать.


Наверх

Титульная страница Поиск, карта сайта Написать письмо