Hoe kan ik lezen en schrijven .ini-bestanden in Visual Basic 9

October 26



Een INI-bestand is een gestructureerd tekstbestand dat de instellingen voor de gebruiker configureerbare programma functies opslaat. Bijvoorbeeld, een INI-bestand is een mechanisme voor het herinneren dat een gebruiker wil tekst weer te geven in een andere taal dan Engels. De oorspronkelijke Windows Application Programmer Interface (API) ondersteunde functies die gemakkelijk te kunnen lezen en schrijven van INI-bestanden. Microsoft heeft INI bestanden verouderd ten opzichte van het Windows-register en nieuwere XML-gebaseerde bestandsformaten. De Windows API-functies, terwijl niet direct ondersteund, beschikbaar blijven voor de Visual Basic 9 programmeurs die legacy software te ondersteunen.

Instructies

•  Voeg een Declare naar de top van de module aan het aanroepen van de Windows API-functie voor het schrijven van INI-bestanden in te schakelen: Private Declare Ansi Functie WritePrivateProfileString _ Lib "kernel32.dll" Alias ​​"WritePrivateProfileStringA" _ (ByVal lpApplicationName als Koord, _ ByVal lpKeyName As String, ByVal lpString als Koord, _ ByVal lpFileName As String) As Integer

•  Voeg een Declare functie aan de bovenkant van uw module om het aanroepen van de Windows API-functie voor het lezen van INI-bestand waarde in te schakelen: Private Declare Ansi Functie GetPrivateProfileString _ Lib "kernel32.dll" Alias ​​"GetPrivateProfileStringA" _ (ByVal lpApplicationName als Koord, _ ByVal lpKeyName As String, ByVal lpDefault als Koord, _ ByVal lpReturnedString als Koord, _ ByVal nFormaat As Integer, ByVal lpFileName als Koord) _ als Geheel

•  maken of bewerken een INI-bestand door te bellen naar de WritePrivateProfileString functie, het verstrekken van waarden voor de belangrijkste, de toepassing en de bestandsnaam. Volgens afspraak, INI-bestanden gebruiken het INI-extensie. De applicatie voor overeen met een sectie in het ini-bestand. Als een van de gespecificeerde parameters niet bestaan, worden ze gemaakt. Dit omvat het bestand zelf zolang de opgegeven directory bestaat. De WritePrivateProfile String functie zal eerder bestaande waarden overschrijven. WritePrivateProfileString ("hoofdstuk", "sleutel", "waarde", "./data.ini")

•  Spoel de cache wanneer je INI-bestand wijzigingen zijn voltooid, waardoor het risico van verlies van gegevens in geval van een abnormale programma afsluiten. Passeren nul waarden om de WritePrivateProfileString functie voor alle parameters behalve het INI-bestand naam. Dit instrueert Windows om wijzigingen in de schijf te schrijven: WritePrivateProfileString (0, 0, 0, "./data.ini")

•  Wijs een buffer voldoende is om de maximale grootte van een waarde in het INI bestand houden. Een buffer van 256 tekens is meestal voldoende. Maak een geheel getal om de werkelijke grootte van de waarde die werd opgehaald uit het INI-bestand te ontvangen. Dim strValue As String Dim intLen As Integer strValue = Space (256): Gebruik Dim de variabelen en de Space functie om geheugen toe te wijzen voor de string te verklaren

•  Haal de waarden opgeslagen in het INI-bestand door te bellen GetPrivateProfileString behulp van de variabelen, samen met de belangrijkste, sectie, en de bestandsnaam waarden die worden gebruikt bij het ​​schrijven van het INI bestand. Geef de grootte van de buffer die u aanbiedt en een waarde te worden geretourneerd wanneer de aangewezen waarde niet wordt gevonden: intLen = GetPrivateProfileString ("hoofdstuk", "sleutel", "niet gevonden", strValue, 256, "filename")

Tips en waarschuwingen

Visual Basic 9, uitgebracht in het najaar van 2007 samen met .NET versie 3.5, is ook bekend als Visual Basic 2008. Versie 6 was de definitieve versie van Visual Basic vrijgegeven voorafgaand aan de integratie .NET framework. De nieuwere XML-formaten bieden een eenvoudig te gebruiken en krachtiger middel van configuratieprogramma gegevens opslaan in web.config, Machine.config en Application.config bestanden. U kunt gebruik maken ondersteund standaard bestand IO operaties te lezen en te schrijven INI-bestanden. Dit zal vereisen dat u de parsing logica om secties en toetsen navigeren binnen de tekstbestanden implementeren. Met behulp van oudere Windows API-functies op het .NET framework omzeilen omzeilt "beheerde code." Waardoor het systeem automatisch middelen te beheren vereist minder programmering om meer betrouwbare software te bereiken met minder fouten.