Hola:
Te respondo en este mensaje porque aqui es donde tienes la pregunta y a fin de no liar al foro:
Código vb:
Ver originalPrivate Sub EliminarRegistro()
Dim Entrada As Integer, Salida As Integer, Registro As Single
Dim RegistroDatos As String * 256
Entrada = FreeFile
Open "Horas.dat" For Random As #Entrada Len = 256
Salida = FreeFile
Open "Horas.tmp" For Random As #Salida Len = 256
' Bucle desde el segundo hasta el final (el tamaño del archivo dividido por la longitud de registro)
For Registro = 2 To LOF(Entrada) / 256
' Leemos el Registro
Get #Entrada, Registro, RegistroDatos
' Grabamos el nuevo en el siguiente registro (el tamaño del archivo dividido por la longitud) + 1
Put #Salida, LOF(Salida) / 256 + 1, RegistroDatos
Next
Close #Entrada
Close #Salida
Kill "Horas.dat"
Name "Horas.tmp" As "Horas.dat"
End Sub
Como ves resulta mas simple de lo que parece, pero no me saltes de aqui para allá. Como te decía en el otro mensaje, revisa el código para aprender su función.
No he puesto la comprobación de existencia del anterior que la puedes simplificar en una sóla y yo te aconsejaría utilizarla así
If Dir("Horas.tmp") <> "" Then Kill "Horas.tmp"
porque si por ejemplo el archivo en disco se llama HORAS.TMP no te funcionará porque el nombre Horas.tmp es diferente de HORAS.TMP
Saludos