Discussione chiusa
Pagina 1 di 3 123 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 21

skip 26 linee in txt file

  1. #1
    sal21 non  in linea Scolaretto
    Post
    479
    Like Inviati  
    0
    Like Ricevuti  
    0
    sto usando la tipica apertura di un file di testo con Open c:\..... for output #1 ecc...
    per leggere linea linea le righe.
    Nel file ci sono blocchi di linee contraddistinte da INIZIO: e FINE: tipo:

    INIZIO:
    altra riga
    altra riga
    ...
    FINE:


    fra INIZIO e FINE ci sono dati che non mi interessano (ci sono sempre 26 "altra riga")

    si puo fare direttemante nel codice di lettura lo skip alla riga 27 senza leggere le righe che non mi interessano?

    note:
    blocco ripetuto in in tutto il file ed sepre costante con inizio e fine cosi come lo ssono le righe da escludere (26)

  2. #2
    L'avatar di Brontolo
    Brontolo non  in linea Very Important Person
    Post
    3,137
    Like Inviati  
    5
    Like Ricevuti  
    5
    Quote Originariamente inviato da sal21 Visualizza il messaggio
    sto usando la tipica apertura di un file di testo con Open c:\..... for output #1 ecc...
    per leggere linea linea le righe.
    Tipica mica tanto. Se lo devi leggere, perch lo apri "for output" ?

    Quote Originariamente inviato da sal21 Visualizza il messaggio
    si puo fare direttemante nel codice di lettura lo skip alla riga 27 senza leggere le righe che non mi interessano?
    Si pu fare soltanto se le 26 righe hanno lunghezza nota. In questo caso potresti calcolare la posizione del primo carattere della 27esima riga e iniziare a leggere da l.
    ℹ️ Leggi di pi su Brontolo ...

  3. #3
    Post
    1,608
    Blogs
    33
    Like Inviati  
    0
    Like Ricevuti  
    0
    Quote Originariamente inviato da sal21 Visualizza il messaggio
    Nel file ci sono blocchi di linee contraddistinte da INIZIO: e FINE: tipo:

    INIZIO:
    altra riga
    altra riga
    ...
    FINE:


    fra INIZIO e FINE ci sono dati che non mi interessano (ci sono sempre 26 "altra riga")

    si puo fare direttemante nel codice di lettura lo skip alla riga 27 senza leggere le righe che non mi interessano?

    note:
    blocco ripetuto in in tutto il file ed sepre costante con inizio e fine cosi come lo ssono le righe da escludere (26)
    Ciao sal21.

    Dovresti essere un po' pi preciso sullo scopo di quanto vuoi ottenere.
    Stando a quello che dici, il tuo file di testo avrebbe questo formato :

    INIZIO:
    ...
    < 26 righe >
    ...
    FINE:
    INIZIO:
    ...
    < 26 righe >
    ...
    FINE:
    INIZIO:
    ...
    < 26 righe >
    ...
    FINE:
    
    ...
    
    ecc...
    
    La lettura alla fine restituirebbe solo le righe di inizio e fine blocco, ma cos facendo il risultato sarebbe :

    INIZIO:
    FINE:
    INIZIO:
    FINE:
    INIZIO:
    FINE:
    
    ...
    
    ecc...
    
    E' questo che vuoi ottenere ?
    ℹ️ Leggi di pi su MarcoGG ...

  4. #4
    sal21 non  in linea Scolaretto
    Post
    479
    Like Inviati  
    0
    Like Ricevuti  
    0
    Quote Originariamente inviato da MarcoGG Visualizza il messaggio
    Ciao sal21.

    Dovresti essere un po' pi preciso sullo scopo di quanto vuoi ottenere.
    Stando a quello che dici, il tuo file di testo avrebbe questo formato :

    INIZIO:
    ...
    < 26 righe >
    ...
    FINE:
    INIZIO:
    ...
    < 26 righe >
    ...
    FINE:
    INIZIO:
    ...
    < 26 righe >
    ...
    FINE:
    
    ...
    
    ecc...
    
    La lettura alla fine restituirebbe solo le righe di inizio e fine blocco, ma cos facendo il risultato sarebbe :

    INIZIO:
    FINE:
    INIZIO:
    FINE:
    INIZIO:
    FINE:
    
    ...
    
    ecc...
    
    E' questo che vuoi ottenere ?
    Hi fratello! con questa sarebbero tre aiuti preziosi, e per questo ti ringrazio.

    dunque la mia struttura la seguente:

    INIZIO:
    ...
    < 26 righe >
    ...
    FINE:
    lineabuona
    lineabuona
    lineabuona
    lineabuona
    lineabuona
    lineabuona
    INIZIO:
    ...
    < 26 righe >
    ...
    FINE:
    lineabuona
    lineabuona
    lineabuona
    lineabuona
    lineabuona
    lineabuona
    lineabuona
    lineabuona
    INIZIO:
    ...
    < 26 righe >
    ...
    FINE:
    lineabuona
    lineabuona
    lineabuona
    lineabuona
    lineabuona
    lineabuona
    ecc...

    quindi una volta che incontro INIZIO non ha senso leggere fino a FINE, o no?

    ho provato una cosa del genere:
    for i =1 to 26
    lineinput#, linea
    next
    ma questo rallenta il codicie in modo spaventoso....

    quindi per me la cosa :
    se incontri INIZIO conta 26 linee e vai subito alla lineabuona..

    dato che i dati nel txt sono riservati se ti va ti posso spedire il file originale... oppure contattami su skipe via voce o su msnger, e ti dico gli account per ognuno.
    Ciao.

  5. #5
    sal21 non  in linea Scolaretto
    Post
    479
    Like Inviati  
    0
    Like Ricevuti  
    0
    Quote Originariamente inviato da Brontolo Visualizza il messaggio
    Tipica mica tanto. Se lo devi leggere, perch lo apri "for output" ?


    Si pu fare soltanto se le 26 righe hanno lunghezza nota. In questo caso potresti calcolare la posizione del primo carattere della 27esima riga e iniziare a leggere da l.
    scusa ma hia ragione for input:-)

    hop le routine per leggere e scrivere nello stesso codice e mi sono sbagliato.
    ciao.

  6. #6
    Post
    1,608
    Blogs
    33
    Like Inviati  
    0
    Like Ricevuti  
    0
    Quote Originariamente inviato da sal21 Visualizza il messaggio
    ...
    quindi per me la cosa :
    se incontri INIZIO conta 26 linee e vai subito alla lineabuona..

    dato che i dati nel txt sono riservati se ti va ti posso spedire il file originale... oppure contattami su skipe via voce o su msnger, e ti dico gli account per ognuno.
    Non penso sia necessario l'invio dei file.
    Quello che vuoi pu essere fatto facilmente referenziando la libreria Microsoft Scripting Runtime, e usando uno Scripting.FileSystemObject e uno Scripting.TextStream.

        Dim FSO As New Scripting.FileSystemObject
        Dim TS As Scripting.TextStream
        Set TS = FSO.OpenTextFile(percorso & nomeFile)
    
    Questo per aprire il file e creare il TextStream.

    Nel ciclo TextStream ( Do Until TS.AtEndOfStream ... ) puoi usare a seconda :
    - TS.ReadLine
    - TS.SkipLine

    Vedi se ci riesci da solo, altrimenti chiedi...
    ℹ️ Leggi di pi su MarcoGG ...

  7. #7
    sal21 non  in linea Scolaretto
    Post
    479
    Like Inviati  
    0
    Like Ricevuti  
    0
    Quote Originariamente inviato da MarcoGG Visualizza il messaggio
    Non penso sia necessario l'invio dei file.
    Quello che vuoi pu essere fatto facilmente referenziando la libreria Microsoft Scripting Runtime, e usando uno Scripting.FileSystemObject e uno Scripting.TextStream.

        Dim FSO As New Scripting.FileSystemObject
        Dim TS As Scripting.TextStream
        Set TS = FSO.OpenTextFile(percorso & nomeFile)
    
    Questo per aprire il file e creare il TextStream.

    Nel ciclo TextStream ( Do Until TS.AtEndOfStream ... ) puoi usare a seconda :
    - TS.ReadLine
    - TS.SkipLine

    Vedi se ci riesci da solo, altrimenti chiedi...
    ok quindi se ho ben capito dovrei fare 26 copie di: TS.SkipLine quando il codice incontra INIZIO, o no?

  8. #8
    sal21 non  in linea Scolaretto
    Post
    479
    Like Inviati  
    0
    Like Ricevuti  
    0
    Quote Originariamente inviato da MarcoGG Visualizza il messaggio
    Non penso sia necessario l'invio dei file.
    Quello che vuoi pu essere fatto facilmente referenziando la libreria Microsoft Scripting Runtime, e usando uno Scripting.FileSystemObject e uno Scripting.TextStream.

        Dim FSO As New Scripting.FileSystemObject
        Dim TS As Scripting.TextStream
        Set TS = FSO.OpenTextFile(percorso & nomeFile)
    
    Questo per aprire il file e creare il TextStream.

    Nel ciclo TextStream ( Do Until TS.AtEndOfStream ... ) puoi usare a seconda :
    - TS.ReadLine
    - TS.SkipLine

    Vedi se ci riesci da solo, altrimenti chiedi...
    e poi non ho mai usato TextStream mi puoi fare un esempio di lettura riga by riga, grazie.

  9. #9
    Post
    1,608
    Blogs
    33
    Like Inviati  
    0
    Like Ricevuti  
    0
    Quote Originariamente inviato da sal21 Visualizza il messaggio
    ok quindi se ho ben capito dovrei fare 26 copie di: TS.SkipLine quando il codice incontra INIZIO, o no?
    Quote Originariamente inviato da sal21 Visualizza il messaggio
    e poi non ho mai usato TextStream mi puoi fare un esempio di lettura riga by riga, grazie.
    No, che significa "26 copie" ?

    Intendo qualcosa del genere :

        Dim FSO As New Scripting.FileSystemObject
        Dim TS As Scripting.TextStream
        Set TS = FSO.OpenTextFile(percorso & nomeFile)
        Dim cnt As Integer
        Dim cntMax As Integer
        cntMax = 26
        Dim linea As String
            
        Do Until TS.AtEndOfStream
            If cnt > 0 And cnt <= cntMax + 1 Then
                TS.SkipLine
                cnt = cnt + 1
            Else
                linea = TS.ReadLine
                If linea = "INIZIO:" Then
                    cnt = 1
                Else
                    cnt = 0
                End If
            End If
        Loop
        TS.Close
    
    Dove cntMax = 26 se le righe fra INIZIO: e FINE: sono 26.
    ℹ️ Leggi di pi su MarcoGG ...

  10. #10
    cyano non  in linea Scolaretto
    Post
    80
    Like Inviati  
    0
    Like Ricevuti  
    0
    Io sono del parere che se sono stati messi i segnali di INIZIO e FINE sia la prova che in futuro il numero di righe possa variare diventando maggiore o minore.
    Quindi, se le righe utilizzabili sono quelle contenute all'interno dei marcatori di start/stop allora si pu benissimo fare a meno di testare il numero di righe (26).
    (codice seguente ricavato da: Reading a Text file Line by Line - Visual Basic - Source Code | DreamInCode.net )
    
    '(general declaration)
    
    Dim nFileNum As Integer, sText As String, sNextLine As String, lLineCount As Long
    
    '==================================
    
    Private Sub Command1_Click()
    
    ' Get a free file number
    nFileNum = FreeFile
    Dim flagScarta As Boolean
    FlagScarta = true
    ' Open a text file for input. inputbox returns the path to read the file
    Open "c:\mytextfile.txt" For Input As nFileNum
    lLineCount = 1
    ' Read the contents of the file
    Do While Not EOF(nFileNum)
       Line Input #nFileNum, sNextLine
       'do something with it
       if sNextLine = "INIZIO" THEN 
         flagScarta = true
       ELSE if NextLine = "FINE" Then
         flagScarta = true
        else
          flagscarta = false
       End If
       IF Not flagScarta THEN
          .. lo utilizzo
       End If
    
    Loop
    ' Close the file
    Close nFileNum
    
    End Sub
    
    ℹ️ Leggi di pi su cyano ...

Discussione chiusa
Pagina 1 di 3 123 ultimoultimo

Potrebbero interessarti anche ...

  1. Confronto Linee due file di testo
    Da glak nel forum Visual Basic .Net
    Risposte: 19
    Ultimo Post: 03-02-2011, 23:57
  2. Colorare linee listbox
    Da glak nel forum Visual Basic 6
    Risposte: 8
    Ultimo Post: 27-02-2010, 11:50
  3. Text Skip
    Da steve1112 nel forum Visual Basic .Net
    Risposte: 2
    Ultimo Post: 01-11-2008, 13:20
  4. Linee di comando che copia un file nel menù avvio
    Da giuseve nel forum Microsoft Windows
    Risposte: 0
    Ultimo Post: 20-01-2006, 09:54
  5. Cancellare linee
    Da coru nel forum Visual Basic 6
    Risposte: 2
    Ultimo Post: 20-01-2004, 08:51