[asp]form veld _moet_ 4 enters bevatten

Pagina: 1
Acties:

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 16:14
Is het mogelijk om:

een gebruiker voert data in in een invulform. Deze gegevens worden in een db gestopt (ms sql)

Hoe krijg ik het voor elkaar dat er _altijd_ 4 enters in staan. Dus een gebruiker tikt wat in, entert, en tikt nog wat in. Maar daarna niet meer. Alleen dan zullen er dus nog 2 enters in gestopt moeten worden.

dus:
invulbox:
blaat dit is iets
dit is ook iets
("lege" enter)
("lege" enter)

Is hier een mogelijkheid voor?

Heart..pumps blood.Has nothing to do with emotion! Bored


Verwijderd

Het verdient geen schoonheidsprijs en ik snap helemaal niet wat je precies hiermee wil doen maar...

...string & vbNewline & vbNewline & vbNewline & vbNewline


Tja :?

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 16:14
Op woensdag 10 april 2002 14:31 schreef voetenzalf het volgende:
Het verdient geen schoonheidsprijs en ik snap helemaal niet wat je precies hiermee wil doen maar...

...string & vbNewline & vbNewline & vbNewline & vbNewline


Tja :?
sorry, had idd wat beter uit moeten leggen ;)

maar het zit dus zo: Ik wil elke enter die ingevoerd wordt vervangen met een bepaald iets (|-|). Maar, als er dus 1 of teveel zijn werkt een ander programma niet meer wat daar op gebaseerd is: dus:

als er 1 enter is: moeten er 3 enters gesimuleerd worden
als er 2 enter is: moeten er 2 enters gesimuleerd worden
als er 3 enter is: moeten er 1 enters gesimuleerd worden
als er 4 enter is: moeten er 1 enters gesimuleerd worden

Heart..pumps blood.Has nothing to do with emotion! Bored


  • tomato
  • Registratie: November 1999
  • Niet online
TeeDee: als er 1 enter is: moeten er 3 enters gesimuleerd worden
als er 2 enter is: moeten er 2 enters gesimuleerd worden
als er 3 enter is: moeten er 1 enters gesimuleerd worden
als er 4 enter is: moeten er 1 enters gesimuleerd worden
Nou, dat lijkt me niet zo moeilijk toch? Pseudo code:
code:
1
2
3
4
enter_count = tel_aantal_enters_in_string()

for (i=0; i<(4-enter_count); i++)
   voeg_enter_toe()

Ik neem overigens aan dat je in je laatste zin een typefout maakte (1 moet 0 zijn).

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 16:14
Op woensdag 10 april 2002 14:42 schreef tomato het volgende:

[..]

Nou, dat lijkt me niet zo moeilijk toch? Pseudo code:
code:
1
2
3
4
enter_count = tel_aantal_enters_in_string()

for (i=0; i<(4-enter_count); i++)
   voeg_enter_toe()

Ik neem overigens aan dat je in je laatste zin een typefout maakte (1 moet 0 zijn).
thanks, alleen, ik vind het hartstikke top dat je me probeert te helpen, maar zou je misschien iets duidelijker kunnen zijn in je pseudo code. Ik bedoel, ik snap "for i" enzo wel, maar de rest niet helemaal...

Heart..pumps blood.Has nothing to do with emotion! Bored


  • tomato
  • Registratie: November 1999
  • Niet online
TeeDee:
Okay, zal ik uitleggen wat ik hier doe ;)

Tel het aantal enters in de string.

Kom tot de conclusie dat het aantal enters dat toegevoegd moet worden altijd dit is: (4 - aantal_enters_in_string)

In het geval van 3 enters in de string komt hier 1 uit, er moet er inderdaad 1 toegevoegd worden dus dat klopt.

Dan maak je een loopje dat precies dat aantal keer zal loopen (dus net zo veel keer als er enters toegevoegd moeten worden). Ik weet niet uit mijn hoofd hoe dat er in VB uit zal gaan zien (ik weet ook niet of je VB gebruikt?), maar het zal zoiets zijn:
code:
1
2
for (i=0; i<aantal_keer_loopen; i++)
   voeg_enter_toe()

Als je geen for-loopje kunt/wilt gebruiken zal het er met een while() zoiets uitzien:
code:
1
2
3
4
5
6
i = 0

while (i<aantal_keer_loopen) {
   voeg_enter_toe()
   i = i + 1
}

Ik hoop dat je het nu iets beter begrijpt?

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 16:14
Op woensdag 10 april 2002 14:55 schreef tomato het volgende:

[..]
yup, ik krijg nu nog wat enge dingen, maar ik denk dat ik er wel uitkom.. thanks

/edit:

ik kom er dus niet uit :'(
code:
1
2
3
4
5
6
7
8
9
oudadrescount = Split(rs_print("oudadres"), vbcrlf)
oudadrestemp = Ubound(oudadrescount)
Dim y, extraenter
for y = 0 to 4 - oudadrestemp
 y = y + 1
 extraenter = "|-|"
next
oudadres = Replace(rs_print ("oudadres"), vbcrlf, "|-|")
oudadres = oudadres & extraenter

doet niet veel.. maar ik ga er nog wel ff mee verder...

Heart..pumps blood.Has nothing to do with emotion! Bored


  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 16:14
hmm...

ik heb nu ietwat anders:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
tmpoudadres = Split(rs_print("oudadres"), vbcrlf)
laantal = Ubound (tmpoudadres)
if laantal = 3 then
oudadres = Replace(rs_print ("oudadres"), vbcrlf, "|-|")
oudadres = oudadres&"|-|"
else
 if laantal = 2 then
    oudadres = Replace(rs_print("oudadres"), vbcrlf, "|-|")
    oudadres = oudadres&"|-||-|"
    else
     if laantal = 1 then
        oudadres = Replace(rs_print("oudadres"), vbcrlf, "|-|")
        oudadres = oudadres&"|-||-||-|"
        else
         if laantal = 0 then
            oudadres = Replace(rs_print("oudadres"), vbcrlf, "|-|")
            oudadres = oudadres&"|-||-||-||-|"
         end if
     end if
  end if
end if

hij is misschien ranzig, maar hij werkt. Bijna feilloos. Kom er namelijk net achter, dat als een gebruiker _geen_ enter invoert, dus 1 regeltje zonder enter, dan kan ie niet splitten op vbcrlf

Ships, iemand hier een truukje voor?

Heart..pumps blood.Has nothing to do with emotion! Bored


  • tomato
  • Registratie: November 1999
  • Niet online
TeeDee in eerste code: extraenter = "|-|"
Ik zou hier van maken
code:
1
extraenter = extraenter & "|-|"

Of zoiets. Je overschrijft nu namelijk alleen steeds de waarde van deze variabele terwijl je er iets aan wilt toevoegen.
hij is misschien ranzig, maar hij werkt. Bijna feilloos. Kom er namelijk net achter, dat als een gebruiker _geen_ enter invoert, dus 1 regeltje zonder enter, dan kan ie niet splitten op vbcrlf

Ships, iemand hier een truukje voor?
Zoiets als
code:
1
2
3
4
5
if InStr(rs_print("oudadres"), vbCrlf)
   oudadrescount = Ubound(Split(rs_print("oudadres"), vbcrlf))
else
   oudadrescount = 0
end if

Overigens zou je die Ubound(Split()) ook kunnen schrijven met behulp van de InStr() functie, maar op deze manier moet het ook werken.

Ik zou je sterk afraden je laatste idee te gebruiken (al die if-statements in elkaar). Wanneer je nu 5 enters zou willen moet je heel je code aanpassen, wat bij het eerste idee niet het geval is.

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 16:14
je hebt gelijk. Ik heb nog eens een keer rustig naar optie 1 gekeken en die werkt nu. Bijna ;)

Ik merk ook dat het dus mogelijk is om niks in te vullen, dat moet ook kunnen, dus als ik nu nog zoiets erin bouw als:
code:
1
2
3
4
hiero dat instr verhaal
if rs_print("oudadres") = "" then
oudadres = "|-||-||-||-|"
end if

en dan ben ik er volgens mij.
Mijn dank is heeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeel groot ;)

Heart..pumps blood.Has nothing to do with emotion! Bored


  • Gert
  • Registratie: Juni 1999
  • Laatst online: 05-12-2025
code:
1
2
3
4
5
6
7
8
9
10
Set objRE = New RegExp
objRE.IgnoreCase = False
objRE.Global = True
objRE.Pattern = vbCrLf
Set Aantal = objRE.Execute( strText )
For i = 0 to 4 - Int( Aantal.Count )
  strText = strText & vbCrLf
Next
Set Aantal = Nothing
Set objRE = Nothing

Lijkt mij te doen wat je wilt.

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 16:14
Op woensdag 10 april 2002 18:41 schreef Gert het volgende:

Lijkt mij te doen wat je wilt.
Dies idd wat makkelijker, en hij werkt ook. Maar kan ie dan ook gelijk checken of er wel een vbcrlf inzit?

Want waar moet ik dus op checken:

- aantal enters
- of er uberhaupt wel een enter inzit
- of er wel iets in dat db veld staat.

Kan dat allemaal in diezelfde regex?

Heart..pumps blood.Has nothing to do with emotion! Bored


  • tomato
  • Registratie: November 1999
  • Niet online
TeeDee: Dies idd wat makkelijker, en hij werkt ook. Maar kan ie dan ook gelijk checken of er wel een vbcrlf inzit?

[..]

Kan dat allemaal in diezelfde regex?
Ja, dat gaat allemaal goed. Al vind ik het een beetje een botte methode om hiervoor een regular expression search te gebruiken, maar goed ;)

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 16:14
phew... hij werkt nu helemaal...

thanks all!!!

Heart..pumps blood.Has nothing to do with emotion! Bored

Pagina: 1