Avatar billede celal Nybegynder
13. april 2005 - 12:32 Der er 7 kommentarer og
2 løsninger

Udklip del af tekst

Jeg har en streng med med en masse data i csv format, og skal bruge alle emails i strengen.

Her er et eksempel af strengen:

"4","Jørgen Hansen","Ingeniør","Sødalen 265","2820","Gentofte","Firma A","3976 0000","4032 0000","3976 0000","email@email.dk","8.30 - 20.00","J","J","www.webside.dk","True"
"6","Frede Jensen","Ingeniør","Dyreborgvej 444","5600","Faaborg","Firma B","6261 8655","4019 2170","6261 7655","email@email.dk","9.00 - 16.30","J","J","","True"

jeg skal have fat i alle email adreserne, som ligger i strengen. Der er over 1000 bruger med emailadresee.

Nogen som har en ide om hvordan jeg med ASP script kan hive emails ud af strengen (emailsne bliver lagt ned i en database når de findes)?

PS: ikke nogen manuel løsning, skal være på script
Avatar billede jpvj Nybegynder
13. april 2005 - 12:36 #1
Nedenstående løsning antager at alle strenge, der indeholder et @ er en mail adr.
Udvid evt. til at teste om strengen er mindst 6 karakterer lang (n@n.nn) osv.

Strng = Din csv streng.
Dim arr, i
arr = Split(strng)
for i=LBound(arr) To Ubound(arr)
  if inStr(arr(i), "@") then
    // gem arr(i) som en e-mail
    // husk evt. at validere om formatet ser fornuftigt ud...
  end if
next
Avatar billede jpvj Nybegynder
13. april 2005 - 12:37 #2
PS: Du skal nok også strippe de 2 anførselstegn (start og slut) før du gemmer mail adressen...
Avatar billede celal Nybegynder
13. april 2005 - 13:46 #3
hmmm, det ser lidt underligt ud. Jeg får følgende ud:

4","Jørgen Hansen","Ingeniør","Sødalen 265","2820","Gentofte","Firma A","3976 0000","4032 0000","3976 0000","email@email.dk","8.30

"6","Frede Jensen","Ingeniør","Dyreborgvej 444","5600","Faaborg","Firma B","6261 8655","4019 2170","6261 7655","email@email.dk","9.00
Avatar billede celal Nybegynder
13. april 2005 - 13:52 #4
Sorry, det var den forkerte jeg smed ind. Det ser således ud:

0351","email@email.dk","8.30
7655","email@email.dk","9.00


Hvad går galt?
Avatar billede celal Nybegynder
13. april 2005 - 14:02 #5
Den skiller ikke ved " men ved mellemrum, hvordan kan jeg trimme arr(i) så den kun indeholder email adressen?
Avatar billede celal Nybegynder
13. april 2005 - 15:02 #6
Okay, har fundet ud af det:

Dim arr, i
arr = Split(strng, ",")
for i=LBound(arr) To Ubound(arr)
  if inStr(arr(i), "@") then
 
  Response.Write(arr(i) & "<Br>")
    'gem arr(i) som en e-mail 
  'husk evt. at validere om formatet ser fornuftigt ud...
  end if
next


Det var Split(strng, ",") som skulle ændres.
Nu får jeg mine emails, men nu skal jeg have trimmet " væk, hvordan gøre jeg det? .Det således ud nu:

"email@email.dk"
"email@email.dk"
Avatar billede celal Nybegynder
13. april 2005 - 15:20 #7
Okay, har også selv fundet ud af at jeg bare kan bruge: Replace(arr(i),chr(34), "").

Til dem som får brug for det, så ser koden således ud nu:

Dim arr, i
arr = Split(strng, ",")
for i=LBound(arr) To Ubound(arr)
  if inStr(arr(i), "@") then

    strSQL = "Insert into CSV_BS(email) values('" & Replace(arr(i),chr(34), "") & "')"
    cn.Execute(strSQL)

    'Response.Write(Replace(arr(i),chr(34), "") & "<Br>")
    'gem arr(i) som en e-mail
    'husk evt. at validere om formatet ser fornuftigt ud...
  end if
next
Avatar billede celal Nybegynder
13. april 2005 - 15:21 #8
Tak for hjælpen...
Avatar billede jpvj Nybegynder
13. april 2005 - 16:04 #9
Sorry for det med split - det var en smutter.
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