PDA

View Full Version : Files sequenziali


Carmen
07-03-2003, 11:25
Ciao.

Dovrei scrivere un files di testo di tipo seguenziale.

Non ricordo per niente come si trattavano questo tipo di files.

In pratica dovrei poter scrivere un files di testo seguenziale, dichiarando
lunghezza e nome dei campi da creare.

Potete aiutarmi, magari postandomi un frammento di codice di esempio?


Grazie. Carmen ;)

buttarelli
07-03-2003, 12:04
Dubito che qualcuno ti possa aiutare se non specifichi almeno il linguaggio di programmazione!

Carmen
07-03-2003, 13:31
Vero. Lo dimentico spesso. Il linguaggio e il VB6

matpez
15-03-2003, 02:27
Ti posto un pezzo di codice...spero che ti sia chiaro:

Option Explicit

Public Type RecordAnagrafe
lIDFamiglia As Long
lAtto As Long
sRuoloFamiglia As String * 15
nRuoloFamiglia As Integer
sCognome As String * 20
sNome As String * 20
dtNascita As Date
sSesso As String * 1
sComuneNascita As String * 20
sProvinciaNascita As String * 2
sViaRes As String * 30
nCivicoRes As Integer
sComuneRes As String * 20
sProvinciaRes As String * 2
sStatoCivile As String * 20
lAttoM As Long
sCognomeConiugeM As String * 20
sNomeConiugeM As String * 20
sComuneM As String * 20
sProvinciaM As String * 2
dtDataM As Date
End Type


Public glMaxRecord As Long
Public glMaxIDFam As Long
Public glMaxAttoM As Long
Public RecAnagrafe() As RecordAnagrafe
----------------------------------------------------------------------------

Sub LeggiFile()

Dim nFreeFile As Integer
Dim RecLen As RecordAnagrafe
Dim lI As Long


nFreeFile = FreeFile
On Error GoTo ErroreFile
Open "../Data/Anagrafe.db" For Random As #nFreeFile Len = LenB(RecLen)

'calcolo il numero di record
glMaxRecord = LOF(nFreeFile) / LenB(RecLen)
glSalvato = glMaxRecord

If glMaxRecord > 0 Then

'ridimensiono la tabella
ReDim RecAnagrafe(glMaxRecord)

'carico i file
For lI = 1 To glMaxRecord
Get #nFreeFile, lI, RecAnagrafe(lI)

'salvo l'ID maggiore della famiglia
If glMaxIDFam < RecAnagrafe(lI).lIDFamiglia Then
glMaxIDFam = RecAnagrafe(lI).lIDFamiglia
End If

'salvo il numero di atto matrimonio
If glMaxAttoM < RecAnagrafe(lI).lAttoM Then
glMaxAttoM = RecAnagrafe(lI).lAttoM
End If
Next lI

End If

Close #nFreeFile

End Sub

Sub ScriviFile()

Dim nFreeFile As Integer
Dim RecLen As RecordAnagrafe
Dim lI As Long


nFreeFile = FreeFile
On Error GoTo ErroreFile
Open "../Data/Anagrafe.db" For Random As #nFreeFile Len = LenB(RecLen)


'scrivo i file
For lI = glSalvato + 1 To glMaxRecord
Put #nFreeFile, lI, RecAnagrafe(lI)
Next lI
Close #nFreeFile

End Sub

Spero che sia chiaro...se nn capisci qlc chiedi pure :)

Carmen
15-03-2003, 08:31
Ok, ti ringrazio del pensiero, soprattutto visto che si trattava di un post di qualche giorno fà.

matpez
16-03-2003, 02:28
prego...ma siccome nn sono stato a casa in questi giorni ho letto anche alcune pagine arretrate :p

ciaooooooooooooo