Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    115

    [VB6] Scrivere in un file di testo sostituendo solo una riga

    Salve a tutti, ho un piccolo problema; ho un file di testo con diverse informazioni sulle varie righe. Una di esse devo modificarla attraverso il programma, le altre devo solamente leggerle quindi non sono un problema. Il problema è che per sovrascrivere la prima riga del file, il programma mi cancella tutte le altre righe, mentre vorrei che le altre me le lasciasse stare... io apro il file for Output ed uso la funzione Write, ma mi fa sto scherzetto. Come faccio a dirgli di sovrascrivere solo la prima riga col valore che gli do, e non tutto il file? Grazie

  2. #2
    io farei così

    apro in scrittura un nuovo file
    scrivo la riga
    apro in lettura il vecchio file
    skippo la prima riga
    leggo tutte le altre righe e le accodo al nuovo file
    chiudo i file
    cancello il vecchio
    rinomino il nuovo col nome del vecchio

  3. #3
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Non è possibile scrivere solo una parte del file, quindi occorre procedere così:

    1 - Con Open apri l'intero file in Input (se contiene caratteri di controllo dovrai usare Binary invece di Input) e lo carichi in una variabile stringa (es: sOldVar):
    codice:
    Public Function sTextFile (byval sPathFile as string) As String
        Dim fnum As Integer
        fnum = FreeFile()
        Open sPathFile For Input As #fnum
        sTextFile  = Input(LOF(fnum), fnum)
    End Function
    sOldVar = sTextFile(TUO_FILE)
    3 - Ora puoi crearti un array di stringhe, in cui ogni elemento dell'array contiene una riga del tuo file:
    codice:
        Dim sAr() As String
        sAr = Split(sOldVar, vbCrLf)
    e ottieni così un'array con tutte le righe.

    Adesso puoi modificare la tua riga:
    codice:
        Dim i As Integer
        Dim sNewVar as String ' conterrà il testo del file modificato
        For i = 0 to UBound(sAr)
            ' scorri le righe e trovi quella da modificare 
            If Instr(sAr(i), "TestoDaCercare") > 0 then
                sAr(i) = Replace(sAr(i), "TestoDaCercare", "NuovoTesto")
            End If
            ' ricostruisco il file per salvarlo alla fine
            sNewVar = sNewVar & sAr(i)
        Next i
    Infine salvi l'intero file sovrascrivendo il vecchio con il nuovo contenuto in sNewVar.

    Usa Print invece di Write, perchè Write ti aggiunge le virgolette (che non servono) mentre Print no, stampa esattamente il contenuto senza modificarlo.


    Ciao

  4. #4

    Re: [VB6] Scrivere in un file di testo sostituendo solo una riga

    Originariamente inviato da Harry
    ..........
    Il problema è che per sovrascrivere la prima riga del file, il programma mi cancella tutte le altre righe, mentre vorrei che le altre me le lasciasse stare...
    ...........
    Come faccio a dirgli di sovrascrivere solo la prima riga col valore che gli do, e non tutto il file? Grazie
    puoi farlo evitando di riscrivere tutto il file solo a condizione che la nuova riga sia di lunghezza
    pari a quella vecchia; nel qual caso basta sovrascrivere i bytes della vecchia riga con i nuovi.

    Altrimenti ti hanno già detto come fare.

  5. #5
    Utente di HTML.it L'avatar di jury79
    Registrato dal
    Feb 2010
    Messaggi
    50
    Ciao a tutti,
    Chiedo un vostro semplice aiuto visto che vi vedo molto pratici.

    Voglio importare un file i testo nel mio database.
    Ho creato una semplice macro ed abbinata ad un tasto azione.
    Il mio file sulla prima riga ha il nome dei campi separati da punto e virgola, sulle righe successive i vari valori sempre separati da punto e virgola.
    Il problema è che tali valori sono numerici ed al posto della virgola hanno il punto.
    Mi spiego, es:

    altezza;larghezza;lunghezza
    10.5;20.3;50.5
    20.2;60;50.5

    I punti mi danno problemi nell'importazione
    Pensavo quindi di fare un trova e rimpiazza di "." con "," prima dell'importazione.

    Ma lo script da utilizzare per l'elaborazione del file come diventa? :master:

    Spero di essere stato chiaro.

    Grazie, ciao

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da jury79
    Ciao a tutti,
    Chiedo un vostro semplice aiuto visto che vi vedo molto pratici.
    Ma perchè ti sei accodato a questo thread del 2008 e non ne hai creato uno tuo?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472

    Moderazione

    Non si risollevano discussioni concluse da tempo per proporre una nuova domanda.

    Apri una nuova discussione separata.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

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.