anoniem Geplaatst: 19 december 2002 Delen Geplaatst: 19 december 2002 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 Quote Link naar reactie
anoniem Geplaatst: 19 december 2002 Auteur Delen Geplaatst: 19 december 2002 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. Quote Link naar reactie
anoniem Geplaatst: 19 december 2002 Auteur Delen Geplaatst: 19 december 2002 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? Quote Link naar reactie
anoniem Geplaatst: 20 december 2002 Auteur Delen Geplaatst: 20 december 2002 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... :) Quote Link naar reactie
anoniem Geplaatst: 20 december 2002 Auteur Delen Geplaatst: 20 december 2002 [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: Quote Link naar reactie
Aanbevolen berichten
Om een reactie te plaatsen, moet je eerst inloggen