Avatar billede krogstrup Nybegynder
05. januar 2001 - 16:49 Der er 6 kommentarer og
2 løsninger

Teoretisk spm ang. tekst fra database

Jeg har et textarea hvori jeg indtaster følgende:

A Bb  Gb  Gm7
S Tra la la, she loves me
A H7  Am  G#
S Uh yeah baby, she loves me

Denne tekst bliver efterfølgende smidt ned i en database.

Nu henter jeg teksten frem igen fra min database, men ønsker kun at vise linierne der starter med \"S\". Jeg har altså brug for en funktion, der kan læse indholdet af min variabel igennem og fjerne alle linier der starter med \"S\".

Kan det lade sig gøre?
Er det kompliceret/enkelt?
Avatar billede krogstrup Nybegynder
05. januar 2001 - 16:50 #1
Der skulle selvfølgelig stå:

....fjerne alle linier der starter med \"A\"
Avatar billede lange Nybegynder
05. januar 2001 - 16:55 #2
Ja, det er rimeligt let. Først vil jeg anbefale, at du bruger split-kommandoen til at lave et array med de enkelte linier i. Derefter løber du linierne igennem i arrayet, checker om linien begynder med S, og viser den, hvis den gør.
Avatar billede lange Nybegynder
05. januar 2001 - 16:58 #3
Lidt kode, der nok gør omtrent det, du vil have:

strText = RS(\"Tekst_fra_databasen\")

arrText = split(strText,VbNewline) \' **** Split arrayet ved linieskift

\' **** Løb arrayet igennem
intCounter = 0

while intCounter<UBound(arrText)
  strLine = arrText(intCounter)

  \' **** Check om linien starter med S
  if Left(strLine,1) = \"S\" then
    Response.write strLine & \"<BR>\"
  end if

  intCounter = intCounter + 1
Wend
Avatar billede netsrac Praktikant
06. januar 2001 - 00:49 #4
Der findes jo også nemmere måder at løbe et sådant array igennem:

strtext = rs(\"text\")
arrtext = split(strtext, VBNewline)

for each item in arrtext
if left(item,1) = \"S\" then
response.write item
end if
next
Avatar billede lange Nybegynder
06. januar 2001 - 01:04 #5
Doh, ja selvfølgeligt. Og så er det endda en del nemmere at læse :)
Avatar billede netsrac Praktikant
06. januar 2001 - 01:24 #6
Det er jo lige det :-)
Avatar billede krogstrup Nybegynder
06. januar 2001 - 15:27 #7
Jeg takker for svarene :-)

Her er det færdige resultat:

<% Function cleanString(line)
    lineLength = len(line)
    lineLength = lineLength - 2
    cleanString = right(line,lineLength)
End Function %>

<% Function formatSong(sang,mode)
    arrtext = split(sang, VBNewline)
    formatSong = \"\"
    for each item in arrtext
        if left(item,1) = \"S\" then
            formatSong = formatSong & cleanString(item) & vbcrlf
        end if
        if mode = \"med\" then
            if left(item,1) = \"A\" then
                formatSong = formatSong & cleanString(item) & vbcrlf
            end if
        end if
        if item = \"\" then
            formatSong = formatSong & vbcrlf
        end if
    next
End Function %>
Avatar billede netsrac Praktikant
06. januar 2001 - 15:30 #8
np :-)
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
Kurser inden for grundlæggende programmering

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