function GetFileLastAccessTime gå videre?

Tags:    delphi

Hej

I procedure TForm1.IEfunction GetFileLastAccessTime, forsøger jeg, at gå vider hvis filen findes, men det lykkes ikke.
Gør brug af function GetFileLastAccessTime ved dato angivelse.
Kan du se hvor det går galt?
For en orden skyld, er hele Unit1 her.

Fold kodeboks ind/udKode 




Med venlig hilsen Og et godt nytår.
Monie Jacobsen

energy@sunwind.dk



8 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 3 karma
Sorter efter stemmer Sorter efter dato
Hej

I procedure TForm1.IEfunction GetFileLastAccessTime, forsøger jeg, at gå vider hvis filen findes, men det lykkes ikke.
Gør brug af function GetFileLastAccessTime ved dato angivelse.
Kan du se hvor det går galt?
For en orden skyld, er hele Unit1 her.


I procedure TForm1.IEDownload1Complete checker du om en mappe findes i stedet for om filen findes. Prøv at rette det til:

<pre>
procedure TForm1.IEDownload1Complete(Sender: TBSCB; Stream: TStream;
Result: HRESULT);
begin
if (Result = S_OK) then
Memo1.lines.add('Download complete...')
else // Vil ikke gå videre, hvis filen eksisterer!

if FileExists('c:\\bookmap\\murpro.zip') then begin
MessageDlg('c:\\bookmap\\murpro.zip var sidst opdateret den ' + TimeToStr(GetFileLastAccessTime( 'c:\\bookmap\\murpro.zip' ) ), mtInformation, [mbOk], 0 )
end;

end;
</pre>



Hej

I procedure TForm1.IEfunction GetFileLastAccessTime, forsøger jeg, at gå vider hvis filen findes, men det lykkes ikke.
Gør brug af function GetFileLastAccessTime ved dato angivelse.
Kan du se hvor det går galt?
For en orden skyld, er hele Unit1 her.


I procedure TForm1.IEDownload1Complete checker du om en mappe findes i stedet for om filen findes. Prøv at rette det til:

<pre>
procedure TForm1.IEDownload1Complete(Sender: TBSCB; Stream: TStream;
Result: HRESULT);
begin
if (Result = S_OK) then
Memo1.lines.add('Download complete...')
else // Vil ikke gå videre, hvis filen eksisterer!

if FileExists('c:\\bookmap\\murpro.zip') then begin
MessageDlg('c:\\bookmap\\murpro.zip var sidst opdateret den ' + TimeToStr(GetFileLastAccessTime( 'c:\\bookmap\\murpro.zip' ) ), mtInformation, [mbOk], 0 )
end;

end;
</pre>


Hej Lasse M

Jeg havde sigeret mig blind.

Men får stadig ikke vist koden nedenfor - hvis "murpro.zip" findes
så skulle denne gerne vises!

Fold kodeboks ind/udKode 


Med venlig hilsen
Monie Jacobsen

energy@sunwind.dk



Hej

I procedure TForm1.IEfunction GetFileLastAccessTime, forsøger jeg, at gå vider hvis filen findes, men det lykkes ikke.
Gør brug af function GetFileLastAccessTime ved dato angivelse.
Kan du se hvor det går galt?
For en orden skyld, er hele Unit1 her.


I procedure TForm1.IEDownload1Complete checker du om en mappe findes i stedet for om filen findes. Prøv at rette det til:

<pre>
procedure TForm1.IEDownload1Complete(Sender: TBSCB; Stream: TStream;
Result: HRESULT);
begin
if (Result = S_OK) then
Memo1.lines.add('Download complete...')
else // Vil ikke gå videre, hvis filen eksisterer!

if FileExists('c:\\bookmap\\murpro.zip') then begin
MessageDlg('c:\\bookmap\\murpro.zip var sidst opdateret den ' + TimeToStr(GetFileLastAccessTime( 'c:\\bookmap\\murpro.zip' ) ), mtInformation, [mbOk], 0 )
end;

end;
</pre>

Hej Lasse M

Jeg havde sigeret mig blind.

Men får stadig ikke vist koden nedenfor - hvis "murpro.zip" findes
så skulle denne gerne vises!

Fold kodeboks ind/udKode 


Med venlig hilsen
Monie Jacobsen

energy@sunwind.dk


Hej jeg glemte denne fejlmeddelse:
[Warning] Unit1.pas(53): Return value of function 'GetFileLastAccessTime' might be undefined

Hvad er der galt her?
Har det noget, at gører med, at det andet ikke fungerer?

Med venlig hilsen
Monie Jacobsen
energy@sunwind.dk



Hej

I procedure TForm1.IEfunction GetFileLastAccessTime, forsøger jeg, at gå vider hvis filen findes, men det lykkes ikke.
Gør brug af function GetFileLastAccessTime ved dato angivelse.
Kan du se hvor det går galt?
For en orden skyld, er hele Unit1 her.


I procedure TForm1.IEDownload1Complete checker du om en mappe findes i stedet for om filen findes. Prøv at rette det til:

<pre>
procedure TForm1.IEDownload1Complete(Sender: TBSCB; Stream: TStream;
Result: HRESULT);
begin
if (Result = S_OK) then
Memo1.lines.add('Download complete...')
else // Vil ikke gå videre, hvis filen eksisterer!

if FileExists('c:\\bookmap\\murpro.zip') then begin
MessageDlg('c:\\bookmap\\murpro.zip var sidst opdateret den ' + TimeToStr(GetFileLastAccessTime( 'c:\\bookmap\\murpro.zip' ) ), mtInformation, [mbOk], 0 )
end;

end;
</pre>

Hej Lasse M

Jeg havde sigeret mig blind.

Men får stadig ikke vist koden nedenfor - hvis "murpro.zip" findes
så skulle denne gerne vises!

Fold kodeboks ind/udKode 


Med venlig hilsen
Monie Jacobsen

energy@sunwind.dk

Hej jeg glemte denne fejlmeddelse:
[Warning] Unit1.pas(53): Return value of function 'GetFileLastAccessTime' might be undefined

Hvad er der galt her?
Har det noget, at gører med, at det andet ikke fungerer?

Med venlig hilsen
Monie Jacobsen
energy@sunwind.dk


Har lige fået det til, at virke!

Men får stadig fejmeddlingen:

[Warning] Unit1.pas(53): Return value of function 'GetFileLastAccessTime' might be undefined

Hvad er der galt her?
Og hvordan undgås denne fejl?

Med venlig hilsen
Monie Jacobsen
energy@sunwind.dk



Har lige fået det til, at virke!

Men får stadig fejmeddlingen:

[Warning] Unit1.pas(53): Return value of function 'GetFileLastAccessTime' might be undefined

Hvad er der galt her?
Og hvordan undgås denne fejl?


En warning er ikke det samme som en fejl, men nærmere en potentiel fejlkilde. I det her tilfælde får du den fordi Result kun bliver tildelt en værdi hvis "INVALID_HANDLE_VALUE <> h" er opfyldt. Du kan få den væk ved enten et tildele Result en værdi i starten af funktionen eller ved at give Result en værdi hvis "INVALID_HANDLE_VALUE = h".




Har lige fået det til, at virke!

Men får stadig fejmeddlingen:

[Warning] Unit1.pas(53): Return value of function 'GetFileLastAccessTime' might be undefined

Hvad er der galt her?
Og hvordan undgås denne fejl?


En warning er ikke det samme som en fejl, men nærmere en potentiel fejlkilde. I det her tilfælde får du den fordi Result kun bliver tildelt en værdi hvis "INVALID_HANDLE_VALUE <> h" er opfyldt. Du kan få den væk ved enten et tildele Result en værdi i starten af funktionen eller ved at give Result en værdi hvis "INVALID_HANDLE_VALUE = h".


Du kan vel ikke indsætte et eksempel, så jeg kan se hvor og hvordan du havde tænkt!

Med venlig hilsen
Monie Jacobsen
energy@sunwind.dk





Du kan vel ikke indsætte et eksempel, så jeg kan se hvor og hvordan du havde tænkt!


<pre>
function GetFileLastAccessTime(sFileName : string ) : TDateTime;
var
ffd : TWin32FindData;
dft : DWord;
lft : TFileTime;
h : THandle;
begin
h := Windows.FindFirstFile(PChar(sFileName), ffd);
if(INVALID_HANDLE_VALUE <> h)then
begin
FileTimeToLocalFileTime(ffd.ftLastAccessTime, lft );
FileTimeToDosDateTime(lft,LongRec(dft).Hi, LongRec(dft).Lo);
Result := FileDateToDateTime(dft);
end
else
Result := Now;
end;
</pre>





Du kan vel ikke indsætte et eksempel, så jeg kan se hvor og hvordan du havde tænkt!


<pre>
function GetFileLastAccessTime(sFileName : string ) : TDateTime;
var
ffd : TWin32FindData;
dft : DWord;
lft : TFileTime;
h : THandle;
begin
h := Windows.FindFirstFile(PChar(sFileName), ffd);
if(INVALID_HANDLE_VALUE <> h)then
begin
FileTimeToLocalFileTime(ffd.ftLastAccessTime, lft );
FileTimeToDosDateTime(lft,LongRec(dft).Hi, LongRec(dft).Lo);
Result := FileDateToDateTime(dft);
end
else
Result := Now;
end;
</pre>


Tak Lasse M

Det virkede.
Jeg var lidt tvivlende hvor du vil indsætte denne Result := Now;
Mange tak.

Med venlig hilsen
Monie Jacobsen

energy@sunwind.dk



t