�Se pueden escribir un c�digo en
Basic para copiar archivos de cualquier tipo?. Pues s�, aqu�
les presento un ejemplo completo y funcional. �Porqu� quisiera
escribir c�digo para copiar archivos si ya existe FileCopy?. Les
enumero unas buenas razones.
|
Como estas, deben existir m�s razones. Para implementar cualquiera de estos temas debe personalizar el c�digo, �selo como gu�a simplemente. El origen de este procedimiento fue la creacci�n de un programa de instalaci�n personalizado (esto implementa un c�digo m�s extenso dentro del procedimiento).
Comentarios
|
El c�digo se muestra a continuaci�n:
'--------------------------------------------------------------------- 'Copia un archivo. 'Sintaxis 'FileCopy fuente, destino [, sobre escritura] 'Argumentos: 'SourceFile: nombre completo de un archivo a copiarse 'DestinationPath: nombre de la ruta de destino 'OverWrite: Opci�n de especificar sobre escritura. 'Por Harvey Triana, Petrosoft Co., 1996 '--------------------------------------------------------------------- Sub PetrosoftCopyFile(SourceFile As String, DestinationPath As String, Optional OverWrite As Variant) Const INLINE = 2 ^ 10 Dim Tem As String Dim i As Integer Dim RCnl As Integer Dim WCnl As Integer Dim Bytes As Long Dim Groups As Long Dim SBytes As Long 'Este bloque verifica la sobre escritura si al archivo exise Tem = DestinationPath + FileNameFromPath(SourceFile) If Len(Dir(Tem)) Then If IsMissing(OverWrite) Then Kill Tem Else If OverWrite Then Kill Tem Else Exit Sub End If End If End If RCnl = FreeFile Open SourceFile For Binary Access Read As #RCnl WCnl = FreeFile Open Tem For Binary Access Write As #WCnl 'Copia por grupos de bytes Bytes = LOF(RCnl) Groups = Int((Bytes / INLINE)) SBytes = (Bytes - Groups * INLINE) If Groups > 0 Then For i = 1 To Groups Tem = Input$(INLINE, #RCnl) Put #WCnl, , Tem Next End If If SBytes > 0 Then Tem = Input$(SBytes, #RCnl) Put #WCnl, , Tem End If Close RCnl, WCnl End Sub Public Function FileNameFromPath(Tem As String) As String Dim x As String, i If InStr(Tem, "\") Then i = Len(Tem) Do x = Mid$(Tem, i, 1) i = i - 1 Loop Until x = "\" Or i = 0 FileNameFromPath = Mid$(Tem, i + 2) Else FileNameFromPath = Tem End If End Function
Atentamente,
Harvey Triana [email protected]