Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. Visual Studio 6.0
Gestione file txt
sabato 10 febbraio 2007 - 11.19
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Franto
Profilo
| Junior Member
75
messaggi | Data Invio:
sab 10 feb 2007 - 11:19
Ciao a tutti, ho un problema di questo tipo.
Devo gestire la creazione, la lettura, la scrittura e la chiusura di un file .txt.
Per la lettura utilizzo: Open App.Path & "\Config.txt" For Output As #1 (che mi crea anche il file se non esiste)
Per la chiusura utilizzo: Close #1
Ma per la scrittura cosa BIP bisogna fare??
Pensavo bastasse fare : input #1, mioValore ma mi da l'errore "Input oltre la fine del file"...
Programmo in VB6
Giamp72
Profilo
| Junior Member
115
messaggi | Data Invio:
lun 12 feb 2007 - 12:24
dai non ti allarmare è molto più semplice di quanto pensi:
scrittura di un nuovo file (o riscrittura di un file esistente):
qh=freefile
open "C:\file.txt" for output as #qh
print #qh, "riga1"
print #qh, "riga2"
..
print #qh, "rigan"
close #qh
scrittura di un nuovo file (o riscrittura di un file esistente) in modalità append (accoda sempre le nuove righe):
qh=freefile
open "C:\file.txt" for append as #qh
print #qh, "riga1"
print #qh, "riga2"
..
print #qh, "rigan"
close #qh
Ti scrivo anche come leggere un file di testo:
qh=freefile
open "C:\file.txt" for input as #qh
while not eof(qh)
line input #qh,rigafile$
wend
close #qh
PS: come vedi utilizzo freefile per avere un handle libero... se usi #1 in qualche caso potrebbe enadare in errore...
ciao
Giamp72
Franto
Profilo
| Junior Member
75
messaggi | Data Invio:
mar 13 feb 2007 - 23:48
Ciao, ho risolto quasi tutti i miei problemi con i file txt...ma me ne rimane uno
:
Il mio file è così composto:
STMP=ALICE:out.alice.it|ARUBA.IT:smtp.aruba.it|FASTWEB:smtp.fastwebnet.it|INWIND:mail.inwind.it|IOL:mail.iol.it
DEF_STMP=
DEF_PATH=
Io devo accedere al file e aggiorare la seconda riga con un valore.
Se apro il file in Output mi cancella il contenuto, se lo apro in Input non posso fare la Print e faccio l'Append accoda alla fine.
?????????????COME FACCIO????????????
Grazie in anticipo
Giamp72
Profilo
| Junior Member
115
messaggi | Data Invio:
mer 14 feb 2007 - 09:03
la cosa più semplice e veloce da fare è leggere il file dall'inizio alla fine e poi riscriverlo aggiornato.
per esempio
qh=freefile
open nomefile for input as #qh
while not eof(qh)
i=i+1
line input #qh,riga
if i=2 then
'modifico la riga 2
riga= "nuovo valore"
end if
totale=totale & riga & vbcrlf
wend
close #qh
qh=freefile
open nomefile for output as #qh
print #qh, totale
close #qh
In alternativa potresti usare l'istruzione seek per posizionarti in un punto preciso del file, ma è + complicato perchè essendo il file sequenziale dovresti preventivamente lasciare lo spazio (magari con dei caratteri space) entro il quale scriverai in seguito i valori...
Piuttosto, vedo che il tuo file ha la stessa struttura di un INI file.. perciò potevi usare le api
Public 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
Public 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
queste API sono ideali quando il file ha una struttura
[sezione1]
parametro1=valore
parametro2=valore
parametro3=valore
[sezione2]
parametro1=valore
parametro2=valore
se fosse fatto così i vari parametri e relative sezioni si scrivono così:
q = WritePrivateProfileString(nomesezione, nomeparametro, valore, Filename)
e si leggono così:
a = Space$(3000)
q = GetPrivateProfileString(nomesezione, nomeparametro, valoredefault, valoreletto, 3000, Filename)
'valoreletto è il valore letto dal file
ciao
Giamp72
Franto
Profilo
| Junior Member
75
messaggi | Data Invio:
mer 14 feb 2007 - 14:52
Grazie di tutto.
Ciao
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !