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

    [VB6] Leggere e scrivere linea per linea (file .txt)

    Buongiorno a tutti,

    Come da oggetto mi servirebbe sapere come faccio per scrivere (dopo averla letta) una linea in un file di testo.

    In pratica, devo leggere linea per linea un file di testo e modificare alcuni caratteri.

    Non posso aprirlo tutto in un botto perchè è un file di enormi dimensioni.


    per ora, per leggere il file linea per linea utilizzo il seguente codice:

    codice:
    FileNum% = FreeFile
    A$ = ""
    
    Open Percorso For Input As #FileNum%
    Do Until EOF(FileNum)
        Line Input #FileNum%, A$
        Contenuto = A$
    
    ' Codice per modificare "Contenuto"
    ' ???? Codice per salvare "Contenuto" nella linea corrente.
    
    Loop
    Close #FileNum%

    mi manca la porzione di codice:
    ' ???? Codice per salvare "Contenuto" nella linea corrente.

    Qualcuno sa come fare?
    :master:
    «Nella mia carriera ho sbagliato più di novemila tiri. Ho perso quasi trecento partite. Ventisei volte i miei compagni mi hanno affidato il tiro decisivo e l'ho sbagliato. Nella vita ho fallito molte volte. Ed è per questo che alla fine ho vinto tutto» - Michael Jordan

    «Prima ti ignorano, poi ti deridono, poi ti combattono. Poi vinci.» - Gandhi

  2. #2
    Potresti anche leggere una riga->modificarla->ricopiarla in un file temp. Poi alla fine cancelli il file originale e rinomini il file temp col nome del file originale.
    CIAO

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2002
    Messaggi
    567
    codice:
    FileNum% = FreeFile
    A = ""
    dim str as String
    
    Open Percorso For Input As #FileNum
    Do Until EOF(FileNum)
        Line Input #FileNum, A
        Contenuto = A
        ' Codice per modificare "Contenuto"
        str = str & Contenuto & vbCrLf
    Loop
    Close #FileNum
    
    Open Percorso For Output as #1
    Print #1, str
    Close #1
    (nn comprendo quei "%"...)
    "Come vedi tutto è usuale, solo che il tempo chiude la borsa e c'è il sospetto che sia triviale l'affanno e l'ansimo dopo una corsa, l'ansia volgare del giorno dopo, la fine triste della partita, il lento scorrere senza uno scopo di questa cosa che chiami vita."

  4. #4
    eh ma se il file è di "enormi" dimensioni non può mica mettere tutto il contenuto in "str" ??? In teoria potrebbe pure farlo ma a rischio che si impalla tutto, o no?
    CIAO

  5. #5
    Utente di HTML.it L'avatar di Corwin
    Registrato dal
    Jan 2002
    Messaggi
    584
    Originariamente inviato da mardok30
    eh ma se il file è di "enormi" dimensioni non può mica mettere tutto il contenuto in "str" ??? In teoria potrebbe pure farlo ma a rischio che si impalla tutto, o no?
    CIAO
    No, lui legge una riga alla volta e la accoda al file nuovo, quindi "str" al massimo contiene una riga di testo.
    I don't wanna have to shout it out / I don't want my hair to fall out
    I don't wanna be filled with doubt / I don't wanna be a good boy scout
    I don't wanna have to learn to count / I don't wanna have the biggest amount
    I don't wanna grow up

  6. #6
    Ah ma quindi
    codice:
    Open Percorso For Output as #1
    Print #1, str
    Close #1
    deve essere messo nel do until altrimenti così come sta messo copia l'intero file nella stringa str...
    CIAO

  7. #7
    Fate riferimento all'ultimo codice che ho postato nel mio ultimo messaggio prima di questo...

    quello di precedente era solo una prova.



    Ora mi manca il pezzo di codice indicato con il commento:

    ' ???? Codice per salvare "Contenuto" nella linea corrente.


    grassie!
    «Nella mia carriera ho sbagliato più di novemila tiri. Ho perso quasi trecento partite. Ventisei volte i miei compagni mi hanno affidato il tiro decisivo e l'ho sbagliato. Nella vita ho fallito molte volte. Ed è per questo che alla fine ho vinto tutto» - Michael Jordan

    «Prima ti ignorano, poi ti deridono, poi ti combattono. Poi vinci.» - Gandhi

  8. #8
    Prova con questo:
    codice:
    FileNum1 = FreeFile
    Open Percorso1 For Input As #FileNum1
    FileNum2 = FreeFile
    Open Percorso2 For Input As #FileNum2
    
    A$ = ""
    
    Do Until EOF(FileNum1)
        Line Input #FileNum1, A$
        Contenuto = A$
    
    ' Codice per modificare "Contenuto"
    
        Print #FileNum2, A$
    
    Loop
    Close
    
    Kill Percorso1
    Name Percorso2 As Percorso1
    P.S. cerca di eliminare la sintassi con $ % ecc. che è di difficile lettura e del tutto inutile in VB6
    *** Rachele TI AMO DA MORIRE!!! ***

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.