Newsgroup: it.comp.lang.visual-basic
Titolo: Aprire un file in un punto scelto... come?

Salve a tutti... mi scuso per l'evidente banalita' della domanda, ma VB
non e' il mio linguaggio... ;-)
Vorrei riuscire ad aprire un File (txt) in un determinato punto, per
inserirvi una stringa.
Ho memorizzato il punto in una variabile...
ma come faccio a dirgli che voglio inserire "in quel punto" una
stringa?
Grazie in anticipo
Mjk

 stringa?
devi comunque dividere il file in due e rimettere insieme il tutto in
un nuovo file.
-- 
ciao, hal

 Potresti scrivermi due righe di codice di esempio?
il web ne e` pieno, comunque guarda sull'help le funzioni di
lettura/scrittura files:
Open, Close, Print, Write, Put, Get, Seek, Input, Line Input, ...
-- 
ciao, hal

 esempi di una cosa del genere?
In effetti ormai MSDN per VB6 ormai è difficile da trovare in rete :)
Fortunati quelli che si sono premurati di scaricarlo un po' di tempo fa ;)
Ciao 


Comunque
http://msdn.microsoft.com/vbrun/
MSDN per VB6
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnanchor/html/vb6anchor.asp
MSDN per i linguaggi Microsoft
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnanchor/html/vistoolsanchor.asp
MSDN library
http://msdn.microsoft.com/library/
E per chi vuole la nuova MSDN:
http://msdn2.microsoft.com/en-us/library/default.aspx
Ciao
-- 
Free .Net Reporting Tool - 
http://www.neodatatype.net
 

 inserirvi una stringa (Valori).
Allora, prima un po' di teoria.
Se il file non Random (cioè un file a record a lunghezza fissa) non lo puoi 
modificare in questo modo, perchè rischi di sovrascrivere i caratteri che 
seguono o di lasciare quelli che c'erano prima.
Un file strutturato come un file ini in particolare va letto riga per riga, 
e riscritto su un secondo file temporaneo con le dovute modifiche e alla 
fine si sostituisce il file originale con quello nuovo.
Adesso un consiglio pratico.
Per i file ini l'sdk di windows mette a disposizione diverse funzioni già 
belle e pronte e se cerchi in rete troverai sicuramente già tonnellate di 
classi e funzioni in VB6 che fanno quello che ti serve a costo zero (e che 
molto probabilmente funzionano).


 [SNIP]
Rispondo con un po' di fretta, scusa per lo snip selvaggio.
Se il file e' particolarmente piccolo e la posizione in cui devi inserire il 
testo e' caratterizzata da una stringa/serie di caratteri fissa ("#Posizione 
dei Valori#") puoi leggere tutto il file in una variabile di testo, e invece 
di Instr, dividere il testo sulla stringa fissa con la funzione Split, e poi 
generare la tua stringa concatenando il risultato, infilandoci in mezzo 
quello che vuoi scrivere.
Per gestire i file ini sono comunque piu' comode (e veloci) le API 
GetPrivateProfileString, e WritePrivateProfileString.
Ti allego in calce due comode funzioni wrapper delle due API per gestire un 
file "settings.ini" nella cartella del programma. Riadattalo pure alle tue 
esigenze.
hth,
Lokar
'------------------------------------------------------------
' mINI.bas
'------------------------------------------------------------
Private Declare Function GetPrivateProfileString _
                        Lib "kernel32" _
                        Alias "GetPrivateProfileStringA" _
                        (ByVal lpApplicationName As String, _
                        ByVal lpKeyName As Any, _
                        ByVal lpDefault As String, _
                        ByVal lpReturnedString As String, _
                        ByVal nSize As Long, _
                        ByVal lpFileName As String) As Long
Private Declare Function WritePrivateProfileString _
                        Lib "kernel32" _
                        Alias "WritePrivateProfileStringA" _
                        (ByVal lpApplicationName As String, _
                        ByVal lpKeyName As Any, _
                        ByVal lpString As Any, _
                        ByVal lpFileName As String) As Long
'------------------------------------------------------------
' Restituisce il percorso dell'applicazione con la "\" finale
' ove manca (es. percorsi root C:, D:, ecc.)
'------------------------------------------------------------
Public Function AppPath() As String
'Restituisce il percorso dell'applicazione
    With App
        AppPath = IIf(Right$(.Path, 1) = "\" Or Right$(.Path, 1) = "/", 
.Path, .Path & "\")
    End With
End Function
'------------------------------------------------------------
' Scrive nel file settings.ini il valore Value della chiave
' Key della sezione Section
'------------------------------------------------------------
Public Sub WriteIni(ByVal Section As String, _
                    ByVal Key As String, _
                    ByVal Value As String)
    Call WritePrivateProfileString(Section, Key, Value, _
                                   AppPath & "settings.ini")
End Sub
'------------------------------------------------------------
' Legge dal file settings.ini il valore della chiave Key
' della sezione Section. Se e' nullo, restituisce il valore
' in Default
'------------------------------------------------------------
Public Function ReadIni(ByVal Section As String, _
                        ByVal Key As String, _
                        Optional ByVal Default As String) _
                        As String
    Dim ret As String
    Dim chNum As Long
    ret = String(255, 0)
    chNum = GetPrivateProfileString(Section, Key, Default, ret,_
                                    255, AppPath & "settings.ini")
    If chNum <> 0 Then
        ret = Left$(ret, chNum)
        ReadIni = ret
    End If
End Function