Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Txt in array ... errore runtime 14 (VB6)

Problemi di HTML? Di PHP, ASP, .NET, JSP, Perl, SQL, JavaScript, Visual Basic..?
Vuoi realizzare programmi in C, C++, Java, Ruby o Smalltalk, e non sai da che parte cominciare?
Entra qui e troverai le risposte!

Moderatori: Triumph Of Steel, archimede

Txt in array ... errore runtime 14 (VB6)

Postdi sal21 » 05/01/16 13:12

... spazio di stringa esaurito!!!!!

Uso questo codice per riempire un array e successivamente fare il loop delle righe "storate".

con file di piccole dimensioni funziona benissimo ma con il file originale che è di 250.000 MB e contiene circa 2.000.000 di righe ho l'errore descritto in :

Dim strBuffer As String: strBuffer = Space(FileLen(strFileName))<<<<<<<

il mio codice:

Codice: Seleziona tutto
Option Explicit    '
Dim m_strRows() As String '
Private Sub cmdLoad_Click()
'
    Dim strFileName As String
   
    strFileName = "\\01p\FTP_WebTeam\OUT\TAB.txt"
   
    Dim strBuffer As String: strBuffer = Space(FileLen(strFileName))
    Dim intFreeFile As Integer: intFreeFile = FreeFile
    Open strFileName For Binary As intFreeFile    ' open file
    Get intFreeFile, , strBuffer

    Close intFreeFile
    '
    Dim lngRow As Long
    m_strRows() = Split(strBuffer, vbCrLf)
    strBuffer = ""
    '
    For lngRow = 0 To UBound(m_strRows)
        'Debug.Print m_strRows(lngRow)
    Next
    '
    For lngRow = 0 To UBound(m_strRows)
        'Debug.Print Replace(m_strRows(lngRow), ",", vbTab)
    Next
 
   Dim lngCol As Long, strCols() As String
    Dim strDelimiter As String: strDelimiter = ","
    For lngRow = 0 To UBound(m_strRows)
        strCols() = Split(m_strRows(lngRow), ",")
        If UBound(strCols) >= 0 Then
            strBuffer = strCols(0)
            For lngCol = 1 To UBound(strCols)
                strBuffer = strBuffer & _
                            vbTab & strCols(lngRow)
            Next
        End If
        Debug.Print strBuffer
    Next
    '
End Sub



nota:nel codice ci sono vari test per il loop degli elementi dell'array ma questo non incide sull'errore.
sal21
Newbie
 
Post: 2
Iscritto il: 14/09/04 08:21

Sponsor
 

Postdi archimede » 05/01/16 15:31

Leggi una riga alla volta, non tutto il file in un botto come mi pare tu stia facendo.

HTH.

Alessandro
archimede
Moderatore
 
Post: 2755
Iscritto il: 07/11/02 12:41
Località: Genova


Torna a Programmazione


Topic correlati a "Txt in array ... errore runtime 14 (VB6)":


Chi c’è in linea

Visitano il forum: nikita75 e 1 ospite