PDA

View Full Version : [VB6] ricerca dentro un file


el macos
25-03-2012, 14:07
Ciao ragazzi,avrei un problema,ho creato un programma il quale crea un file di testo in cui vengono memorizzati il nome ,il costo del lavoro e l'importo pagato dal cliente.Fin qui tutto ok, ma ho un problema con la ricerca.Ho usato questo algoritmo,ma mi stampa su schermo il nome del ultimo in lista,non riesco a capire perchè.Potreste darmi una mano?grazie...

Private Sub Command1_Click()
Dim trovato As Boolean
trovato = False

Open App.Path & ("\archivio.txt") For Input As #1
Do While Not (EOF(1))
Input #1, nome, costo_lavoro, importo_pagato
If costo_lavoro < importo_pagato Or costo_lavoro > importo_pagato Then
Label1.Caption = nome
trovato = True
End If


Loop

If trovato = False Then
Label1.Caption = "non trovato"
End If
Close #1






End Sub

Cangurozoppo
25-03-2012, 14:56
probabilmente stampa l'ultimo perchè è l'unico che risponde alla condizione
''If costo_lavoro < importo_pagato Or costo_lavoro > importo_pagato ''
comunque io userei un approccio diverso;
prima di tutto userei una variabile record es:
Type Record
Nome as string *30
Costo as single
ImportoPagato as single
End Type

Quindi
Private Function TrovaRecords(byval NomeFile as string) as Record()
Dim NumRecord as integer
Dim Records() as Record

NumRecord=FileLen(NomeFile/38)
Redim Records(1 to NumRecord) as Record
Open NomeFile for Binary as FreeFile
Get #FreeFile,1,Records
Close #FreeFile
TrovaRecords=Records

End Function