Avatar billede HPCISCO Nybegynder
11. december 2012 - 11:24 Der er 5 kommentarer og
1 løsning

Versionsstyring af settings-filer

Hej,

følgende senarie:

Mit program kan gemme eller åbne forskellige indstillinger fra en xml fil.
Filen kunne se sådan ud, her vist med 7 indstillinger:

<?xml version="1.0" encoding="UTF-8"?>
<Root>
  <Settings>
    <Setting Index="0">1224</Setting>
    <Setting Index="1">6574</Setting>
    <Setting Index="2">9878</Setting>
    <Setting Index="3">1215</Setting>
    <Setting Index="4">2136</Setting>
    <Setting Index="5">5567</Setting>
    <Setting Index="6">7976</Setting>
  </Settings>
</Root>

Denne fil er f.eks. genereret med mit program med version 1.0.0.0 (versionsnummeret er indeholdt i filen, dog ikke vist her).

Versionsnummeret skal bruges til at sammenligne en fil før den åbnes af programmet på et senere tidspunkt.
Det kan nemlig ske, at der i en nyere programversion er kommet flere indstillinger til, så en ny genereret fil vil indeholde f.eks. 8 eller flere indstillinger.

Hvis en fil har et ældre versionsnummer end programmet selv, når den åbnes, skal programmet ikke bare læse indstillingerne fra filen i et simpelt loop, da index på indstillingerne i filen så ikke passer med index på indstillingerne i programmet.

Derfor har jeg tænkt mig at have en version af min åbne-metode (LoadSettingsFromFile) for hver gammel programversion liggende i f.eks. en .dll.
I tilfælde af, at mit program finder ud af, at det er ved at åbne en gammel xml-fil, kalder det så den rigtige metode fra dll-filen, hvor denne metode så korrigerer for de forkerte index og loader filen ind i programmet.

Lyder dette som en fornuftig måde at gøre tingene på, eller er jeg på det gale spor?
Avatar billede arne_v Ekspert
11. december 2012 - 14:13 #1
Jeg tror at du kunne simplificere en del ved at bruge navne fremfor index paa dine settings variable!
Avatar billede HPCISCO Nybegynder
11. december 2012 - 14:53 #2
Hvis ikke jeg önsker det, har du andre forslag til den oprindelige lösning?
Avatar billede Panen Nybegynder
11. december 2012 - 14:57 #3
De objekter du ændrer indstilling på efter du loader filen i dit program, kan du ikke bare give dem et index der matcher det i filen, og så lade dit loop finde et objekt der matcher når indstilling skal sættes. På den måde kan du bruge den samme load-funktion i hver ny version, også selvom der kommer flere indstillinger.
Avatar billede HPCISCO Nybegynder
27. december 2012 - 12:16 #4
Tak indtil nu, jeg arbejder på sagen, og vender tilbage senere.
Avatar billede HPCISCO Nybegynder
02. januar 2013 - 14:23 #5
Jeg valgte arnes løsning, og har nu navngivet mine indstillinger.
arne_v, læg svar!

Disse navne må så aldrig ændres, hvilket kan være lidt træls, men lad os nu se.

Tak til alle.
Avatar billede arne_v Ekspert
02. januar 2013 - 15:27 #6
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester