Newsgroup: it.comp.lang.visual-basic
Titolo: Scrittura su file: problema complesso

 Kolter
La prima cosa che mi viene in mente, senza scomodare Wort per elaborare
il processo, è:
Caricare in un array tutto il testo, una riga in ogni elemento
Cercare l'indice contenente la stringa <pippo>,
Aggiungere un elemento alla fine dell'array (Array dinamico, usa redim
preserve)
Scorrere tutti gli elementi dell'array successivi a <pippo> avanti di
uno (cioè nella posizione successiva)
Inserire nell'indice successivo a <pippo> il novo testo
Dopo tutti gli inserimenti sovrascrivi il vecchio file.
Potresti avere problemi se il file è molto grosso o le righe sono molto
lunghe, ma non mi pare questo il caso.
-----------------------------
------------------------------
--- Esempio per caricare il file
------------------------------
Sub FileInArray
Dim TextLine
Dim cnt
t = 0
Dim DataArr() As String
cnt = 0
Open "miofile.txt" For Input As #1 ' Open file.
Do While Not EOF(1) ' Loop until end of file.
    Line Input #1, TextLine ' Read line into variable.
    Debug.Print TextLine    ' Print to Debug window.
    cnt = cnt + 1
    ReDim Preserve DataArr(cnt)
    DataArr(cnt) = TextLine
Loop
Close #1 
For cnt = 0 To UBound(DataArr(), 1)
    'Debug.Print "***" + DataArr(cnt) + "**"
	IF DataArr(cnt)="<pippo>" then
		MyIndex=cnt+1
		exit for
	Endif
Next
If MyIndex > 0 then
	redim preserve dataArr(UBound(DataArr(), 1)+1)
	For cnt=UBound(DataArr(), 1) to MyIndex+1 STEP -1
		dataArr(cnt)=dataArr(cnt-1)
	next
	dataArr(MyIndex)="Testo Nuovo"
End if
'------------- Verifica finale
For cnt = 0 To UBound(DataArr(), 1)
    Debug.Print "***" + DataArr(cnt) + "**"
 
Next
end sub
-------------------------------
-------------------------------
Spero di esserti stato utile
-- 
-------------------------------------------------------------------
        ///
       / ^ \
      ( o-o )
--oOOO--(_)--OOOo--------------------------------------------------
                 Ing. Leonardo Tagliavini 
                 Via del Navile 1/3
                 40131 Bologna Italy
                 Tel. 051-6344416
 
    oooO
   (   )   Oooo. e-mail:  
mon...@iperbole.bologna.it
----\ (----(   ----------------------------------------------------
     \_)    ) /
           (_/
------ ``This message is printed on 100% recycled electrons.''-----
-------------------------------------------------------------------

Io avrei fatto cosi' :
Leggo il file (supponiamo si chiami DATA.TXT)
lo riscrivo paro paro su di un file di appoggio es: TEMP.TXT fin quando
non incontro la riga <pippo>, quindi appena scrivo la riga pippo, vado
ad aggiungere le nuove righe di cui ho bisogno.
poi continuo normalmente.
Alla fine copio TEMP.TXT in DATA.TXT
open "c:\data.txt" for unput as #1
open "c:\temp.txt" for output as #2
dim record as string
 Do while not eof(1)
        line input #1,record
        print #2,record
        select case trim$(record)
                 case "<pippo>"
                        '    ------ scrivo testo per sezione pippo
                        print #2,testopippo
                  case "<pluto>"
                        '    ------ scrivo testo per sezione pluto
                       print #2,testopluto
        end select
Loop
Filecopy "c:\temp.txt","c:\data.txt"
Penso che debba funzionare, non l'ho provato ma mi pare OK! Fammi
sapere........
Ciao.



Potresti caricare il contenuto del textbox in una variabile string (s
= Text1.Text), cercare la posizione in cui inizia la tua sezione con
la funzione InStr(), dividere in due il testo corrente usando Left() e
Right() aggiungendo in mezzo il testo da inserire. Ripeti l'operazione
per ogni sezione, poi riassegni la stringa al textbox.
Ciao
--------------------------------------------------------------------
Fulvio Senore
Eliminate "zz" dall'indirizzo e-mail per scrivermi (spammers...)
Remove "zz" from e-mail address to write me (spammers...)
--------------------------------------------------------------------