Hey, skal have lavet et program der kan gemme en masse serienumre i en db... Istedet for manuelt at skullle skrive f.eks. Ae38bbu6, Ae38bbu7, Ae38bbu8, Ae38bbu9, Ae38bbv0, osv. skal man bare kunne skrive
Fra Ae38bbu6 til Ae38bbv0 og så finder den selv de mellemliggende...
Først gennemløber du "fra" og "til" strengene fra venstre mod højre for at finde ud af, hvor de første gang er forskellige. Alt til venstre for det punkt er så fast. Resten deler du så op for hver plads - enten, som et tal eller, som et bogstav. Optælling starter fra højre. Hvis det er et bogstav tæller du fra det bogstavs ascii værdi til "z", hvis det er et tal ... ja så er det til 9. Hver gang du runder toppen, tæller du næste plads ....
Der er dog nogle overvejelser, som du skal have med:
I dit eksempel vil du da tælle Ae38bbu6, Ae38bbu7, Ae38bbu8, Ae38bbu9, Ae38bbua .... Eller skal den sidste hedde Ae38bbv0 ?!?!
NB Ovenstående forudsætter, at Ae38bb er en fast del af serienummeret. Altså at syntaksen for serienummeret er Ae38bbXY, hvor X = u..x og Y = 0..9 - det kan du jo bare ændre på :o)
Altså - for at skære det ud i pap - min løsning giver 30 serienumer: Ae38bbu0, Ae38bbu1 , Ae38bbu2, Ae38bbu3, Ae38bbu4, Ae38bbu5, Ae38bbu6, Ae38bbu7, Ae38bbu8, Ae38bbu9, Ae38bbv0, Ae38bbv1 , Ae38bbv2, Ae38bbv3, Ae38bbv4, Ae38bbv5, Ae38bbv6, Ae38bbv7, Ae38bbv8, Ae38bbv9, Ae38bbx0, Ae38bbx1 , Ae38bbx2, Ae38bbx3, Ae38bbx4, Ae38bbx5, Ae38bbx6, Ae38bbx7, Ae38bbx8, Ae38bbx9 ... men hvad vil du have det skal give?
if Asc(Lcase(StartChar)) > Asc(Lcase(EndChar)) then msxbox "Fejl i input - bogstav på plads 7 er i startpassword _ ligger før bogstav på plads 7 i endpassword" end if
For j = 0 to Asc(Lcase(EndChar)) - Asc(Lcase(StartChar)) For i = 0 to 9 Serienummer(i+j*10) = First4Chars & Chr(Asc(StartChar)+j) & i Next i Next j
Om igen... Det eneste den skal er at tælle bogstaver og tal... Hvis der står et tal på en plads, skal det forsat være et tal, ligeledes med bogstaver. Dvs. der ingen ombytning er med bogstaver og tal.
Den skal tælle så meget den kan, dog maks 1000 numre. Forstår i nu ?
Jeg forstår stadig ikke Dvs. serienummeret består af 8 karakterer (8 pladser) - altid? Og der kan stå både bogstaver og tal på alle 8 pladser? Hvilke pladser skal der tælles ved - de sidste 2, allesammen, hvilke?
Der er stadig 1000 måder dit spørgsmål kan opfattes på - jeg mente jeg havde givet et 100% rigtigt svar, men det er det åbenbart ikke i dine øjne. Så kom igen - hvad er den generelle syntaks for serienummeret, og hvordan skal du nye genereres?
ser er ingen fast længe på serienumrende, men maks 1000 (som en grænse)
serienumrende er meget forskællige. Vi tager et eks.
Start = VKL181TLB8GH45L Slut = VKL181TLB8GH47M
Derimellem er der ca. 52 numre, som skal genereres... Men kodeordet er kompatilitet, den skal kunne tage alle serienumre, der er ingen faste pladser for tal eller bogstaver...
Min løsning har syntaksen ZZZZZZXY, hvor ZZZZZZ er konstante, ændres ikke! X = er et bogstav, der kan variere Y er et tal, der løber fra 0 til 9
Hvad ønsker du?
Dvs. indtaster du blablaG1 & blablaM1 får du følgende serienumre:
blablaXY, hvor X = G, H, I, J, K, L, M, Y = 1,2,3,4,5,6,7,8,9,0
Dvs i dette tilfælde 70 serienumre (7 x 10)
Dette er præcis(!) det du har vist i dit eksempel, og er dynamisk som du ønsker det, idet du selv indtaster blablaG1 og blablaM1, og der er ingen ombygning mellem tal og bogstaver. Koden der gør ovenstående finder du i mit svar 23/10-2002 17:23:27 (hvor der er en stavefejl - ret First4Chars til First6Chars ;o)
Gider ikke mere - så meget tid spildt på et problem, som er så ringe forklaret :(
d. 11/10-2002 20:20:03 skrev jeg, at jeg forudsatte at de første 6 karakterer var konstante - og det har du ikke før nu brokket dig over, selvom du siger du har sagt det 3 gange - det må være et andet sted end her du har skrevet det 3 gange...)
Held og lykke
PS: der skal blot ganske ganske få ændringer i min kode, så har du det du ønsker.
Synes godt om
Ny brugerNybegynder
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.