Il linguaggio di programmazione C
 

Inserire testo in un file

Raziel 8 Nov 2015 20:35
Salve!

Ho un dubbio: voglio aprire un ******* di testo, trovare una
certa posizione indicata da un marker, e dopo questo marker
inserire del testo.

Il mio dubbio è: generalmente, quando sposto la posizione
del cursore all'interno di un ******* (con fseek/lseek) e poi
scrivo all'interno di un ******* quello che ottengo è che il
precedente contenuto viene sovrascritto.

Mi chiedevo: c'è qualche flag particolare da passare alla
open o qualche altro "trucco" fornito dal sistema operativo
(nel mio caso GNU/Linux) oppure bisogna semplicemente fare
un po' di giochini con il ******* (a mano, intendo)?

Grazie in anticipo.
fmassei@gmail.com 8 Nov 2015 22:26
On Sunday, November 8, 2015 at 8:35:23 PM UTC+1, Raziel wrote:
> Salve!
>
> Ho un dubbio: voglio aprire un ******* di testo, trovare una
> certa posizione indicata da un marker, e dopo questo marker
> inserire del testo.
>
> Il mio dubbio è: generalmente, quando sposto la posizione
> del cursore all'interno di un ******* (con fseek/lseek) e poi
> scrivo all'interno di un ******* quello che ottengo è che il
> precedente contenuto viene sovrascritto.
>
> Mi chiedevo: c'è qualche flag particolare da passare alla
> open o qualche altro "trucco" fornito dal sistema operativo
> (nel mio caso GNU/Linux) oppure bisogna semplicemente fare
> un po' di giochini con il ******* (a mano, intendo)?
>
> Grazie in anticipo.

Apri il ******* originale e il ******* finale. Copi byte-byte dall'inizio fino
al
marker, scrivi quello che devi inserire sul finale, finisci di copiare
byte-byte.

Ciao!
enoquick 9 Nov 2015 04:05
Il 08/11/2015 13:35, Raziel ha scritto:
> Salve!
>
> Ho un dubbio: voglio aprire un ******* di testo, trovare una
> certa posizione indicata da un marker, e dopo questo marker
> inserire del testo.
>
> Il mio dubbio è: generalmente, quando sposto la posizione
> del cursore all'interno di un ******* (con fseek/lseek) e poi
> scrivo all'interno di un ******* quello che ottengo è che il
> precedente contenuto viene sovrascritto.
>
> Mi chiedevo: c'è qualche flag particolare da passare alla
> open o qualche altro "trucco" fornito dal sistema operativo
> (nel mio caso GNU/Linux) oppure bisogna semplicemente fare
> un po' di giochini con il ******* (a mano, intendo)?
>
> Grazie in anticipo.
>

non c'è trucco ne inganni, linux non è windows che magari esiste qualche
api non documentata

http://linux.die.net/man/3/open
Giovanni 19 Nov 2015 10:57
On 11/08/2015 08:35 PM, Raziel wrote:
> Mi chiedevo: c'è qualche flag particolare da passare alla open o
> qualche altro "trucco" fornito dal sistema operativo (nel mio caso
> GNU/Linux) oppure bisogna semplicemente fare un po' di giochini con
> il ******* (a mano, intendo)?

Nessuna flag. In C puoi solo aprire il ******* in "append" per inserire
testo alla fine. Qualsiasi altra funzionalità deve essere gestita "a
mano". Come i vari editor che in genere lavorano su una copia.

Ciao
Giovanni
--
A computer is like an air conditioner,
it stops working when you open Windows.
< http://giovanni.homelinux.net/ >
asetofsymbols@gmail.com 26 Nov 2015 21:23
Per me si potrebbe risolvere
nel seguente modo
Apri solo per leggere il primo ******* apri solo x scrivere il secondo *******
.1: Prendi un carattere dal Ifile
se tale carattere é EOF goto .2
se tale carattere é il carattere da espandere
scrivi l'espansione nel IIfile goto .1
altrimenti scrivi tale carattere nel IIfile
goto .1
.2: Chiudi i due ******* controllando che i 2 fclose
nn ritorni error
se nn ritornano error: Elimina il Ifile
rinomina il IIfile col nome del Ifile

Links
Giochi online
Dizionario sinonimi
Leggi e codici
Ricette
Testi
Webmatica
Hosting gratis
   
 

Il linguaggio di programmazione C | Tutti i gruppi | it.comp.lang.c | Notizie e discussioni lang c | Lang c Mobile | Servizio di consultazione news.