| Usuario |
archivos random |
Desconocido
|
| Enviado - 20/7/2002 |
| |
estoy haciendo un programa, manejando archivos random, como puedo hacerle para que cuando yo dé de alta un número, al momento de dar de alta otro, si yo capturo el mismo número me ponga un mensaje de que ese número ya existe.
si alguien tiene otro tipo de codigo les agradeceria me lo enviara.
el código es este, a veces si funciona, pero a veces no:
Public Sub savecurrentrecord()
'llena a gperson con los datos desplegados
gperson.name = txtname.Text
gperson.phone = txtphone.Text
gperson.comments = txtcomments.Text
'guarda gperson en el registro actual
Put #gfilenum, gcurrentrecord, gperson
End Sub
Private Sub cmdnew_click()
Dim i As Long
Dim sobreescribir As Boolean
'se asigna el valor verdadero por si no existe
sobreescribir = True
'si ya existe, preguntar
If Existe(txtname.Text) Then
If MsgBox("ATENCION, el fichero ya existe" & vbCrLf & _
"quieres sobreescribirlo", vbQuestion + vbYesNo = vbNo) Then
'hemos constestado que no, asi que...
sobreescribir = False
End If
End If
'si no existe o se quiere sobreescribir
If sobreescribir Then
gfilenum = FreeFile
Open "PHONE.TMP" For Random As tmpfilenum Len = grecordlen
modificado = False
Close gfilenum
End If
savecurrentrecord
'añade un nuevo registro en blanco
glastrecord = glastrecord + 1
gperson.name = ""
gperson.phone = ""
gperson.comments = ""
Put #gfilenum, glastrecord, gperson
'actualiza a gcurrentrecord
gcurrentrecord = glastrecord
'despliega el registro que acaba de crear
showcurrentrecord
'da el enfoque al campo txtname
txtname.SetFocus
End Sub
Public Function Existe(ByVal unFichero As String) As Boolean
On Local Error Resume Next
Existe = Len(Dir$(unFichero))
If Err Then
Existe = False
End If
Err = 0
On Local Error GoTo 0
End Function |
| |
|
|
|