Page 1 of 1

Hulp nodig met een script

Posted: Sat Dec 12, 2015 1:02 pm
by Karell
Beste mensen , ik had een script dat eerst werkte met hs3 .
dit script las mijn geexporteerde csv en kon hem openen via een asp pagina , hij werkt nu wel maar leest maar de laatste entry van mijn csv file...
wat heb ik fout gedaan ?

Bedankt alvast voor de hulp.

De csv ziet er zo uit :

value1,value2,value3,value3,value4,value5,value6
value1,value2,value3,value3,value4,value5,value6

het hoort er zo uit te zien (ps dit is een screenshot van een oud voorbeeld)
Image

hier is de script :

Code: Select all

<%Option Explicit%>
<html>
<head>
<title>Car tracker</title>
</head>
<body>
<%
Dim objFSO,oInStream,sRows,arrRows,sLine
Dim sFileName
Const ForReading = 1

sFileName = "C:\Program Files (x86)\HomeSeer HS3\html\myasp\customer.csv"  

'*** Create Object ***'
Set objFSO = CreateObject("Scripting.FileSystemObject") 

'*** Check Exist Files ***'
If Not objFSO.FileExists(Server.MapPath(sFileName)) Then
	Response.write("File not found.")
Else

'*** Open Files ***'
Set oInStream = objFSO.OpenTextFile(Server.MapPath(sFileName),1,False)
END IF
%>
<table width="1200" border="1">
  <tr>
    <th width="91"> <div align="center">Device ID </div></th>
    <th width="98"> <div align="center">Location </div></th>
    <th width="198"> <div align="center">DIstance in KM </div></th>
    <th width="97"> <div align="center">CountryCode </div></th>
    <th width="99"> <div align="center">Time </div></th>
    <th width="99"> <div align="center">Extra </div></th>
  </tr>
<%

Do Until oInStream.AtEndOfStream 
sRows = oInStream.readLine
arrRows = Split(sRows,",")
Loop
%>
  <tr>
    <td><div align="center"><%=arrRows(0)%><br></div></td>
    <td><div align="center"><%=arrRows(1)%></td>
    <td><div align="center"><%=arrRows(2)%></td>
    <td><div align="center"><%=arrRows(3)%></div></td>
    <td><div align="center"><%=arrRows(4)%></div></td>
    <td><div align="center"><%=arrRows(5)%></div></td>
  </tr>
<%

oInStream.Close()
Set oInStream = Nothing 
set objFSO=Nothing
%>
</table>
</body>
</html>


Re: Hulp nodig met een script

Posted: Sat Dec 12, 2015 2:18 pm
by AshaiRey
Aangepaste versie met commentaar (geen kritiek dus) :D
Je mag het zelf opschonen

Code: Select all

<%Option Explicit%>
<html>
<head>
<title>Car tracker</title>
</head>
<body>
<%
Dim objFSO,oInStream,sRows,arrRows,sLine
Dim sFileName
Const ForReading = 1

sFileName = "C:\Program Files (x86)\HomeSeer HS3\html\myasp\customer.csv"  

'*** Create Object ***'
Set objFSO = CreateObject("Scripting.FileSystemObject") 

'*** Check Exist Files ***'
'Probeer lastig te lezen constructies te vermijden
'Ik heb NOT verwijderd en de 2 condities omgedraaid
If objFSO.FileExists(Server.MapPath(sFileName)) Then
   '*** Open Files ***'
'Voorkom het gebruik van Magic nummers! Wat is die 1??
'Je heb niet voor niets een constante gemaakt aan het begin -> ForReading 
   'Set oInStream = objFSO.OpenTextFile(Server.MapPath(sFileName),1,False)
   Set oInStream = objFSO.OpenTextFile(Server.MapPath(sFileName),ForReading,False)
Else
   Response.write("File not found.")
'Wat moet er gebeuren als er geen bestand wordt gevonden?
END IF
%>
<table width="1200" border="1">
  <tr>
    <th width="91"> <div align="center">Device ID </div></th>
    <th width="98"> <div align="center">Location </div></th>
    <th width="198"> <div align="center">DIstance in KM </div></th>
    <th width="97"> <div align="center">CountryCode </div></th>
    <th width="99"> <div align="center">Time </div></th>
    <th width="99"> <div align="center">Extra </div></th>
  </tr>
<%

'Dit leest alles in een array
'3 regels inlezen zijn dus 18 elementen in de array
'Verderop toon je alleen de eerste 6 elementen

'Do Until oInStream.AtEndOfStream 
'sRows = oInStream.readLine
'arrRows = Split(sRows,",")
'Loop
'%>
'  <tr>
'    <td><div align="center"><%=arrRows(0)%><br></div></td>
'    <td><div align="center"><%=arrRows(1)%></td>
'    <td><div align="center"><%=arrRows(2)%></td>
'    <td><div align="center"><%=arrRows(3)%></div></td>
'    <td><div align="center"><%=arrRows(4)%></div></td>
'    <td><div align="center"><%=arrRows(5)%></div></td>
'  </tr>
'<%

'Verander de volgorde naar onderstaand


<tr>
<%
Do Until oInStream.AtEndOfStream 
sRows = oInStream.readLine
arrRows = Split(sRows,",")
%>
    <td><div align="center"><%=arrRows(0)%><br></div></td>
    <td><div align="center"><%=arrRows(1)%></td>
    <td><div align="center"><%=arrRows(2)%></td>
    <td><div align="center"><%=arrRows(3)%></div></td>
    <td><div align="center"><%=arrRows(4)%></div></td>
    <td><div align="center"><%=arrRows(5)%></div></td>
<%
Loop
%>

</tr>

'Vanaf hier is het ongewijzigd
<%
oInStream.Close()
Set oInStream = Nothing 
set objFSO=Nothing
%>
</table>
</body>
</html>


Re: Hulp nodig met een script

Posted: Sat Dec 12, 2015 3:16 pm
by Karell
Hallo bram , dankjewel voor je tijd !!!

ik heb de code nagekeken nu , en veranderd wat je zei maar hij laat nu 1 fout achter na het wijzigen , als ik die loop terug zet waar die stond laat hij maar 1 van de 4 rijen zien
als ik hem zet zoals je beschreven hebt krijg ik deze melding .


Script error: Expected 'Loop'


Do Until oInStream.AtEndOfStream
sRows = oInStream.readLine
arrRows = Split(sRows,",")

Re: Hulp nodig met een script

Posted: Sun Dec 13, 2015 1:03 pm
by AshaiRey
Ik heb hem aangepast maar kan hem hier niet testen.
Ps, volgens mij was je ook nog 2x een </div> vergeten en die heb ik erbij gezet.
Probeer dit maar

Code: Select all

<head>
<title>Car tracker</title>
</head>
<body>
<%
Dim objFSO,oInStream,sRows,arrRows,sLine
Dim sFileName
Const ForReading = 1

sFileName = "C:\Program Files (x86)\HomeSeer HS3\html\myasp\customer.csv"  

'*** Create Object ***'
Set objFSO = CreateObject("Scripting.FileSystemObject") 

'*** Check Exist Files ***'
If objFSO.FileExists(Server.MapPath(sFileName)) Then
   '*** Open Files ***'
   Set oInStream = objFSO.OpenTextFile(Server.MapPath(sFileName),ForReading,False)
Else
   Response.write("File not found.")
END IF
%>

<table width="1200" border="1">
  <tr>
    <th width="91"> <div align="center">Device ID </div></th>
    <th width="98"> <div align="center">Location </div></th>
    <th width="198"> <div align="center">DIstance in KM </div></th>
    <th width="97"> <div align="center">CountryCode </div></th>
    <th width="99"> <div align="center">Time </div></th>
    <th width="99"> <div align="center">Extra </div></th>
  </tr>
<%

<tr>

<%
Do Until oInStream.AtEndOfStream 
sRows = oInStream.readLine
arrRows = Split(sRows,",")
  'Ik heb het uitgeschreven om het leesbaarder te houden voor je
  strText = "<td><div align='center'>" + arrRows(0) + "<br></div></td>")
  Response.write(strText)
  strText = "<td><div align='center'>" + arrRows(1) + "</div></td>")
  Response.write(strText)
  strText = "<td><div align='center'>" + arrRows(2) + "</div></td>")
  Response.write(strText)
  strText = "<td><div align='center'>" + arrRows(3) + "</div></td>")
  Response.write(strText)
  strText = "<td><div align='center'>" + arrRows(4) + "</div></td>")
  Response.write(strText)
  strText = "<td><div align='center'>" + arrRows(5) + "</div></td>")
  Response.write(strText)
Loop

Response.write("</tr>")

oInStream.Close()
Set oInStream = Nothing 
set objFSO=Nothing
%>
</table>
</body>
</html>


Re: Hulp nodig met een script

Posted: Sun Dec 13, 2015 2:23 pm
by Karell
hoi bram dankjewel alweer voor je tijd :D

ik heb hem geprobeerd maar krijg deze melding zie screenshot


bedankt alvast ,

Re: Hulp nodig met een script

Posted: Mon Dec 14, 2015 10:06 am
by AshaiRey
Probeer je zelf ook gelijk wat te leren door te proberen?
Ik moet het uit mijn hoofd doen want geen HS3 hier.

Haal bij alle regels die beginnen met strText= de ) aan het einde weg. Die is teveel en achtergebleven bij het kopieren. :x

Re: Hulp nodig met een script

Posted: Mon Dec 14, 2015 10:19 am
by Karell
Hallo bram ,
het is me al gelukt , en jou beschrijving heeft gehoplen .
dankjewel voor de spoedcursus :D

ik ben alles vanmorgen nog een keer nagelopen en ik had wat veranderd.

de Response.write("</tr>") stond onder loop , ik heb hem erboven gezet en werkt :D

voor dit script heb je geen hs3 nodig , alleen een script wat uitschrijft naar csv via hs2 of hs3.

je kunt er best veel mee , ik gebruik deze voor de km bij te houden


groetjes en bedankt!