Newsgroup: it.comp.lang.visual-basic
Titolo: Ceme ripuntare al primo record di un file sequenziale

Utilizzo un modulo per aprire un file (con OPEN), cercare un
determinato record e chiudere il file (con CLOSE).
Effettuando un'altra ricerca nel file quando utilizzo la chiamata
      Line Input #1, strRow
il valore di strRow risulta essere il record della precedente ricerca.
Come si fa per far ricominciare la ricerca dal primo record, credevo
che CLOSE facesse al caso mio ma evidentemente non č cosě.
Grazie
Per rispondermi togli NOSPAM dall'indirizzo
tudro...@tin.it

 Grazie
Ma non e' cosi'. Puoi postare il codice?

>Ma non e' cosi'. Puoi postare il codice?
Scusa ma sono le mie prime esperienze di VB e soprattutto la prima
esperienza di controllo dati memorizzati su un file.
Grazie
Public Sub Command2_Click()
   Dim fld As ADODB.Field
   Dim strRow As String
   Dim strField As String
   Dim intPos As Integer
   Set rsListino = New ADODB.Recordset
   With rsListino
      .Fields.Append "Codice", adChar, 18, adFldRowID
      .Fields.Append "Prezzo", adChar, 9, adFldUpdatable
      .Fields.Append "Merce", adChar, 1, adFldUpdatable
      .Fields.Append "Famiglia", adChar, 3, adFldUpdatable
      ' Utilizza un cursore di tipo Keyset per consentire
      ' l'aggiornamento di record.
      .CursorType = adOpenKeyset
      .LockType = adLockOptimistic
      .Open
   End With
 
  Open "c:\listino.txt" For Input As #1
    Ricerca = InputBox("inserire ricerca", "Ricerca")
   Do Until EOF(1)
      Line Input #1, strRow
      ' Quì aggiungi una condizione
      If UCase(Left(strRow, Len(Ricerca1))) = UCase(Ricerca) Then
 
      With rsListino
         .AddNew
         For Each fld In .Fields
            ' Se individua il delimitatore tabulazione, il testo del
            ' campo sarà a sinistra del delimitatore.
            If InStr(strRow, Chr(9)) <> 0 Then
               ' Esegue uno spostamento sul delimitatore.
               intPos = InStr(strRow, Chr(9))
               ' Assegna il testo del campo alla variabile strField.
               strField = Left(strRow, intPos - 1)
            Else
               ' Se non individua un delimitatore tabulazione, il
testo
               ' del campo sarà l'ultimo campo della riga.
               strField = strRow
            End If
 
            fld.Value = strField
            ' Elimina dalla riga di testo il testo del valore del
campo.
            strRow = Right(strRow, Len(strRow) - intPos)
            intPos = 0
         Next
         .Update
         .MoveFirst
      End With
   End If
 
   Loop
 
  Close
 
 End Sub


 Public Sub Command2_Click()
Allora, se provi questo semplice codice potrai constatare da te che quando
riapri il file il puntatore si riposiziona sul primo record. Certo che se i
record fossero tutti uguali...
    Open "c:\listino.txt" For Input As #1
    Line Input #1, strRow
    Line Input #1, strRow
    Close #1
    Label1.Caption = strRow
    Open "c:\listino.txt" For Input As #1
    Line Input #1, strRow
    Close #1
    Label2.Caption = strRow

       If UCase(Left(strRow, Len(Ricerca1))) = UCase(Ricerca) Then
A meno che non sia voluto, ma sei sicuro che volevi scrivere Ricerca1?
Scusa, ma e' solo eccesso di zelo :-))

Scusa, ma e' solo eccesso di zelo :-))
Fai pure, anzi se vuoi darmi lezioni sono quě apposta per apprendere
GRAZIE MILLE !!!
.


 Fai pure, anzi se vuoi darmi lezioni sono quì apposta per apprendere
Per carita'!!!! Nessuna lezione!!!!! :-))))))
Piuttosto, hai risolto? Hai provato l'esempietto del mio post precedente?