Avatar billede rossoneris Nybegynder
27. januar 2005 - 09:03 Der er 12 kommentarer og
1 løsning

Import af filer

Hvis man nu har f.eks. 2000 filer, hvor jeg ønsker indholdet af hver enkel fil lagt over i en ny fil

Hver enkel fil indeholder kun en enkel linie(komma separeret),

Er det på en eller anden måde muligt ?
Avatar billede killerclown Nybegynder
27. januar 2005 - 10:27 #1
HEY !
Er det noget i denne stil, du leder efter ?
Den kigger i c:\tekst i alle filer, tager indholdet og smider det i c:\output.txt

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set shell = WScript.CreateObject("wscript.shell")
Const ForAppending = 8
Const ForReading = 1
set dir = objFSO.GetFolder("c:\tekst\")
For Each file In dir.files
filnavn = file.name
Set objTextFile = objFSO.OpenTextFile ("c:\tekst\" & filnavn, ForReading)
Do Until objTextFile.AtEndOfStream
strNextLine = objTextFile.Readline
stroutput = stroutput & strnextline & VbCrLf
Loop
Next

Const file1 = "c:\output.txt"
Set fi = objfso.OpenTextFile(file1, ForAppending, true)
fi.WriteLine (stroutput)
MsgBox stroutput

/Killer
Avatar billede rossoneris Nybegynder
27. januar 2005 - 11:21 #2
Det er simpelthen glimragende .. hvordan man fatter at lave ovenstående er ubegribelig. Men hvis man kan finde ud af det er alt jo let... :)
Avatar billede maximus25 Nybegynder
27. januar 2005 - 11:29 #3
Ja det er utroligt hvad Killerclown kan.....man kan jo ikke andet end at se op til ham:):)
Avatar billede killerclown Nybegynder
27. januar 2005 - 11:30 #4
Så får du da lige et svar :o)
/Killer
Avatar billede killerclown Nybegynder
27. januar 2005 - 12:40 #5
Tak for rosen, men der er altså ikke nogen, der er så klog og god som Maximus25 :p

/Killer
Avatar billede rossoneris Nybegynder
31. januar 2005 - 11:15 #6
Har lige et tillægs spørgsmål. Er det muligt at "scripte" sig til at en output fil bliver sendt som en email adresse 1 gang i ugen fx?
Avatar billede killerclown Nybegynder
31. januar 2005 - 11:25 #7
Jep, men til det skal du bruge en SMTP connector af en eller anden art.
Jeg har haft ret gode erfaringer med ANSMTP :
http://www.emailarchitect.net/webapp/smtpcom/

/Killer
Avatar billede rossoneris Nybegynder
31. januar 2005 - 11:46 #8
Ok - nu har jeg downloaded en trail version af programmet - og nu sidder jeg jo så her og tænker .. "hmm .. hva ska jeg nu"

Er det noget langhåret noget, hvor man skal have kendskab til programmering eller er der kun et trin eller to?
Avatar billede killerclown Nybegynder
31. januar 2005 - 12:36 #9
Nope, det er ikke så slemt.
En mailfunktion kunne se således ud :

Dim oSmtp
Set oSmtp = CreateObject("ANSMTP.OBJ")

Sub Send( From, Recipient, Subject, Body, Server )
  NORMAL_RECIPIENT = 0
  COPY_RECIPIENT = 1
  BLIND_COPY_RECIPIENT = 2

  TEXT_PLAIN = 0
  TEXT_HTML = 1   

  oSmtp.RegisterKey = "Your license key"
  oSmtp.Reset
  oSmtp.FromAddr = From
  oSmtp.Subject = Subject
  oSmtp.BodyFormat = TEXT_PLAIN
  oSmtp.BodyText = Body
  oSmtp.ServerAddr = Server

  oSmtp.AddRecipient Recipient, Recipient, NORMAL_RECIPIENT
 

  oSmtp.AddAttachment "c:\output.txt"

  If oSmtp.SendMail() = 0 Then
 
  Else

  End If
End Sub
Send "afsender@afsender.dk" , "modtager@modtager.dk" , strsubject , strbody , "<din smtp server>"
Avatar billede rossoneris Nybegynder
31. januar 2005 - 14:47 #10
Ok - har sku ik lige fået det til at virke. Har bare "pastet" ovenstående og tilrettet afsender, modtaget og smtp server og så gemt filen i .vbs format.
Avatar billede killerclown Nybegynder
31. januar 2005 - 14:57 #11
Du skal huske, at lade din SMTP server relaye/acceptere connections fra maskinen, der skal sende mailen.
Du kan teste om, den er ok med dette script :

Dim oSmtp
set oSmtp = CreateObject("ANSMTP.OBJ")

Sub Send( From, Recipient, Subject, Body, Server )
  NORMAL_RECIPIENT = 0
  COPY_RECIPIENT = 1
  BLIND_COPY_RECIPIENT = 2

  TEXT_PLAIN = 0
  TEXT_HTML = 1   

  oSmtp.RegisterKey = "Your license key"
  oSmtp.Reset
  oSmtp.FromAddr = From
  oSmtp.Subject = Subject
  oSmtp.BodyFormat = TEXT_PLAIN
  oSmtp.BodyText = Body
  oSmtp.ServerAddr = Server

  oSmtp.AddRecipient Recipient, Recipient, NORMAL_RECIPIENT
 
  ' | add cc recipient
  ' | oSmtp.AddRecipient "test", "test@hotmail.com", COPY_RECIPIENT
   
  ' | add bcc recipient
  ' | oSmtp.AddRecipient "test", "test@hotmail.com", BLIND_COPY_RECIPIENT

  ' | ESMTP authentication
  ' | oSmtp.UserName = "your user name"
  ' | oSmtp.Password = "your password"
   
  ' | -- add file attachment -- |
  oSmtp.AddAttachment "c:\sqlexp.csv"

  If oSmtp.SendMail() = 0 Then
    WScript.Echo "Sending email to " & Recipient & " succeeded!"
  Else
    WScript.Echo oSmtp.GetLastErrDescription()
  End If
End Sub

send "afsender@afsender.dk" , "modtager@modtager.dk" , "subject" , "Body" , "smtpserver"

/Killer
Avatar billede rossoneris Nybegynder
31. januar 2005 - 15:05 #12
Ja ok - jeg har ikke lige mulighed for at konfigurerer noget på SMTP serveren, da jeg ikke har "ansvar" for den.

- ellers må jeg igang med at installerer en lokal smtp server . hvis der ellers er noget info omkring dette er sted.


Men tak for hjælpen da!!
Avatar billede killerclown Nybegynder
31. januar 2005 - 15:12 #13
velbekomme :)
Ellers kan du jo bruge SMTP'en der er tilknyttet jeres Internetudbyder, hvis du kan passere jeres firewall på port 25.

/Killer
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