Avatar billede jobb Nybegynder
01. august 2003 - 02:16 Der er 12 kommentarer og
1 løsning

Læs data fra log fil

http://www.bigk.dk/Interval.html
http://www.bigk.dk/Interval.txt

jeg har et program der uploader 2 log filer med forskællig data i.
hvordan henter jeg diverse data ud fra de forskællige filer
så jeg kan samle dem i en database til senere brug
Avatar billede squashguy Nybegynder
01. august 2003 - 02:38 #1
det kunne f.eks. gøres således:

du indlæser en linie ad gangen (fra .txtfilen), og splitter den op som følger:

<%
str = "| 02-08-2002    | 01:27:47      | 2088 MHz | 44° C      | 53° C      | 47° C      | 1,65 V    | 4,08 V    | 3,20 V    | 5,08 V    | 11,55 V    | -12,44 V  | -5,04 V    | 2136 RPM  | 0 RPM      | 30681 RPM  |"

a = split(str, "|")

response.write "dato: " & a(1) & "<br>"
response.write "tid: " & a(2) & "<br>"
response.write "mhz: " & a(3) & "<br>"
response.write "cpu: " & a(4) & "<br>"
response.write "absii: " & a(5) & "<br>"
response.write "kabinet: " & a(6) & "<br>"
response.write "core 0: " & a(7) & "<br>"
response.write "core 1: " & a(8) & "<br>"
response.write "core 2: " & a(9) & "<br>"

' etc...
%>
Avatar billede jobb Nybegynder
01. august 2003 - 11:28 #2
jeg kan ikke få den til det hvis jeg hiver den fra filen

Set fso = CreateObject("Scripting.FileSystemObject")
filespec = Server.Mappath("Interval.txt")
Set f = fso.OpenTextFile(filespec,1)

' Læs linie for linie indtil slutningen af filen
Do While not f.AtEndOfStream
  streng = streng & f.ReadLine

a = split(streng,"streng")

response.write "dato: " & a(1) & "<br>"
response.write "tid: " & a(2) & "<br>"
response.write "mhz: " & a(3) & "<br>"
response.write "cpu: " & a(4) & "<br>"
response.write "absii: " & a(5) & "<br>"
response.write "kabinet: " & a(6) & "<br>"
response.write "core 0: " & a(7) & "<br>"
response.write "core 1: " & a(8) & "<br>"
response.write "core 2: " & a(9) & "<br>"

Loop

f.Close
Avatar billede jobb Nybegynder
01. august 2003 - 11:29 #3
jeg har rettet denne linie
a = split(streng,"|")
Avatar billede jobb Nybegynder
01. august 2003 - 11:30 #4
den skriver
Microsoft VBScript runtime error '800a0009'

Subscript out of range: '[number: 1]'

/logfil.asp, line 12
Avatar billede squashguy Nybegynder
01. august 2003 - 12:45 #5
du skal nok lige huske at springe de 3 første linier over...

hvorfor bruger du "streng" som splitter?
Avatar billede squashguy Nybegynder
01. august 2003 - 12:46 #6
og jeg ville nok bruge

streng = f.ReadLine
Avatar billede steinmann Nybegynder
01. august 2003 - 13:09 #7
Her er nogle funktoner jge har lavet til mit cmssystem, derfor hedder de cms i starten :)
'-----------------------------------------------------------------------
dim AppPath 'Her er vi...
dim Filesys 'FSO-Objektet
dim SystemFile 'Den fil det drejer sig om
dim SystemFolder 'Den folder det drejer sig om

dim FromFile 'Det siger vist sig selv

AppPath = Request.ServerVariables("APPL_PHYSICAL_PATH")

'----------------------------------------------------------------------

function cmsReadLine(fFilename, fLineNum)
  set Filesys = CreateObject("Scripting.FileSystemObject")
  'Åbne for at læse
  set SystemFile = Filesys.OpenTextFile(AppPath & fFilename, 1, false) 
  i = 0
  'Spring linier over
  do while i <> int(fLineNum)
  SystemFile.SkipLine
  i = i +1
  loop
  'Hvis den ikke er ved enden, så returnér linien
  if not SystemFile.AtEndOfStream then
  cmsReadLine = SystemFile.ReadLine
  end if
end function

'----------------------------------------------------------------------

function cmsReadAll(fFilename)
  set Filesys = CreateObject("Scripting.FileSystemObject")
  'Åbne for at læse
  set SystemFile = Filesys.OpenTextFile(AppPath & fFilename, 1, false) 
  'Hvis den ikke er ved enden, så returnér linien
  if not SystemFile.AtEndOfStream then
  cmsReadAll = SystemFile.ReadAll
  end if
end function
'-----------------------------------------------------------

Så er det bare at kalde filen relativt fra der hvor du er... :)

Casper
Avatar billede jobb Nybegynder
01. august 2003 - 23:45 #8
ok jeg kan godt læse filen men jeg kan ikke skille dataerne fra henanden
Avatar billede jobb Nybegynder
01. august 2003 - 23:53 #9
jeg forståe ikke helt hvad det er der sker i dine functioner
Avatar billede steinmann Nybegynder
02. august 2003 - 00:02 #10
Funktionerne åbner bare filerne og læser fra dem... Den første "cmsReadLine(fFilename, fLineNum)" læser linien fLineNum... den anden returnerer hele filen...

Når du skal behandle dine data, så skal du gøre som squashguy... bruge split...

Casper
Avatar billede jobb Nybegynder
03. august 2003 - 17:13 #11
ok nu har jeg fået det hele til at virke tak for hjælpen. :)
Avatar billede jobb Nybegynder
03. august 2003 - 17:13 #12
Lukker.
Avatar billede jobb Nybegynder
03. august 2003 - 17:15 #13
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