Newsgroup: it.comp.lang.visual-basic
Titolo: File INI: aiuto!!

Ciao a tutti!!
Qualcuno può fornirmi informazioni (o consigliarmi su dove trovarne)
sull'utilizzo dei dei file INI in Visual Basic (struttura, modalità di
scrittura dei file, lettura da una riga/sezione predefinita...)? Ho
provato a cercare in lungo e in largo nella guida online di VB senza
trovare nulla di veramente utile.
Grazie mille a chiunque avrà la pazienza e la voglia di rispondermi!!
Alfonso

Innanzitutto guarda sul sito comune, dove dovrebbe esserci un OCX che fa al
caso tuo.
Poi, ci sono delle funzioni API:
scrive una sezione
    WritePrivateProfileSection
scrive una riga
    WritePrivateProfileString
legge una sezione
    GetPrivateProfileSection
legge una riga
    GetPrivateProfileString
Io le ho già usate, ma sono un principiante e sebbene ci sono riuscito non
credo di aver fatto un lavoro molto "elegante".
Prova a cercare in questi siti qualche esempio di utilizzo:
http://users.turboline.be/btl10148/apiguide/
http://skyscraper.fortunecity.com/transmission/45/api/index.html
http://www.allapi.net/
http://members.xoom.it/CesareRizzi/
--
Ciao a tutti
Cesare Nicola
http://digilander.iol.it/cesare
L'indirizzo del sito comune è:
http://www.murialdo.it:8000/it_lang_vb/

...

Sito Comune -> Piccole Perle -> Prime piccole perle, c'e' una spiegazione di
tutte le API per gestire i files ini.
http://www.murialdo.it/it_lang_vb
Ciao
By -MES-   Maronese Ettore
http://www.maronese.com/mes
(con OCX per stampare i recordset)
Sito Comune di programmatori Visual Basic
http://www.murialdo.it/it_lang_vb

Dovresti vederti le funzioni WritePrivateProfileString e
GetPrivateProfileString delle API (su MSDN) che sono molto semplici da
usare. Trovi i prototipi nel visualizzatore API di VB. Al solito, la stringa
che riceve i dati dev'essere impostata ad una lunghezza 'bastevole'.
----------------------------------------------------------------------
Stefano Minardi
zet...@mclink.it
----------------------------------------------------------------------

 trovare nulla di veramente utile.
Visto che "This function is provided for compatibility with 16-bit
Windows-based applications. Win32-based applications should store
initialization information in the registry.", come recita "Win32
Programmer's Reference" (WIN32.HLP, scaricabile anche dal Sito comune) per
ogni funzione di gestione dei file INI, le informazioni su tali file
conviene cercarle in "Windows 3.1 SDK" (WIN31WH.HLP):
"Initialization-File Functions (3.1)
Initialization-file functions obtain information from and copy information
to a Windows or private (application-specific) initialization file. The
Windows initialization file (WIN.INI) is a special ASCII file that contains
entry-value pairs representing run-time options for applications.
An application should use a private initialization file to record
information that affects it alone. This improves the performance of the
application and Windows by reducing the amount of information that Windows
must read when it accesses the initialization file. An application should
record information in WIN.INI only if the information affects the Windows
environment or other applications and should send the WM_WININICHANGE
message to all top-level windows.
The WININI.WRI and SYSINI.WRI files supplied with the retail version of
Windows describe the contents of the WIN.INI and SYSTEM.INI files,
respectively.
GetPrivateProfileInt Retrieves integer value from initialization file
GetPrivateProfileString Retrieves a string from an initialization file
GetProfileInt Retrieves an integer value from WIN.INI
GetProfileString Retrieves a string from WIN.INI
WritePrivateProfileString Writes a string to an initialization file
WriteProfileString Writes a string to WIN.INI".
--
Ciao.
Maurizio

 rallentamento...
Quella del registry e' la corretta soluzione ad un reale problema
implementata in forma imperfetta: una volta scelta tale strada si doveva
fare in modo (non so come pero') che fosse vincolante e non facoltativa.
--
Ciao.
Maurizio

 fare in modo (non so come pero') che fosse vincolante e non facoltativa.
ho come l'impressione che una risposta unica ci sarebbe forse in un mondo di
as400 e 9000. non di win9x, che e' un s.o. compromissorio per definizione.
come si puo' vincolare un dos del 1985 a scrivere nel registro ?
ho provato molti telnet ux a 32 bit, ma continuo a trovare piu' efficace un
vecchio prg a 16 che scrive il suo piccolo ini...
il problema e' forse ridotto, ma non azzerato, con nt, mi sa.
mi sembra molto una questione strategica, di scelte, insomma.

Puoi eliminare la funzione dalle API, ma chi vieta al piccolo programmatorino
C/C++ di scriversi la sua bella DLL (o al piccolo programmatorino VB di
scriversi il suo server OLE) per riportare in vita le funzioni uccise? Insomma,
puoi vietare ad un programma di leggere e scrivere dei file? E' vero che il
registro ha la sua bella struttura gerarchica, i suoi valori binari e DWord
eccetera... ma riguardo alla struttura gerarchica, non è che serva a 'sto
granchè, e per i valori binari... be', cambi l'estensione da INI a DAT e chi ti
può venire a dire qualcosa?