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

    Lettura veloce di file di testo

    Ciao,
    io devo leggere un file di testo di dimensioni abbastanza sostenute : 5/6 Mb.
    Uso VB, solo che la lettura sequenziale risulta essere molto lenta.
    Dopo aver cercato qualche informazione ho trovato questo script :


    Dim NumFile As Integer
    Dim Buffer() As Byte
    Dim j As Long
    Dim ub As Long

    NumFile = FreeFile()
    Open filename For Binary As NumFile
    ub = LOF(NumFile) - 1
    If ub >= 0 Then
    ReDim Buffer(1, ub)
    Get #NumFile, , Buffer
    Close NumFile
    Else
    Close NumFile
    Exit Function
    End If

    Mi carica in un array di Byte il file di testo, ed è velocissimo, solo che dopo lo devo convertire in stringa ciclandolo con il CHR è sempre lentissimo.
    Conoscete qualche altro metodo?


    Grazie mille
    !!!

    http://www.bluflash.net

  2. #2
    perchè non carichi il tutto su una stringa sempre in apertura binaria
    e poi lo splitti sul carattere chr(13)
    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

    grazie!

    Grazie per la risposta tempestiva, ma come si fa???

    e inserila nella clipboard?

    ciao
    http://www.bluflash.net

  4. #4
    Utente di HTML.it L'avatar di sebamix
    Registrato dal
    Aug 2000
    Messaggi
    1,028
    codice:
    clipboard.SetText "pippo"

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    327
    Ma non puoi leggerlo a linee con Line?
    5 mega nella clipboard fanno diventare un po' pesante il pc

  6. #6
    esempio ti serve un form, una common dialog, una lista, e una label

    codice:
    Option Explicit
    Private Declare Function GetTickCount Lib "kernel32" () As Long
    
    Dim sPath As String
    Private Sub Form_Load()
    Dim time1 As Long
    Dim time2 As Long
    Dim deltatime As Single
    Dim buffer As String
    Dim arrBuffer() As String
    Dim i As long
       CD1.ShowOpen
       time1 = GetTickCount
       sPath = CD1.FileName
       buffer = leggifile(sPath)
       arrBuffer = Split(buffer, Chr(13))
       For i = LBound(arrBuffer) To UBound(arrBuffer)
          List1.AddItem arrBuffer(i)
       Next i
       time2 = GetTickCount
       deltatime = (time2 - time1) / 1000
       Label1.Caption = deltatime
    End Sub
    Function leggifile(sFile As String) As String
       Dim iFile As Integer
       iFile = FreeFile
       Open sFile For Binary As #iFile
          leggifile = Space$(LOF(iFile))
          Get #iFile, , leggifile
       Close #iFile
    End Function
    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

  7. #7

    ...

    MA è LENTISSIMO CON LE LINE........

    che me dite?
    aiutate questa povere ragazza....
    http://www.bluflash.net

  8. #8
    Utente di HTML.it L'avatar di henry78
    Registrato dal
    May 2001
    Messaggi
    1,264

    Controllare il contenuto di file di testo --->


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.