Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine porta Logan in un'avventura inedita, violenta e fortemente narrativa, costruita attorno alla sua natura di combattente e al difficile rapporto con il proprio passato. Insomniac Games punta su combattimenti spettacolari, progressione e personalizzazione, inserendo l'azione in un mondo segnato dalla persecuzione dei mutanti. Un viaggio intenso, che alterna mattanza, esplorazione e momenti sorprendentemente emotivi.
DJI Romo 2: tante novità lo rendono un robot completo
DJI Romo 2: tante novità lo rendono un robot completo
Romo 2 è la seconda generazione di robot lavapavimenti di DJI, un modello che si caratterizza per la precisione nel sistema di navigazione e per il funzionamento particolarmente silenzioso. Con le modifiche introdotte in questa seconda versione, e un posizionamento di prezzo più allineato alla concorrenza, rappresenta una valida alternativa sul mercato delle soluzioni di pulizia domestica
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Il primo Sony con retroilluminazione True RGB alla prova del banco di misura e dei contenuti: luminanza enorme, colori accurati in HDR e un antiriflesso molto efficace. I limiti sono due sole HDMI 2.1 e il blooming fuori asse
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 30-07-2006, 10:44   #1
nico88desmo
Senior Member
 
Iscritto dal: Jul 2006
Messaggi: 1568
[C] spostamento file...

Un saluto a tutti intanto!

allora...sto facendo un programmino banale C..
dovrei spostare un pò di file .mp3 in una sola cartella, convertire gli mp3 con un altro bitrate (a questo scopo utilizzo un altro programma però ), e una volta convertiti devo rimettere ciascun file .mp3 nella directory in ciu era.
concettualmente non è difficile perchè memorizzo in un file la path di ciascuna canzone..però il mio problema è questo: utilizzando la funzione system("stringa_comando") ho notato che non funziona sempre; la mia domanda è questa:
c'è una libreria in C che faccia questo tipo di cose senza utilizzare delle chiamate di sistema?
nico88desmo è offline   Rispondi citando il messaggio o parte di esso
Old 30-07-2006, 15:47   #2
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
per spostare un file usa la funzione link per associargli un nuovo nome e dopo usa unlink per togliergli quello vecchio; su Windows però la link non c'è, devi usare MoveFile(Ex).

Ultima modifica di 71104 : 30-07-2006 alle 15:50.
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 31-07-2006, 11:02   #3
nico88desmo
Senior Member
 
Iscritto dal: Jul 2006
Messaggi: 1568
grazie mille! funziona!
una cosa che non ho capito invece...che differenza c'è tra MoveFile() e MoveFileEx() ??
nico88desmo è offline   Rispondi citando il messaggio o parte di esso
Old 31-07-2006, 11:07   #4
nico88desmo
Senior Member
 
Iscritto dal: Jul 2006
Messaggi: 1568
nel precedente post non sono stato chiaro, io per spostare i file ho utilizzato la funzione MoveFile(), ma che differenza c'è tra questa e la MoveFileEx()?
nico88desmo è offline   Rispondi citando il messaggio o parte di esso
Old 31-07-2006, 12:45   #5
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
niente di che, semplicemente MoveFileEx ha un parametro in più al quale puoi passare dei flags che ti permettono di impostare alcune caratteristiche dell'operazione; e sto vedendo adesso che in Windows 2000 è stata introdotta anche una certa MoveFileWithProgress che ti permette di impostare una funzione di callback che puoi usare per disegnare il cursorse della percentuale di avanzamento dell'operazione fico ve'?
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 31-07-2006, 13:24   #6
nico88desmo
Senior Member
 
Iscritto dal: Jul 2006
Messaggi: 1568
infatti ho notato anche io scorrendo un pò la guida...
però non ho capito bene come fare..
nico88desmo è offline   Rispondi citando il messaggio o parte di esso
Old 31-07-2006, 13:45   #7
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Messaggi: 5206
Si può anche usare la funzione SHFileOperation (che permette di avere la finestra di progresso "standard" di Windows).
__________________
Andrea, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 31-07-2006, 13:51   #8
nico88desmo
Senior Member
 
Iscritto dal: Jul 2006
Messaggi: 1568
e in questo ultimo caso...di che libreria fa parte?
sempre windows.h ??
nico88desmo è offline   Rispondi citando il messaggio o parte di esso
Old 31-07-2006, 13:53   #9
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Messaggi: 5206
Quote:
Originariamente inviato da nico88desmo
e in questo ultimo caso...di che libreria fa parte?
Sempre API Win32.

Quote:
Originariamente inviato da nico88desmo
sempre windows.h ??
#include <shellapi.h>
__________________
Andrea, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 31-07-2006, 13:56   #10
nico88desmo
Senior Member
 
Iscritto dal: Jul 2006
Messaggi: 1568
ok, appena posso provo allora
nico88desmo è offline   Rispondi citando il messaggio o parte di esso
Old 31-07-2006, 15:12   #11
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
si ma windows.h includilo lo stesso quando programmi per Win32
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 01-08-2006, 09:02   #12
trallallero
Senior Member
 
L'Avatar di trallallero
 
Iscritto dal: May 2006
Città: Wursteland
Messaggi: 1749
Quote:
Originariamente inviato da 71104
niente di che, semplicemente MoveFileEx ha un parametro in più al quale puoi passare dei flags che ti permettono di impostare alcune caratteristiche dell'operazione; e sto vedendo adesso che in Windows 2000 è stata introdotta anche una certa MoveFileWithProgress che ti permette di impostare una funzione di callback che puoi usare per disegnare il cursorse della percentuale di avanzamento dell'operazione fico ve'?
antiquati!
Qui stiamo moooooolto piú avanti
anziché il cursorse della percentuale di avanzamento abbiamo
| / - \ che se li disegni sullo stesso punto velocemente ti danno un effetto di rotolina che gira davvero figa!
__________________
Nintendo WIII 4d Turbo Intercooler - Sestium X 666 99,312 GHz - 6.984 Ram Σ(9999) MHz - HDD SATA 97e^(10) bytes 93³ rpm - ATI biberon X900z Mb - Win Eight SP (1 > yours) 16 Valve
trallallero è offline   Rispondi citando il messaggio o parte di esso
Old 01-08-2006, 22:07   #13
The3DProgrammer
Senior Member
 
Iscritto dal: May 2000
Messaggi: 1459
Quote:
Originariamente inviato da trallallero
antiquati!
Qui stiamo moooooolto piú avanti
anziché il cursorse della percentuale di avanzamento abbiamo
| / - \ che se li disegni sullo stesso punto velocemente ti danno un effetto di rotolina che gira davvero figa!
LoL

si può fare anche con MoveFileWithProgress cmq

ciau
The3DProgrammer è offline   Rispondi citando il messaggio o parte di esso
Old 02-08-2006, 19:03   #14
nico88desmo
Senior Member
 
Iscritto dal: Jul 2006
Messaggi: 1568
ho provato a vedere i parametri che bisogna passare alla funzione MoveFileWithProgress...e sono questi

BOOL MoveFileWithProgress(
LPCTSTR lpExistingFileName,
LPCTSTR lpNewFileName,
LPPROGRESS_ROUTINE lpProgressRoutine,
LPVOID lpData,
DWORD dwFlags
);

per i primi 2 ok, mentre gli altri 3??? cosa vogliono dire?
nico88desmo è offline   Rispondi citando il messaggio o parte di esso
Old 02-08-2006, 21:04   #15
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
tanto per cominciare tieni presente che la devi usare solo se ti serve realmente di ricevere una chiamata ad una funzione di callback a "progressi regolari" dell'operazione; per es. appunto se devi disegnare qualcosa che mostri l'avanzamento dell'operazione.

al terzo parametro devi passare un puntatore ad una tua funzione, che è la callback: verrà chiamata ad intervalli regolari durante il progredire dell'operazione (vedi MSDN per i dettagli, io non li ricordo).

il quarto è un parametro che non serve realmente alla MoveFileWithProgress: la MoveFileEccEcc non fa altro che passare quel parametro alla tua callback ogni volta che la chiama. è un parametro in cui puoi metterci quello che ti pare, secondo le tue necessità: un intero, un puntatore a una struct... se non ti serve puoi anche lasciarlo NULL.

l'utilità di ricevere nella callback un parametro che passi alla MoveFileWithProgress sta nel fatto che quel parametro ti permette di ricevere nella callback informazioni strettamente legate a quell'operazione, permettendoti così ad esempio di distinguere un'operazione MoveFileEccEcc dall'altra. se non ci fosse quel parametro e se usassi la stessa routine di callback per operazioni diverse non avresti alcun modo di capire all'interno della callback relativamente a quale operazione la tua routine sta essendo chiamata.

infine il quinto parametro sono solo flags, servono ad impostare caratteristiche dell'operazione che non so; come al solito, guarda MSDN per i dettagli. anche qua, se non vuoi passare nessun flag passagli 0.
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 02-08-2006, 21:18   #16
nico88desmo
Senior Member
 
Iscritto dal: Jul 2006
Messaggi: 1568
capito tutto eccetto questo:

"al terzo parametro devi passare un puntatore ad una tua funzione, che è la callback: verrà chiamata ad intervalli regolari durante il progredire dell'operazione (vedi MSDN per i dettagli, io non li ricordo)."

la funzione callback quale sarebbe?
nico88desmo è offline   Rispondi citando il messaggio o parte di esso
Old 02-08-2006, 21:59   #17
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da nico88desmo
la funzione callback quale sarebbe?
la devi scrivere tu; deve essere una qualsiasi funzione che abbia questo prototipo, e durante la sua esecuzione MoveFileWithProgress la chiamerà con i dovuti parametri
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 03-08-2006, 14:06   #18
nico88desmo
Senior Member
 
Iscritto dal: Jul 2006
Messaggi: 1568
devo scriverla....o devo chiamarla passando quei parametri no?
nico88desmo è offline   Rispondi citando il messaggio o parte di esso
Old 03-08-2006, 15:34   #19
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
ehm
a costo di ripetermi per la terza volta...

la funzione CopyProgressRoutine la devi scrivere tu, tant'è vero che non è neanche necessario che abbia quel nome, la puoi anche chiamare PippoPlutoEPaperino, basta che abbia lo stesso prototipo (cioè lo stesso tipo di valore di ritorno, la stessa convenzione di chiamata, e gli stessi parametri).
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 03-08-2006, 15:36   #20
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Messaggi: 5206
Quote:
Originariamente inviato da nico88desmo
devo scriverla....o devo chiamarla passando quei parametri no?
Devi scrivere la funzione di progresso e poi passare l'indirizzo di questa funzione alla MoveFileWithProgress.

Per esempio, una cosa del tipo:
Codice:
DWORD CALLBACK MiaFunzioneProgresso (LARGE_INTEGER TotalFileSize, LARGE_INTEGER TotalBytesTransferred, LARGE_INTEGER StreamSize, LARGE_INTEGER StreamBytesTransferred, DWORD dwStreamNumber, DWORD dwCallbackReason, HANDLE hSourceFile, HANDLE hDestinationFile, LPVOID lpData)
{
    /* .... visualizzazione progresso .... */

    return PROGRESS_CONTINUE;   /* vedere gli altri valori PROGRESS_xxx */
}



/* dentro un'altra funzione */

    ...

    MoveFileWithProgress (..., ..., MiaFunzioneProgresso, ..., ...);

    ...
Nota che questa funzione di callback deve essere dichiarata esattamente come specificato dal typedef LPPROGRESS_ROUTINE.
Vedere su MSDN CopyProgressRoutine.
__________________
Andrea, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
andbin è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
Geely EX5, un mese al volante: il SUV elettrico cinese che ci ha sorpreso (quasi) senza riserve Geely EX5, un mese al volante: il SUV elettrico ...
Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare Mova Z70 Ultra Roller Complete: motore potente, ...
Ecobonus al 65%: il governo valuta il ri...
Biscotti fatti con bottiglie di plastica...
SIHOO B100 a 161€ e B100 Pro a 209€: sed...
ClickFix dilaga: un finto captcha e un c...
HP Envy 6520e a 63€: stampante multifunz...
Diablo diventa una serie animata Netflix...
iPhone Duo porterà Apple al 25% d...
TSMC brucia le tappe: la produzione dei ...
Lexar ARES, SSD da 1TB a 156,74€: PCIe G...
Un'altra novità in arrivo da Samsung: ec...
Bottiglie di plastica trasformate in cas...
ECOVACS T90 OMNI a 439€: ottimo prezzo p...
BYD ha ordinato altre 10 navi da traspor...
Maven Robotics esce dall'ombra: la scomm...
La serie Magic 9 di HONOR avrà anche una...
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: 10:02.


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