Pagina 1 di 1

[RISOLTO] inserire testo in una determinata riga di un file.

Inviato: giovedì 17 maggio 2012, 23:53
da eevan!
Dovrei inserire un testo nella seconda riga di un file.
come si fa? ho cercato millemila volte ma non ho trovato un esempio, una soluzione, un indizio.

Re: [GAMBAS] inserire testo in una determinata riga di un fi

Inviato: venerdì 18 maggio 2012, 13:54
da eevan!
lo so che volete aiutarmi, non siate timidi.

Re: [GAMBAS] inserire testo in una determinata riga di un fi

Inviato: venerdì 18 maggio 2012, 14:30
da Galess
il primo esempio della documentazione
http://gambasdoc.org/help/lang/open

Codice: Seleziona tutto

' Prints the contents of a text file to the screen

DIM hFile AS File
DIM sLine AS String

hFile = OPEN "/etc/passwd" FOR INPUT

WHILE NOT Eof(hFile)
  LINE INPUT #hFile, sLine
  PRINT sLine
WEND
nel ciclo while metti un contatore quando è uguale a 2 ci scrivi la tua riga

Re: [GAMBAS] inserire testo in una determinata riga di un fi

Inviato: venerdì 18 maggio 2012, 16:16
da eevan!
ma io dovrei mettere una riga di un file in un altro file, non stamparlo a screen.

in pratica, metti che hai pippo.txt con scritto "roma" io quella scritta la voglio mettere alla secondo riga del file baudo.html

oppure semplicemente il testo di una textbox sempre alla seconda riga del file baudo.txt

Re: [GAMBAS] inserire testo in una determinata riga di un fi

Inviato: venerdì 18 maggio 2012, 16:20
da Galess
si ma gli esempi sono appunto degli esempi e non la soluzione ...
invece di stamparlo a video lo savi in un secondo file

Re: [GAMBAS] inserire testo in una determinata riga di un fi

Inviato: venerdì 18 maggio 2012, 16:22
da eevan!
lo so ma io sono duro..
ora studio bene e provo il codice...grazie :)

Re: [GAMBAS] inserire testo in una determinata riga di un fi

Inviato: venerdì 18 maggio 2012, 16:24
da eevan!
ah ma il contatore dove lo devo mettere?

Re: [GAMBAS] inserire testo in una determinata riga di un fi

Inviato: venerdì 18 maggio 2012, 23:38
da Galess
hai detto che devi inserire il testo nella seconda riga, il contatore ti serve per sapere in quale riga sei

Re: [GAMBAS] inserire testo in una determinata riga di un fi

Inviato: venerdì 18 maggio 2012, 23:49
da eevan!
si.
ma dove va inserito questo contatore? come lo inserisco? intendi nel codice o nella gui?
il meccanismo non mi è chiaro, proprio per niente. ed è tutta la sera che cerco di capire.

non ci sarebbero altre vie per inserire label.text nella seconda riga.. magari tramite un comando shell...

possibile che non basti dire "gambas stampami label.text nella seconda riga del file" e morta li.

Re: [GAMBAS] inserire testo in una determinata riga di un fi

Inviato: domenica 20 maggio 2012, 19:27
da eevan!
dai davvero, sto impazzendo....

Re: [GAMBAS] inserire testo in una determinata riga di un fi

Inviato: domenica 20 maggio 2012, 23:43
da eevan!
RISOLTO! Grazie all'utente Vuott sul forum di gambas, posto anche qui la soluzione nel caso potesse servirvi.

poniamo di avere un semplice file di testo con cinque righe (ma facciamo finta che noi non conosciamo tale esatto numero). Le righe sono formate dalle seguenti semplici parole:

aladino
simbad
sherazad
Abu Qir
Abu Sir

Poniamo il caso che vogliamo cambiare la parola della seconda riga da simbad in Alì Babà

Codice: Seleziona tutto

    Public Sub Button1_Click()  
    Dim f As File  
    Dim s$, sss As String  
    Dim a As Byte  
      
    ' Dichiaro quindi anche una variabile array di tipo stringa con numero elementi non definito.  
    ' Non lo definisco, poiché abbiamo ammesso che non conosco il numero esatto di righe  
    ' contenute dal file di testo:  
    Dim sArr$ As String[]  
      
      
    ' apro il mio file di testo  
    f = Open "/mio_file_di_testo" For Input  
      
    ' creo la variabile stringa array  
    sArr$ = New String[]  
      
    ' Vado a leggere tutte le righe del file:  
     While Not Eof(f)    ' compie il ciclo fin tanto che non è giunto alla fine del file    
       
     Line Input #f, s$  
      
    ' carico ogni nuova riga in un nuovo elemento della variabile array:  
       sArr$.Add(s$)  
         
    Wend    
      
    ' chiudo il file aperto in modalità Input:  
     Close #f  
      
    ' A questo punto del codice ho letto tutto il file di testo.  
    '-----------------------------------------------------------------------  
      
    ' Passo quindi a cambiare "le carte in tavola"....  
    ' ossia a trasformare il contenuto del file di testo.  
    ' In particolare, come era nella mia iniziale intenzione:  
    ' modificare la seconda riga con la parola: Alì Babà.  
    ' Ho bisogno di un ciclo per ricostruire riga dopo riga il nuovo file di testo !  
    '...e dove vado a prendere il contenuto di ciascuna riga ?  ;-) eheheheh !  
    For a = 0 To sArr$.Max  
      
    If a = 1 Then  
    ' se sono giunto alla seconda riga (il conteggio inizia da zero !),  
    ' allora il contenuto del 2° elemento dell'indice  
    ' della variabile array di tipo stringa sarà: Alì Babà:  
     sArr$[a] = "Alì Babà"  
    Endif  
      
    ' la variabile stringa "sss" è uguale alla precedente versione  
    ' di se stessa + la successiva riga + il carattere "riga a capo":  
      sss = sss & sArr$[a] & "\n"  
      
    Next  
      
    ' vado a salvare il nuovo file di testo  
    ' (ora modificato nella sua 2^ riga):  
    File.Save("/mio_nuovo_file_di testo", sss)  
      
    End