Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 40

Discussione: File TXT, informazioni

  1. #1

    File TXT, informazioni

    Salve ragazzi,
    Ho un programma di Chat che logga tutto in un file di testo, ed io vorrei fare un applicazioncina che legga da questo file le informazioni e le memorizzi in un database per poterle interrogare in modo più efficiente.
    Solo che sono nadi dei problemi.

    Il problema principale è che (non ne capisco il motivo) appena il programma legge una "," mi taglia la riga, portandomi tutto il resto a capo.

    Ora...visto che le righe hanno una ben precisa organizzazzione (gg/mm/aaaa oo/mm/ss--- testo)
    avevo pensato di leggere prima tutti i valori numerici per memorizzarli in campi appositi e poi elaborare di conseguenza il testo, solo che non è piu efficiente così, perchè se c'è una virgola sballa tutto il conteggio a righe.

    Qualcuno sa darmi una idea??

    comunque il codice che ho usato è semplicissimo:

    codice:
    Private Sub Form_Load()
    Dim Riga As String
        Open "c:\log.txt" For Input As #1
            While Not EOF(1)
                Input #1, Riga
                Lista.AddItem (Riga)
            Wend
        Close (1)
    End Sub
    Grazie a tutti!!
    Paperina :-)

  2. #2
    Foga27News
    Guest
    E' una caratteristica di "Input"...

  3. #3
    usa "line input"
    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

  4. #4
    Foga27News
    Guest
    Del tipo:

    codice:
    Private Sub Form_Load()
    Dim Riga As String
        Open "c:\log.txt" For Input As #1
            While Not EOF(1)
                LineInput #1, Riga
                Lista.AddItem (Riga)
            Wend
        Close (1)
    End Sub

  5. #5
    Grazie ragazzi....
    TUTTO RISOLTO
    Paperina :-)

  6. #6
    Ah...dimenticavo...spero che qualcuno lo legga e risponda!!!

    Devo leggere dati da un file TXT piuttosto lungo, con un vasto numero di righe.

    Visto che devo lavorare su ogni riga, sarebbe carino che mettesi una prograss bar che indichi lo stato delle operazioni, solo che per inserirla dovrei sapere il numero di righe che ha il File txt.

    è possibile sapere il numero di righe di un file di Testo, senza scorrerlo tutto?? Grazie
    Paperina :-)

  7. #7
    Foga27News
    Guest
    Per contare tutte le righe bisogna
    contare i caratteri di nuova linea(Chr(13)+Chr(10)).

    Nonostante tutto, con un processore decente si risolve tutto
    in poco tempo.
    Esempio:

    codice:
    function contalinee(NomeFile as string) as long
    dim Pos as long,File as string,Res as long
    
    'Inserisce il contenuto del file in una variabile
    open nomefile for binary as #1
    get #1,1,File
    close #1
    
    pos=1
    'In C sarebbe tutto + semplice :quipy: 
    prossimo:
    Res=Instr(Pos,File,vbnewline)
    if Res=0 then File="":exit sub else contalinee=contalinee + 1:Pos=Res+1
    goto prossimo
    end function
    Non l'ho testato... spero ke vada...

    Consuma anche abbastanza memoria

    Ciauz!!!

  8. #8
    Infatti!!
    purtroppo non funziona.... !!


    Consuma abbastanza memoria significa che ne consuma parecchia??
    Paperina :-)

  9. #9
    Foga27News
    Guest
    Ora lo testo e lo debuggo...

    La memoria è la granzezza in byte del file!!!
    (Si può fare una versione + lenta e - dispendiosa...)

  10. #10
    Foga27News
    Guest
    Versione 0.2... :bubu: :tongue:

    Funziona!!!

    codice:
    Function contalinee(NomeFile As String) As Long
    contalinee = 1
    Dim Pos As Long, File As String, Res As Long
    
    'Inserisce il contenuto del file in una variabile
    Open NomeFile For Binary As #1
    File = Space(LOF(1))
    Get #1, 1, File
    Close #1
    
    Pos = 1
    'In C sarebbe tutto + semplice
    prossimo:
    Res = InStr(Pos, File, vbNewLine)
    If Res = 0 Then
        File = ""
        Exit Function
    Else
        contalinee = contalinee + 1
        Pos = Res + 1
    End If
    GoTo prossimo
    End Function
    Ciauz!

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.