Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 24

Discussione: Numero righe file csv

  1. #1

    Numero righe file csv

    Salve a tutti chiedo una cortesia come posso contare le righe in un file csv.
    codice:
    Dim strLinea, FileObject, Instream, strFile, intTipo
    
    strFile = Server.MapPath(file)
    '################ lettura ####################################
    intTipo = 1
    '################ lettura #################################### 
    '################ creo l'oggetto #############################
    Set FileObject = Server.CreateObject("Scripting.FileSystemObject")
    '################ creo l'oggetto #############################
    '################ apro il file ###############################
    Set InStream = FileObject.OpenTextFile(strFile, intTipo, true)
    '################ apro il file ###############################
    '################ ciclo che legge tutte le linee #############
    Do While not InStream.AtEndOfStream
    '################ ciclo che legge tutte le linee #############
    '################ leggo le linee #############################
    StrLinea = InStream.ReadLine()
    ValoriArray = Split (StrLinea,";") 
    
    var_codice = ValoriArray(0)
    var_sigla = ValoriArray(1)
    var_importo = ValoriArray(2)
    response.write var_codice &"
    "
    
    Loop
    
    ' libero risorse
    InStream.Close
    Set InStream = Nothing
    Set FileObject = Nothing
    Con gratitudine buona serata

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Usa una variabile d'appoggio che incrementi dentro al Loop ad ogni ciclo.

    Roby

  3. #3
    perdona la ia ignoranza )

  4. #4
    Scusate forse ho posto male la domanda - vorrei il numero totale delle righe presenti nel file csv
    Di nuovo grato e scusatemi

  5. #5
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    codice:
    cont = 0
    Do While not InStream.AtEndOfStream
    '################ ciclo che legge tutte le linee #############
    '################ leggo le linee #############################
    StrLinea = InStream.ReadLine()
    ValoriArray = Split (StrLinea,";") 
    
    var_codice = ValoriArray(0)
    var_sigla = ValoriArray(1)
    var_importo = ValoriArray(2)
    response.write var_codice &"
    "
    cont = cont + 1
    
    Loop
    
    response.write(cont)
    Roby

  6. #6
    Ti sono grato (perdona la mia ignoranza ho cominciato da poco) e nell'augurarti Buone Feste buona giornata

  7. #7

    sono ancora qua

    Scusatemi sono di nuovo a rompere le scatole :
    Codice PHP:
        Dim strLineaFileObjectInstreamstrFileintTipo
        strFile 
    Server.MapPath(file)
    '################ lettura ####################################
        intTipo = 1
    '
    ################ lettura #################################### 
    '################ creo l'oggetto #############################
        
    Set FileObject Server.CreateObject("Scripting.FileSystemObject")
    '################ creo l'oggetto #############################
    '################ apro il file ###############################
        Set InStream = FileObject.OpenTextFile(strFile, intTipo, true)
    '
    ################ apro il file ###############################
    '################ ciclo che legge tutte le linee #############
    tot_cod = 0
        Do While not InStream.AtEndOfStream
    '
    ################ ciclo che legge tutte le linee #############
    '################ leggo le linee #############################
        StrLinea = InStream.ReadLine()
        ValoriArray = Split (StrLinea,";") 

        var_codice = ValoriArray(0)
        var_sigla = ValoriArray(1)
        var_importo = ValoriArray(2)
    '
    ################ leggo le linee #############################
    '################ per 5 caratteri ############################
        if len(var_codice) = 1 then
        var_codice = "0000" & var_codice 
        elseIf len(var_codice) = 2 then
        var_codice = "000" & var_codice
        elseIf len(var_codice) = 3 then
        var_codice = "00" & var_codice 
        elseIf len(var_codice) = 4 then
        var_codice = "0" & var_codice 
        end if
    '
    ################ per 5 caratteri ############################
        
    'response.write "tot_cod " & tot_cod & " - var_codice " & var_codice & "    -  var_sigla " & var_sigla &"
    "
        tot_cod = tot_cod + 1

    '
    ################ cerco i codici presenti ####################
            
    SQL_ass "SELECT * "
            
    SQL_ass SQL_ass " FROM 01_anagrafica "
            
    SQL_ass SQL_ass " WHERE "
            
    SQL_ass SQL_ass " ANAG_cod_tributo = '" var_codice "'"
            
    Set rs_ass Connes.Execute(SQL_ass)
            while 
    not rs_ass.eof

    tot_cod_tributo 
    0
    response
    .write tot_cod_tributo " " rs_ass("ANAG_cod_tributo") &"
    "


    rs_ass.movenext
    tot_cod_tributo 
    tot_cod_tributo+1
    wend
    rs_ass
    .Close
    Set rs_ass 
    Nothing
    '################ cerco i codici presenti ####################

        Loop
    response.write "

    tot_cod_tributo " & tot_cod_tributo &"
    "
    response.write "

    tot_cod " & tot_cod &"
    "

    '
    ################ libero risorse #############################
        
    InStream.Close
        Set InStream 
    Nothing
        Set FileObject 
    Nothing
    '################ libero risorse ############################# 
    Perchè non mi dà il giusto totale ?
    ossia:
    response.write tot_cod_tributo & " " & rs_ass("ANAG_cod_tributo") &"
    "
    mi dà
    0 00001
    0 AG205
    0 BS210

    response.write "

    tot_cod_tributo " & tot_cod_tributo &"
    "
    mi dà
    tot_cod_tributo 1

    SOS e grazie

  8. #8
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Non ho ben capito soprattutto sul risultato che invece ti aspetteresti...
    Comunque inverti queste due righe:

    rs_ass.movenext
    tot_cod_tributo = tot_cod_tributo+1

    Roby

  9. #9
    Grazie per la tua risposte ho invertito come hai detto

    tot_cod_tributo = tot_cod_tributo+1
    rs_ass.movenext

    però non cambia nulla mi dà sempre
    0 00001
    0 AG205
    0 BS210

    tot_cod_tributo 0
    tot_cod 13


    a me occorrerebbe

    1 00001
    2 AG205
    3 BS210

    tot_cod_tributo 3
    tot_cod 13

    Questo mi serve per verificare che i dati contenuti nel file csv siano presente nella tabella anagrafica access, una volta verificati faccio inserire i dati in un'altra tabella, se non collimano faccio aggiornare.
    Ti sono grato e buona giornata

  10. #10

    Re: sono ancora qua

    Originariamente inviato da vincanto1955
    Codice PHP:
            
    while not rs_ass.eof

    tot_cod_tributo 
    0
    response
    .write tot_cod_tributo " " rs_ass("ANAG_cod_tributo") &"
    "


    rs_ass.movenext 
    tot_cod_tributo lo devi azzerare prima del while e incrementarlo nel while
    ovvero

    codice:
    tot_cod_tributo = 0
    while not rs_ass.eof
    
    tot_cod_tributo = tot_cod_tributo+1
    response.write tot_cod_tributo & " " & rs_ass("ANAG_cod_tributo") &"
    "
    
    
    rs_ass.movenext

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.