|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Oct 2001
Città: Dublino
Messaggi: 878
|
[VB] Un paio di domande semplici...
Mi servirebbe di sapere alcune cose:
1) Come faccio a cambiare la directory predefinita di lavoro dove VB va a cercare i files? Non vorrei dover specificare ogni volta il percorso manualmente... avevo provato con ChDir ma non sono riuscito... eventualmente, mi servirebbe anche di sapere come fare a creare un file di output sulla cartella dove è installato il programma VB... 2) Come posso recuperare le informazioni sugli attributi di un file? Intendo data di modifica, flag di archivio, etc. perché dovrei fare un programma di backup incrementale... 3) Come faccio a rendere sicura la copia di un file anche di grandi dimensioni? La procedura filecopy è troppo aleatoria per fidarsi di essa... Grazie |
|
|
|
|
|
#2 | |||
|
Senior Member
Iscritto dal: Aug 2002
Città: Biella
Messaggi: 1882
|
Re: [VB] Un paio di domande semplici...
Quote:
Quote:
Quote:
Codice:
'in a form (Form1)
Private Sub Form_Load()
'KPD-Team 2001
'URL: http://www.allapi.net/
'E-Mail: [email protected]
Dim Ret As Long
'set the graphics mode to persistent
Me.AutoRedraw = True
'print some text
Me.Print "Click the form to abort the filecopy"
'show the form
Me.Show
'start copying
Ret = CopyFileEx("c:\verybigfile.ext", "c:\copy.ext", AddressOf CopyProgressRoutine, ByVal 0&, bCancel, COPY_FILE_RESTARTABLE)
'show some text
Me.Print "Filecopy completed " + IIf(Ret = 0, "(ERROR/ABORTED)", "successfully")
End Sub
Private Sub Form_Click()
'cancel filecopy
bCancel = 1
End Sub
'in a module
Public Const PROGRESS_CANCEL = 1
Public Const PROGRESS_CONTINUE = 0
Public Const PROGRESS_QUIET = 3
Public Const PROGRESS_STOP = 2
Public Const COPY_FILE_FAIL_IF_EXISTS = &H1
Public Const COPY_FILE_RESTARTABLE = &H2
Public Declare Function CopyFileEx Lib "kernel32.dll" Alias "CopyFileExA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal lpProgressRoutine As Long, lpData As Any, ByRef pbCancel As Long, ByVal dwCopyFlags As Long) As Long
Public bCancel As Long
Public Function CopyProgressRoutine(ByVal TotalFileSize As Currency, ByVal TotalBytesTransferred As Currency, ByVal StreamSize As Currency, ByVal StreamBytesTransferred As Currency, ByVal dwStreamNumber As Long, ByVal dwCallbackReason As Long, ByVal hSourceFile As Long, ByVal hDestinationFile As Long, ByVal lpData As Long) As Long
'adjust the caption
Form1.Caption = CStr(Int((TotalBytesTransferred * 10000) / (TotalFileSize * 10000) * 100)) + "% complete..."
'allow user input
DoEvents
'continue filecopy
CopyProgressRoutine = PROGRESS_CONTINUE
End Function
__________________
"Analizzando e valutando ogni giorno tutte le idee, ho capito che spesso tutti sono convinti che una cosa sia impossibile, finchè arriva uno sprovveduto che non lo sa e la realizza!" A. Einstein |
|||
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Oct 2001
Città: Dublino
Messaggi: 878
|
wow! Grazie
... per quanto riguarda il primo punto, mi servirebbe del codice che permetta di cambiare la directory di lavoro corrente, in modo che il programma non vada a cercare i files in "C:\Programmi\Microsoft Visual Studio\VB98" ma, ad esempio, in C:\produzione spero di essere stato più chiaro, intanto grazie |
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: Aug 2002
Città: Biella
Messaggi: 1882
|
Quote:
__________________
"Analizzando e valutando ogni giorno tutte le idee, ho capito che spesso tutti sono convinti che una cosa sia impossibile, finchè arriva uno sprovveduto che non lo sa e la realizza!" A. Einstein |
|
|
|
|
|
|
#5 |
|
Member
Iscritto dal: Apr 2000
Messaggi: 138
|
In effetti non ho capito neanche io quale sia il problema:
stai parlando di quando usi una dialog per andare a selezionare un file per caso? Intanto butto giu' un suggerimento (potrebbe servire anche per la dialog, ma non mi ricordo esattamente): App.Path ti dice dove viene eseguito il programma.
__________________
fgmac |
|
|
|
|
|
#6 |
|
Bannato
Iscritto dal: Jan 2001
Messaggi: 1976
|
Istruzione ChDir Imposta una diversa directory o cartella predefinita. Sintassi ChDir percorso L'argomento obbligatorio percorso è costituito da un'espressione stringa che identifica quale sarà la nuova directory o cartella predefinita. È possibile specificare l'unità. Se non si indica alcuna unità, ChDir imposterà la directory o cartella predefinita nell'unità corrente. Osservazioni L'istruzione ChDir cambia la directory predefinita ma non l'unità predefinita. Se, ad esempio, l'unità predefinita è C, la seguente istruzione imposterà la directory predefinita sull'unità D, ma C resterà l'unità predefinita: ChDir "D:\TMP" .... Vedere anche: CurDir Dir ChDrive RmDir MkDir |
|
|
|
|
|
#7 | |
|
Senior Member
Iscritto dal: Aug 2002
Città: Biella
Messaggi: 1882
|
Quote:
Ma penso che prima di eseguire un programma, tutti lo salviamo no
__________________
"Analizzando e valutando ogni giorno tutte le idee, ho capito che spesso tutti sono convinti che una cosa sia impossibile, finchè arriva uno sprovveduto che non lo sa e la realizza!" A. Einstein |
|
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Oct 2002
Messaggi: 487
|
Io la capisco essenzialmente in 2 modi.
1) Ha bisogna di accedere a file che si trovano in una determinata directory. dim mypath as string mypath = "c:\documenti\miadir\" open mypath & <nomefile> ... 2) Usa una commondialog ed ha il problema che ogni volta che la visualizza a schermo la directory di lavoro è quella dove si trova l'applicazione e deve andare a selezionare files che si trovano sempre in una determinata directory...una palla ogni volta spostarcisi dentro. In tal caso : dim mypath as string mypath = "c:\documenti\miadir\" commondialog1.initDir = mypath Aloha!
__________________
AcM Racing :: Nulla è impossibile per chi non deve farlo |
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Oct 2001
Città: Dublino
Messaggi: 878
|
ehm, avrei bisogno di andare a leggere diversi files che in genere mettiamo (nella nostra azienda) in c:\programmi\produzione , solamente che il programma VB me li cerca nella sua cartella predefinita e io, ad esempio, devo ogni volta scrivere
open "C:\programmi\produzione\etich.dat" for input as #nfile piuttosto che open "etich.dat" for input as #nfile comunque grazie a tutti, siete dei grandi |
|
|
|
|
|
#10 |
|
Senior Member
Iscritto dal: Aug 2002
Città: Biella
Messaggi: 1882
|
Se nn spicifichi la path completa lui va a leggere dove è posizionalto il progetto o l'exe
Se il progetto nn è salvato, va a prendere la cartella di dove è VB6.exe
__________________
"Analizzando e valutando ogni giorno tutte le idee, ho capito che spesso tutti sono convinti che una cosa sia impossibile, finchè arriva uno sprovveduto che non lo sa e la realizza!" A. Einstein |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 05:25.



















