Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Cineca inaugura Pitagora, il supercomputer Lenovo per la ricerca sulla fusione nucleare
Cineca inaugura Pitagora, il supercomputer Lenovo per la ricerca sulla fusione nucleare
Realizzato da Lenovo e installato presso il Cineca di Casalecchio di Reno, Pitagora offre circa 44 PFlop/s di potenza di calcolo ed è dedicato alla simulazione della fisica del plasma e allo studio dei materiali avanzati per la fusione, integrandosi nell’ecosistema del Tecnopolo di Bologna come infrastruttura strategica finanziata da EUROfusion e gestita in collaborazione con ENEA
Mova Z60 Ultra Roller Complete: pulisce bene grazie anche all'IA
Mova Z60 Ultra Roller Complete: pulisce bene grazie anche all'IA
Rullo di lavaggio dei pavimenti abbinato a un potente motore da 28.000 Pa e a bracci esterni che si estendono: queste, e molte altre, le caratteristiche tecniche di Z60 Ultra Roller Complete, l'ultimo robot di Mova che pulisce secondo le nostre preferenze oppure lasciando far tutto alla ricca logica di intelligenza artificiale integrata
Renault Twingo E-Tech Electric: che prezzo!
Renault Twingo E-Tech Electric: che prezzo!
Renault annuncia la nuova vettura compatta del segmento A, che strizza l'occhio alla tradizione del modello abbinandovi una motorizzazione completamente elettrica e caratteristiche ideali per i tragitti urbani. Renault Twingo E-Tech Electric punta su abitabilità, per una lunghezza di meno di 3,8 metri, abbinata a un prezzo di lancio senza incentivi di 20.000€
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 24-02-2004, 19:32   #1
Thoruno
Senior Member
 
L'Avatar di Thoruno
 
Iscritto dal: Dec 2000
Città: Prov. Pordenone
Messaggi: 404
E Delphi ?....

Spero che qualcuno sia in forma per Delphi 4 -5
Allora:..
Devo fare un programmino che mi modifichi la data e l'ora di uno o più File e che nel FileListBox o un altro Oggetto mi si visualizzi anche la data e l'ora dei vari File ( insomma come WinCommander ).
Spero di essere stato chiaro, anzi limpido.

Ciao a tutti e un grazie ai Bravoni che mi aiuteranno.
__________________
Mio PC: Asus STRIX Z270OH Gaming / Intel CORE I5 7600 3.5GHZ LGA 1151 - Ram 16 GB Corsair - Scheda Grafica: ASUS Dual GeForce RTX 2060 EVO 6 GB GDDR6 - Monitor Samsung C24F396 Full HD 24"
Stampante: Brother laser HL-3140CW
Thoruno è offline   Rispondi citando il messaggio o parte di esso
Old 24-02-2004, 21:05   #2
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Hmm... non mi ricordo quale chiamata Win32 API ti permette di farlo... devo fare una ricerca, se trovo qualcosa ti faccio sapere (credo Domenica).
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
Old 24-02-2004, 21:44   #3
Thoruno
Senior Member
 
L'Avatar di Thoruno
 
Iscritto dal: Dec 2000
Città: Prov. Pordenone
Messaggi: 404
Aspetto con fiducia Ciao
__________________
Mio PC: Asus STRIX Z270OH Gaming / Intel CORE I5 7600 3.5GHZ LGA 1151 - Ram 16 GB Corsair - Scheda Grafica: ASUS Dual GeForce RTX 2060 EVO 6 GB GDDR6 - Monitor Samsung C24F396 Full HD 24"
Stampante: Brother laser HL-3140CW
Thoruno è offline   Rispondi citando il messaggio o parte di esso
Old 28-02-2004, 15:04   #4
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Allora, ancora non ho trovato esattamente come fare, ma è già un inizio: (per questioni di tempo ho potuto fare solo una ricerca al volo, ora!)

IN C/C++:
Codice:
BOOL SetFileToCurrentTime(HANDLE hFile)
{
    FILETIME ft;
    SYSTEMTIME st;
    BOOL f;

    GetSystemTime(&st);              // gets current time
    SystemTimeToFileTime(&st, &ft);  // converts to file time format
    f = SetFileTime(hf,              // sets last-write time for file
        (LPFILETIME) NULL, (LPFILETIME) NULL, &ft);

    return f;
}
che IN DELPHI dovrebbe essere:
Codice:
uses (...), Windows, (...);
(... altro ...)

function SetFileToCurrentTime(const hFile: Handle): Boolean;
var
    ft: FILETIME; // o forse tagFILETIME
    st: SYSTEMTIME; //o forse tagSYSTEMTIME
    f: Boolean;
begin
    //oopss... non ricordo più quale operatore restituisce un
    //puntatore alla variabile... mi sembra sia "@"...
    GetSystemTime(@st);              // gets current time
    SystemTimeToFileTime(@st, @ft);  // converts to file time format
    f := SetFileTime(hf,              // sets last-write time for file
        LPFILETIME(NULL), LPFILETIME(NULL), @ft);

    Result := f;
end;
Se hai problemi, scrivi e proverò a risolverteli.
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
Old 02-03-2004, 18:22   #5
Thoruno
Senior Member
 
L'Avatar di Thoruno
 
Iscritto dal: Dec 2000
Città: Prov. Pordenone
Messaggi: 404
Eccomi

Ciao DanieleC88, scusami del ritardo:

ho provato a far funzionare il tuo esempio ma mi da qualche problema.

Anche perchè non ho ancora capito bene il significato di 'function'
e tutte le variabili interne.

Per visualizzare l'ora sulla Form io ho fatto cosi circa:

dichiaro la procedura:

type
...........
................
........
................
procedure AppIdle(Sender: TObject; var Done: Boolean);
procedure FormCreate(Sender: TObject);

implementation


Procedure TForm1.AppIdle(Sender: TObject; var Done: Boolean); // Aggiorna
begin // l'ora e
Label1.Caption:=FormatDateTime('hh.nn.ss - dd/mm/yyyy',Now); // la Data
Done:=False; // Tiene aggiornato di continuo la data e l'ora
end;


{$R *.DFM}

procedure TForm1.FormCreate(Sender: TObject);
begin
Application.OnIdle:=AppIdle; // Informa l'applicazione che il nome
// dell'evento è in AppIdle

end;

procedure TForm1.AddItem(Name : String; Size : Integer; Time : Integer; Attr : Integer);
var
Item : TListItem;
ShFileInfo : TSHFILEINFO;

begin
Item:=ListView1.Items.Add;
Item.Caption:=Name; // --- Nome del File

// --- Visualizza la Data e l'ora ( dopo la colonna Nome File )
Item.SubItems.Add(DateTimeToStr(FileDateToDateTime(Time)));
end;
end.

Con qualche ritocco circa va; fatto + o - questo, devo modificare
la data o l'ora del File.

Ciao Mario
__________________
Mio PC: Asus STRIX Z270OH Gaming / Intel CORE I5 7600 3.5GHZ LGA 1151 - Ram 16 GB Corsair - Scheda Grafica: ASUS Dual GeForce RTX 2060 EVO 6 GB GDDR6 - Monitor Samsung C24F396 Full HD 24"
Stampante: Brother laser HL-3140CW
Thoruno è offline   Rispondi citando il messaggio o parte di esso
Old 10-03-2004, 21:15   #6
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Mi devo scusare anche io, ora, per il ritardo... cmq, credo che vada bene anche quel DateTimeToStr(FileDateToDateTime(Time)) che hai usato, ma, sai, nel Delphi sono un po' arrugginito... se hai ancora bisogno di consigli, "fai un fischio".
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
Old 10-03-2004, 22:00   #7
Thoruno
Senior Member
 
L'Avatar di Thoruno
 
Iscritto dal: Dec 2000
Città: Prov. Pordenone
Messaggi: 404
Come si fa a modificare?

Adesso devo modificare la data o l'ora del File che seleziono e poi salvare le nuove modifiche.

Come devo Fare?

Spero che qualcuno mi venga in AIUTOOO!!

Ciao Mario.
__________________
Mio PC: Asus STRIX Z270OH Gaming / Intel CORE I5 7600 3.5GHZ LGA 1151 - Ram 16 GB Corsair - Scheda Grafica: ASUS Dual GeForce RTX 2060 EVO 6 GB GDDR6 - Monitor Samsung C24F396 Full HD 24"
Stampante: Brother laser HL-3140CW
Thoruno è offline   Rispondi citando il messaggio o parte di esso
Old 12-03-2004, 19:11   #8
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Hmm... vedi che ti ho mandato io il codice, nella mia prima risposta. Devi usare l'API SetFileTime...

Codice:
BOOL SetFileTime(
    HANDLE hFile,	// identifies the file 
    CONST FILETIME *lpCreationTime,	// time the file was created 
    CONST FILETIME *lpLastAccessTime,	// time the file was last accessed 
    CONST FILETIME *lpLastWriteTime 	// time the file was last written 
   );
e....

Codice:
typedef struct _FILETIME { // ft  
    DWORD dwLowDateTime; 
    DWORD dwHighDateTime; 
} FILETIME;
ma non hai bisogno di tutto questo: Windows (salva addirittura differenze di nanosecondi), userai solo la seconda.

Dove:
- hFile corrisponde all'handle del file aperto (meglio usare un TFileStream, in modo da ottenere facilmente l'handle);
- lpCreationTime corrisponde al tempo della creazione;
- lpLastAccessTime corrisponde all'ultimo accesso;
- lpLastWriteTime corrisponde all'ultima scrittura.

Quindi, in Delphi basterà usare:
Codice:
uses (...qualcosa...), Windows, (...qualcos'altro...);

//In una funzione o in una procedura:
var
    FileAperto: TFileStream;
    TempoCreazione: tagFILETIME;
    TempoAccesso: tagFILETIME;
    TempoScrittura: tagFILETIME;
begin
    TempoCreazione.dwHighDateTime = (la data che ti serve, valore numerico);
    TempoAdesso.dwHighDateTime = (la data che ti serve, valore numerico);
    TempoScrittura.dwHighDateTime = (la data che ti serve, valore numerico);
    SetFileTime(FileAperto.Handle, @TempoCreazione, @TempoAdesso, @TempoScrittura);
end;
Così dovrebbe andare, ma non ne sono sicuro... non uso il Delphi da un po'.
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
Old 12-03-2004, 20:20   #9
Thoruno
Senior Member
 
L'Avatar di Thoruno
 
Iscritto dal: Dec 2000
Città: Prov. Pordenone
Messaggi: 404
Ci provo

Beh, intanto grazie per questo.
Provo e ti farò sapere se funziona.
Io ho fatto qualcosa anni fa, ma non mi sono mai addentrato nei meandri della API di windows; anche perchè non ne avevo bisogno.
Grazie ancora e a presto.

Ciao Mario
__________________
Mio PC: Asus STRIX Z270OH Gaming / Intel CORE I5 7600 3.5GHZ LGA 1151 - Ram 16 GB Corsair - Scheda Grafica: ASUS Dual GeForce RTX 2060 EVO 6 GB GDDR6 - Monitor Samsung C24F396 Full HD 24"
Stampante: Brother laser HL-3140CW
Thoruno è offline   Rispondi citando il messaggio o parte di esso
Old 14-03-2004, 15:38   #10
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Re: Ci provo

Quote:
Originariamente inviato da Thoruno
Beh, intanto grazie per questo.
Provo e ti farò sapere se funziona.
Io ho fatto qualcosa anni fa, ma non mi sono mai addentrato nei meandri della API di windows; anche perchè non ne avevo bisogno.
Grazie ancora e a presto.

Ciao Mario
A proposito di API (non dovresti avere problemi dato che hai il Delphi, ma...), se non hai la relativa guida dovresti scaricarla.
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
Old 19-03-2004, 20:58   #11
Thoruno
Senior Member
 
L'Avatar di Thoruno
 
Iscritto dal: Dec 2000
Città: Prov. Pordenone
Messaggi: 404
Mi riscuso del ritardo ancora

Ho provato ad usare il tuo consiglio ma mi da l'errore nell'ultima riga, dove c'è la @.
Le var sono state definite:

TempoCreazione.dwHighDateTime = (la data che ti serve, valore numerico);

TempoAdesso.dwHighDateTime = (la data che ti serve, valore numerico);

TempoScrittura.dwHighDateTime = (la data che ti serve, valore numerico);

SetFileTime(FileAperto.Handle, @TempoCreazione, @TempoAdesso, @TempoScrittura);

dove io dovrei inserire la data, come dovrebbe essere scritta?
E poi come faccio a vedere il risultato se è cambiato tramite una Label?

Ultima cosa (per il momento) dove posso scaricare la guida sulle API di win.

Ciao Mario

PS: E non ti illudere che sia finita qui !!!
__________________
Mio PC: Asus STRIX Z270OH Gaming / Intel CORE I5 7600 3.5GHZ LGA 1151 - Ram 16 GB Corsair - Scheda Grafica: ASUS Dual GeForce RTX 2060 EVO 6 GB GDDR6 - Monitor Samsung C24F396 Full HD 24"
Stampante: Brother laser HL-3140CW
Thoruno è offline   Rispondi citando il messaggio o parte di esso
Old 21-03-2004, 21:54   #12
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Re: Mi riscuso del ritardo ancora

Quote:
Originariamente inviato da Thoruno
PS: E non ti illudere che sia finita qui !!!
no problem.

Cmq, la guida alle API di Windows dovrebbe essere compresa col Delphi. Se la trovi nel CD (o comunque nel menu "?" del Delphi), non scaricarla, perchè è molto grande (~25 mega). Non so di preciso dove trovarla, ma cerca un po' in msdn.microsoft.com.

Per quanto riguarda la data: la data è un valore numerico che nel Delphi ha come sottotipo "TDateTime" (cercalo nella guida del Delphi per maggiori informazioni).

Provo a riscriverti la routine, dovrebbe andare così:
Codice:
procedure ImpostaTempo(const Creazione, Scrittura: TDateTime);
var
    FileAperto: TFileStream;
    TempoCreazione: tagFILETIME;
    TempoAccesso: tagFILETIME;
    TempoScrittura: tagFILETIME;
begin
    TempoCreazione.dwHighDateTime = Creazione;
    TempoAdesso.dwHighDateTime = Now; //o qualcosa di simile
    TempoScrittura.dwHighDateTime = Scrittura;
    SetFileTime(FileAperto.Handle, @TempoCreazione, @TempoAdesso, @TempoScrittura);
end;
Per ultimo: mi spieghi che vuoi dire con "E poi come faccio a vedere il risultato se è cambiato tramite una Label" ?
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
Old 22-03-2004, 19:43   #13
Thoruno
Senior Member
 
L'Avatar di Thoruno
 
Iscritto dal: Dec 2000
Città: Prov. Pordenone
Messaggi: 404
Questo

Per ultimo: mi spieghi che vuoi dire con "E poi come faccio a vedere il risultato se è cambiato tramite una Label" ?


Quando io modifico la data o l'ora, oppure le due cose contemporaneamente (data e ora), come faccio a vedere le modifiche con una label?
Spero di essere stato chiaro.

Proverò al più presto quello che mi hai scritto.

Ciao e grazie ancora Mario
__________________
Mio PC: Asus STRIX Z270OH Gaming / Intel CORE I5 7600 3.5GHZ LGA 1151 - Ram 16 GB Corsair - Scheda Grafica: ASUS Dual GeForce RTX 2060 EVO 6 GB GDDR6 - Monitor Samsung C24F396 Full HD 24"
Stampante: Brother laser HL-3140CW
Thoruno è offline   Rispondi citando il messaggio o parte di esso
Old 23-03-2004, 00:23   #14
DanieleC88
Senior Member
 
L'Avatar di DanieleC88
 
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
Beh, nel tuo caso credo che la soluzione migliore sia creare una funzione apposita che aggiorna le data e l'ora. Se stai creando un programmino tipo Explorer, che ti faccia vedere data ed ora di ogni file (quando si usa la visualizzazione Elenco), allora questa è la migliore soluzione, in quanto la stessa funzione la potrai usare al caricamento di una cartella e per aggiornare le date in eltri eventi.
In questo caso, basta che tu chiami nuovamente questa funzione dopo aver cambiato data ed ora al file, e questa farà il resto.
__________________

C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai!
DanieleC88 è offline   Rispondi citando il messaggio o parte di esso
Old 23-03-2004, 10:33   #15
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Thoruno: hai la firma irregolare... Deve essere max 3 righe, la tua sono 4. Puoi correggere ? Grazie
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 23-03-2004, 21:10   #16
Thoruno
Senior Member
 
L'Avatar di Thoruno
 
Iscritto dal: Dec 2000
Città: Prov. Pordenone
Messaggi: 404
........

Chiedo Venia
--------------------
__________________
Mio PC: Asus STRIX Z270OH Gaming / Intel CORE I5 7600 3.5GHZ LGA 1151 - Ram 16 GB Corsair - Scheda Grafica: ASUS Dual GeForce RTX 2060 EVO 6 GB GDDR6 - Monitor Samsung C24F396 Full HD 24"
Stampante: Brother laser HL-3140CW
Thoruno è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Cineca inaugura Pitagora, il supercomputer Lenovo per la ricerca sulla fusione nucleare Cineca inaugura Pitagora, il supercomputer Lenov...
Mova Z60 Ultra Roller Complete: pulisce bene grazie anche all'IA Mova Z60 Ultra Roller Complete: pulisce bene gra...
Renault Twingo E-Tech Electric: che prezzo! Renault Twingo E-Tech Electric: che prezzo!
Il cuore digitale di F1 a Biggin Hill: l'infrastruttura Lenovo dietro la produzione media Il cuore digitale di F1 a Biggin Hill: l'infrast...
DJI Osmo Mobile 8: lo stabilizzatore per smartphone con tracking multiplo e asta telescopica DJI Osmo Mobile 8: lo stabilizzatore per smartph...
Samsung Galaxy S25 Ultra 256 GB a ...
Sanzione ridotta per TIM: l'azienda paga...
DJI Osmo 360 in super offerta su Amazon:...
Moto Watch Fit con Moto AI a metà prezzo...
Batterie ibride plug-in: la classifica d...
Ayaneo Next 2 è ufficiale: presta...
Windows 11 26H1 è ufficiale, ma &...
Archive.is nel mirino: l'FBI vuole saper...
CMF by Nothing Buds 2a: le cuffie ANC co...
Galaxy Watch 7 e 8 in offerta su Amazon:...
Amazon Haul rilancia con il codice LUCKY...
Boeing Virtual Airplane, l'addestramento...
Tutte le funzioni satellitari in arrivo ...
NIU inaugura un nuovo store a Milano: ap...
Applicazioni Mission-Critical: alla scop...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 12:13.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v