Ga naar inhoud

[VB6] INI-file probleem in W2000


anoniem

Aanbevolen berichten

Ik heb al een tijdje geleden een programma (in VB6) gemaakt voor iemand. Tot dusver gaf het onder W98 geen problemen, echter.... Geinstalleerd op een nieuwe pc met W2000 geeft het volgende probleem bij het maken van het INI-bestand. W98:(goed) Bij het schrijven van een sectie dmv [b:c46153660e]WritePrivateProfileSection [/b:c46153660e]wordt alle data onder deze sectie gewist en vervangen door de nieuwe instellingen die je wilt bewaren. W2000:(fout) De nieuwe instellingen worden er gewoon bijgeschreven ipv vervangen. Het gaat om een sectie die alleen waarden bevat (dus geen sleutels en '='-teken) zoals: [DOCUMENTEN] C:\Test\Brief01.txt C:\Test\Brief02.txt C:\Test\Brief03.txt Wanneer ik nu bijv. Brief10, Brief11 en Brief12 wil bewaren onder DOCUMENTEN, blijven onder W2000 Brief01, Brief02 en Brief 03 staan en worden ze onder W98 weggehaald (wat de bedoeling ook is). IS DIT PROBLEEM BIJ IEMAND BEKEND EN WAT KAN IK DOEN OM HET TOCH GOED TE LATEN VERLOPEN? bedankt voor de moeite ROB
Link naar reactie
Wat jij wilt is gewoon onjuist gebruik van INI files. In een INI file behoor je eigenlijk alleen maat "veld=waarde" regels te gebruiken. W2000 gaat er -terecht- van uit dat je de waardes aan een sectie wilt toevoegen, terwijk W98 -onterecht- de sectie verwijderd en een nieuwe sectie er voor terug schrijft. De fout zit hem dus in W98 en jij bent gaan profiteren van die fout... Wat je eigenlijk in je INI file behoort te hebben is dit: [DOCUMENTEN] Item1=C:\Test\Brief01.txt Item2=C:\Test\Brief02.txt Item3=C:\Test\Brief03.txt of dit: [DOCUMENTEN] C:\Test\Brief01.txt=0 C:\Test\Brief02.txt=0 C:\Test\Brief03.txt=0 Maar dus niet wat jij probeert te produceren.
Link naar reactie
OK, dat klinkt overtuigend. Maar dat 'vervangen' van de hele sectie komt juist mooi uit in dit geval, omdat de beheerder van mijn programma in een beheermenu een aantal documenten (het aantal varieert) kan selecteren die uiteindelijk getoond gaan worden aan de eindgebruikers. Het aantal 'sleutels' in deze sectie varieert dus regelmatig. Hoe zou ik dat 'legaal' kunnen oplossen?
Link naar reactie
Simpel...Voeg gewoon =0 toe aan alle regels binnen de sectie. Dat zou volgens mij het probleem kunnen oplossen. Maar om te voorkomen dat oude waardes blijven staan binnen de sectie moet je dus eerst de sectie verwijderen voordat je hem opnieuw toevoegt. Het inlezen is ook redelijk eenvoudig aangezien je alleen de veldnamen inleest door GetProfileString of GetPrivateProfileString te gebruiken. Verder wil ik nog opmerken dat het gebruik van INI files een tikkeltje verouderd raakt. Microsoft zelf gaat steeds vaker XML bestanden gebruiken voor het opslaan van settings en daarnaast is de registry ook een erg populaire plek. Daarnaast maakt veel software ook gebruik van hun eigen bestands-formaat voor het opslaan van gegevens, vaak in binaire vorm. En dan met een extra editor erbij die dit binaire bestandje inleest en mogelijkheden biedt om via een mooie GUI de nnodige aanpassingen te maken. Als je een beetje modern wilt blijven, overweeg dan om je instellingen in een XML bestand op te slaan... :)
Link naar reactie
[quote:94f71d72e5="Workshop Alex"] Verder wil ik nog opmerken dat het gebruik van INI files een tikkeltje verouderd raakt.[/quote:94f71d72e5] Verouderd in de zin van: dat het langer bestaat dan de registry en XML bestanden. Maar absoluut niet deprecated naar mijn mening. [quote:94f71d72e5="Workshop Alex"]Microsoft zelf gaat steeds vaker XML bestanden gebruiken voor het opslaan van settings en daarnaast is de registry ook een erg populaire plek.[/quote:94f71d72e5] Een INI file heeft zo z'n voor- en nadelen. Hetzelfde geldt voor de registry. Een INI file is gewoon een veredeld XML bestand. [quote:94f71d72e5="Workshop Alex"]Daarnaast maakt veel software ook gebruik van hun eigen bestands-formaat voor het opslaan van gegevens, vaak in binaire vorm. En dan met een extra editor erbij die dit binaire bestandje inleest en mogelijkheden biedt om via een mooie GUI de nnodige aanpassingen te maken. [/quote:94f71d72e5] [quote:94f71d72e5="Workshop Alex"] Als je een beetje modern wilt blijven, overweeg dan om je instellingen in een XML bestand op te slaan... :)[/quote:94f71d72e5] Jaja, de marketingpraat van Microsoft. :roll:
Link naar reactie

Om een reactie te plaatsen, moet je eerst inloggen

Gast
Reageer op dit topic

×   Geplakt als verrijkte tekst.   Herstel opmaak

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

  • Populaire leden

    Er is nog niemand die deze week reputatie heeft ontvangen.

  • Leden

    Geen leden om te tonen

×
×
  • Nieuwe aanmaken...