Christian M. Nielsen wrote:
> Jeg fandt fejlen i mit oprindelige kode. Jeg havde en Dim af strImageName to
> steder. Både inde i funktionen og i selve koden hvor den blev brugt første
> gang. Grunden til dette var at jeg fik en fejlmeddelelse om at variablen
> ikke var defineret i funktionen, så derfor kom den med der også.
Det var i grunnen dette jeg var inne på i mitt første svar. Uansett,
fint at du fikk det til å fungere.
Dersom du skriver _Option Explicit_ øverst i alle dine asp filer så
unngår du alle problemer av denne typen. _Alle_ asp filer skal starte
med disse to ordene. Dessuten bør alle nybegynnere i ASP lære seg det
aller mest elementære:
- Alle variabler skal dimmes. Gjør dette øverst i funksjonen (lokale
variabler) eller øverst i filen (modul variabler). Ikke dim én variabel
her og en der. Hold dem samlet. I utgangspunktet bør hver variabel
dimmes på en egen linje. Har du veldig mange variabler så kan du
eventuelt dimme alle long variabler på en linje, alle string variabler
på en annen osv. Men om du har veldig mange variabler så bør du også
vurdere om ikke din kode kan forenkles. Ikke press tre asp filer inn i
én fil. Har du mer enn omtrent 300 linjer så bør du vurdere å splitte
opp koden i flere filer.
- Dernest skal variablene gis beskrivende og logiske navn. Gjerne også
så korte som mulig. Man skal faktisk bruke litt tid på dette. Vurder
ulike navnealternativer opp mot hverandre og velg så det beste. Du har
f. eks. en variabel som heter _tmpImageNameLength_ som ikke er spesielt
bra, for å si det diplomatisk. Av sammenhengen forstår jeg at den holder
en tallverdi fordi du skriver: tmpImageNameLength = ImageNameLength - 4.
For det første er denne variablen unødvendig fordi du like gjerne kunne
skrevet: ImageNameLength = (ImageNameLength - 4). For det andre er
navnet misvisende fordi den egentlig inneholder lengden på den fysiske
filbanen. Den burde derfor hete f. eks. _lngPathLen_ som også forteller
oss at dette er datatypen long.
- Så skal altså alle variabler ha et prefiks som forteller hva slags
datatype det er. I din funksjon har du en annen variabel som heter
"file". Hvis dette er f. eks. et filnavn så er det en string variabel.
Men det kan også godt være et object. For å finne ut av dette så må man
lese hele din kode. Det er faktisk _mye_ enklere da å navngi din
variabel som strFileName eller bare sFileName. Da ser man umiddelbart
hva det dreier seg om.
- Ikke skriv 300 linjer fra toppen og ned i "kronologisk" rekkefølge. Du
skal bygge opp dine asp filer med funksjoner og subber. Kode som du
bruker mer enn en gang skal du legge i en egen fil der du samler slike
funksjoner. Denne filen inkluderer du så i de andre filene som trenger
disse funksjonene. F.eks. legger du alle funksjoner som angår email i en
egen fil. Alle som angår FileSystemObject (fil funksjoner) i egen fil osv.
terje
PS: Vi knuser dere i finalen