Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [VB6] Trovare la prima estrazione mensile in un db (*.dat)

    Buon giorno...
    ho un dubbio atroce!
    Come posso trovare la prima estrazione del mese in un database dat (non a nulla a che fare con access, e un file di testo con le estrazioni all'interno)

    io lo apro così:

    codice:
    Const dbase As String = "C:\dbLotto\Estrazio.dat"
    
    Private Type estrat
    dataestraz As String * 9
    nu1 As String * 2
    nu2 As String * 2
    nu3 As String * 2
    nu4 As String * 2
    nu5 As String * 2
    
    nu6 As String * 2
    nu7 As String * 2
    nu8 As String * 2
    nu9 As String * 2
    nu10 As String * 2
    
    nu11 As String * 2
    nu12 As String * 2
    nu13 As String * 2
    nu14 As String * 2
    nu15 As String * 2
    
    nu16 As String * 2
    nu17 As String * 2
    nu18 As String * 2
    nu19 As String * 2
    nu20 As String * 2
    
    nu21 As String * 2
    nu22 As String * 2
    nu23 As String * 2
    nu24 As String * 2
    nu25 As String * 2
    
    nu26 As String * 2
    nu27 As String * 2
    nu28 As String * 2
    nu29 As String * 2
    nu30 As String * 2
    
    nu31 As String * 2
    nu32 As String * 2
    nu33 As String * 2
    nu34 As String * 2
    nu35 As String * 2
    
    nu36 As String * 2
    nu37 As String * 2
    nu38 As String * 2
    nu39 As String * 2
    nu40 As String * 2
    
    nu41 As String * 2
    nu42 As String * 2
    nu43 As String * 2
    nu44 As String * 2
    nu45 As String * 2
    
    nu46 As String * 2
    nu47 As String * 2
    nu48 As String * 2
    nu49 As String * 2
    nu50 As String * 2
    End Type
    
    Dim RecordEstr As estrat
    Dim RecorDnum  As Integer
    Dim inFile As Integer
    
    
    Private Sub Leggi(numero As Integer)
    inFile = FreeFile
    Open dbase For Random As #inFile Len = Len(RecordEstr)
    RecorDnum = LOF(inFile) / Len(RecordEstr)
    Get #inFile, numero, RecordEstr
    estraz1.Caption = numero
    Close #1
    End Sub
    
    Private Sub Form_Load()
    inFile = FreeFile
    Open dbase For Random As #inFile Len = Len(RecordEstr)
    RecorDnum = LOF(inFile) / Len(RecordEstr)
    Close #inFile
    Formy.StatusBar1.Panels(1).Text = "Estrazioni in archivio: " & RecorDnum
    estraz2.Caption = RecorDnum
    estraz5.Text = RecorDnum
    estraz4.Text = RecorDnum - 1000
    End Sub

    la data "indice su cui mi baso" sono nell'formato 07GEN1871

    non saprei proprio come fare, mi servirebbe una mano se e possibile

    Grazie mille
    LoginDOT.com || Directory gratuita
    Aggiungete i vostri siti gratuitamente, back link non necessario, ma gradito.

  2. #2
    ricordati di specificare sempre la versione del linguaggio anche nel titolo
    Vascello fantasma dei mentecatti nonchè baronetto della scara corona alcolica, piccolo spuccello di pezza dislessico e ubriaco- Colui che ha modificato l'orribile scritta - Gran Evacuatore Mentecatto - Tristo Mietitore Mentecatto chi usa uTonter danneggia anche te

  3. #3
    Ops scusatemi ... e per il Visual Basic 6 ...
    LoginDOT.com || Directory gratuita
    Aggiungete i vostri siti gratuitamente, back link non necessario, ma gradito.

  4. #4
    I record del file sono ordinati per data?
    1) Se non sono in ordine purtroppo devi scorrere tutto il file fino alla fine e memorizzarti l'indice del record con la data più alta.

    Puoi procedere così:

    leggi la prima riga del file e ti memorizzi la data e il numero del record

    fai un ciclo che scorre tutte le righe (record) del file. E confronti la data del record attuale con quella precedente. se maggiore memorizzi il numero del record.

    Poi in qualsisai momento puoi recuperare quel record direttamente con la funzione Get

    NB: Ricorda che i file Random in VB permettono di accedere direttamente ad un record solo tramite la posizione (che però non ti dice niente sul contenuto del record). Per questo se non sai a priori la posizione di un determinato record (per esempio quello con la data + alta) devi scorrere comunque tutto il file.

    2) Se il file fosse ordinato per data (cioè l'ultimo record ha la data + recente e il primo la + vecchia) allora sapendo la dimensione del file (numero record presenti) con la Get potresti leggere direttamente l'ultimo record.

    Spero di essermi spiegato bene.

    Ciao
    lupusinfabula

    Programmatore VB, ASP, Delphi.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.