Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

vbscript finde alle konstanter

8 views
Skip to first unread message

Leif Neland

unread,
Jul 22, 2014, 8:57:56 AM7/22/14
to
VBscript/classic ASP

Kan man sᅵge alle konstanter til et array eller lignende?

Jeg har en bunke konstanter med et fᅵlles prefix:

CONST SEND_IKKE = 0
CONST SEND_POST = 1
CONST SEND_GLS = 2
CONST SEND_DBD = 3
CONST SEND_PDK_UOMD = 4
CONST SEND_GLS_B2B = 5
CONST SEND_PDK_BUTIK = 6
CONST SEND_PDK_DOEGN = 7
CONST SEND_PDK_UDL = 8

Kan man lave en lᅵkke, der lᅵber over alle "SEND_%"-konstanterne?

Jeg har lavet med en
CONST SEND_MAX = 8

og sᅵ lave lᅵkken fra 0 til SEND_MAX, men det ville jeg gerne undgᅵ.

--
Husk kᅵrelys bagpᅵ, hvis din bilfabrikant har taget den idiotiske
beslutning at undlade det.


runeof...@gmail.com

unread,
Jul 25, 2014, 2:26:48 PM7/25/14
to
Den tirsdag den 22. juli 2014 14.57.56 UTC+2 skrev Leif Neland:
> VBscript/classic ASP
>
>
>
> Kan man sï¿oege alle konstanter til et array eller lignende?
>
>
>
> Jeg har en bunke konstanter med et fï¿oelles prefix:
>
>
>
> CONST SEND_IKKE = 0
>
> CONST SEND_POST = 1
>
> CONST SEND_GLS = 2
>
> CONST SEND_DBD = 3
>
> CONST SEND_PDK_UOMD = 4
>
> CONST SEND_GLS_B2B = 5
>
> CONST SEND_PDK_BUTIK = 6
>
> CONST SEND_PDK_DOEGN = 7
>
> CONST SEND_PDK_UDL = 8
>
>
>
> Kan man lave en løkke, der løber over alle "SEND_%"-konstanterne?

Du mener ligesom at man kan gennemløbe alle form felter med request.form fx?

Man kan sige for each Item in request.form, og få både navn og value af hver form felt i en form, men jeg vil tro, det er fordi det er et array, som er indbygget man så kan gøre det.

Ved ikke med konstanter/variable inde i et program, for hvordan skal man få indexet for dem som man kan i en collection?

Har jeg misforstået dit spørgsmål, eller...?

En rigtig grim løsning ville være at lave de constanter i en fil for sig, og så sige noget a la

<% include constants.asp %>

Dim f, n

f=fileRead("constants.asp")

n = (Len(f)-len(replace(f,"CONST SEND_","")) / len("CONST SEND_")

Hvor fileRead er en function som bare læser indholdet af filen, så bliver n=antallet af alle SEND constanter (uden at tage højde for mulige fejl, som CONST SEND_ i remarks mv.) og så hentes filen også to gasnge.


MVH
Rune Jensen

J�rn Andersen

unread,
Jul 26, 2014, 7:42:39 AM7/26/14
to
On Tue, 22 Jul 2014 14:57:56 +0200, Leif Neland <le...@neland.dk>
wrote:

>VBscript/classic ASP
>
>Kan man s�ge alle konstanter til et array eller lignende?
>
>Jeg har en bunke konstanter med et f�lles prefix:
>
>CONST SEND_IKKE = 0
>CONST SEND_POST = 1
>CONST SEND_GLS = 2
>CONST SEND_DBD = 3
>CONST SEND_PDK_UOMD = 4
>CONST SEND_GLS_B2B = 5
>CONST SEND_PDK_BUTIK = 6
>CONST SEND_PDK_DOEGN = 7
>CONST SEND_PDK_UDL = 8
>
>Kan man lave en l�kke, der l�ber over alle "SEND_%"-konstanterne?
>
>Jeg har lavet med en
>CONST SEND_MAX = 8
>
>og s� lave l�kken fra 0 til SEND_MAX, men det ville jeg gerne undg�.

Det tror jeg ikke, du kan. Men ville det ikke v�re nemmere at putte
dem i et array fra starten, hvis det er d�r, du skal bruge dem?

Jeg er godt klar over, at de s� ikke l�ngere er konstanter, men det
g�r vel ikke det store?


Good luck,
J�rn

--
J�rn Andersen
http://socialister.dk
http://marxisme.dk

Asger-P

unread,
Jul 26, 2014, 11:44:23 AM7/26/14
to

Hejsa Leif

On the: 22. of juli-2014 At: 14:57 Leif Neland wrote:

> VBscript/classic ASP
>
> Kan man søge alle konstanter til et array eller lignende?
>
> Jeg har en bunke konstanter med et fælles prefix:
>
> CONST SEND_IKKE = 0
> CONST SEND_POST = 1
> CONST SEND_GLS = 2
> CONST SEND_DBD = 3
> CONST SEND_PDK_UOMD = 4
> CONST SEND_GLS_B2B = 5
> CONST SEND_PDK_BUTIK = 6
> CONST SEND_PDK_DOEGN = 7
> CONST SEND_PDK_UDL = 8

Er det ikke en opgave for en switch case eller er der noget
jeg misforstår ?



Venlig hilsen
Asger-P

MacroMenu et nyt program, se videoen på:
http://asger-p.dk/software/macromenu.php#QuickTour

runeof...@gmail.com

unread,
Jul 26, 2014, 2:20:44 PM7/26/14
to
Den lørdag den 26. juli 2014 17.44.23 UTC+2 skrev Asger-P:

> Er det ikke en opgave for en switch case eller er der noget
>
> jeg misforstår ?

Jomen... uanset om du bruger select case eller for each, så skal du jo have
noget fast at gå ud fra - her SEND_* som udtrykker alt der begynder med send_

Man kan ikke bruge wildcard i en select case SVJV, og da constanter ikke
(umiddelbart) optræder i en collection, er det også svært at itere over dem.

Man kan bruge JScript i ASP, ikke kun VBscript. JScript svarer til en slags
serverside javascript. Hvis man med det kan få et index over constanter (som
man kan med alle HTML classer fx. i javascript), er det SVJKS tæt på,hvad Leif
vil. Jeg har *ingen* erfaring med Jscript selv, så kun et forslag.

Men jeg tvivler lidt på, man kan med VBscript alene, når constants.collection
ikke er indbygget. Så skal man lave en class, hvor man internt arbejder med
constanterne som arrays ell. lign. og udadtil bruger .konstanter, hvilket nok
bliver noget rod.

Ellers kan du spørge dig selv:

Hvordan får jeg nemmest udskrevet en liste over alle konstanter i mit program?

For kan du det, kan du også iterere over dem og få et index/ubound.

ASP/VBscript er tudsegammelt, så ikke noget under, hvis der bare er ting, man
ikke kan.


MVH
Rune Jensen

runeof...@gmail.com

unread,
Jul 26, 2014, 2:41:33 PM7/26/14
to
Den lørdag den 26. juli 2014 13.42.39 UTC+2 skrev J�rn Andersen:

> Jeg er godt klar over, at de så ikke længere er konstanter, men det
> gør vel ikke det store?

Der kan være mange gode grunde til at bruge konstanter. Et er, at det er nemmere at huske et navn end en værdi, en anden er, det kan højne sikkerheden,
hvis man ved med sikkerhed, at denne værdi kan ikke ændres, og hvis man
forsøger, får man en fejlmelding.

På den måde svarer det lidt til at bruge strict, så man *skal* dimensionere
sine variable/konstanter inden brug. Det kan også lette fejlfinding.

Konstanter i stedet for værdier fylder lidt mere, og er nok et par cycler
langsommere, det er den eneste bagside. Men det man tjener kan i visse tilfælde
opveje det.


MVH
Rune Jensen
0 new messages