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