[ASP] analoog aan OpenTextFile een http://file aanroepen

Pagina: 1
Acties:

  • damen
  • Registratie: Maart 2003
  • Laatst online: 28-11-2006
Hai,

Ik heb een klein probleempje, we hebben hier een paar scripts die van de ene naar de andere server worden verplaatst. Een van de scripts parsed een lokale tekstfile op server A en maakt er een mooi gelayoute html-page van. Nu wordt die lokale file op server A automatisch door een ERP systeem gegenereerd, en deze kunnen we niet ergens anders plaatsen.

Het script dat deze file parsde stond lokaal op server A en wordt nu verplaatst naar server B, waardoor ik de file nu via http://intranet.server.blabla/file.txt aanroepen wil.

Op server A werkt deze code goed, want er wordt een lokale file aangeroepen
ASP:
15
16
17
18
19
20
set f = fs.OpenTextFile(server.mappath("whatsnew_de.txt"), ForReading)
if err.number > 0 then
    response.write ("<p class=""warning"">" & err.description & "</p>")
    response.end
end if
on error goto 0


Nu zoek ik hier een equivalent van die http://blabla.intranet.nl/whatsnew_de.txt aanroepen kan, wie oh wie kan me hier verder mee helpen, de standaard ASP boeken en tuturials gaan op zoiets helaas niet in :P

Alvast bedankt voor de hulp _/-\o_

Martijn Damen

Diplomacy is the ability to tell a person to go to hell in such a way, that he looks forward to the trip<br>Gentoo 1.4 - Gnome 2.3.3 @ Athlon 800, 256Mb, 80Gb


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • damen
  • Registratie: Maart 2003
  • Laatst online: 28-11-2006
Hmm, dat helpt al redelijk, maar toch gaat het niet helemaal goed:
De text file ziet er zo uit:

# comment
# comment
# comment

!!!! new entry to be parsed

En het lijkt erop dat hij met de readline niet helemaal goed loopt

Microsoft VBScript runtime error '800a01a8'
Object required: '# Neuigkeiten Datei '

/whatsnew.asp, line 41


ASP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
<%option explicit%>
<%dim prepath : prepath = "./"

const ForReading = 1
const ForWriting = 2
const ForAppending = 8

const seperator = "!!!"
const commentsign = "#"

dim f, mdate, message, line
dim lastupdate
Dim objXmlHttp
Dim strHTML
Set objXmlHttp = Server.CreateObject("Msxml2.ServerXMLHTTP")
objXmlHttp.open "GET", "http://server.blabla.bla/temp.txt", False
objXmlHttp.send
f = objXmlHttp.responseText
Set objXmlHttp = Nothing

%>
<style>
    ul {
        margin-top: 0
    }
    p {
        margin-bottom: 0
    }
</style>
<h1>Aktuelle Informationen</h1>
<br>
<table cellspacing=0 border=0 class="visible" style="font-size: 12px;">
    <thead><tr>
        <td width=80><%="Datum"%></td>
        <td><%="Meldung"%></td>
    </tr></thead>
<%

lastupdate = ""

do until f.AtEndOfStream
    line = f.ReadLine & vbCrLf
    if left(line, 1) <> commentsign then
        if left(line, len(seperator)) = seperator then
            'Print what we got up to now
            response.write ("<tr><td valign=top style=""border-bottom: solid #900 1px""><b>" & mdate & "</b></td><td valign=top style=""border-bottom: solid #900 1px"">" & message & "</td></tr>")
            'Start next row
            mdate = right(line, len(line)-3)
            message = ""
            if lastupdate = "" then
                lastupdate = mdate
            end if
        else
            message = message & line & "<br>"
        end if
    end if
loop
response.write ("<tr><td valign=top><b>" & mdate & "</b></td><td valign=top>" & message & "</td></tr>")

f.close
set f = nothing
set fs = nothing
response.write ("</table>")

do while not template.atendofstream
    line = template.readline
    response.write line & vbcrlf
loop

%>

Diplomacy is the ability to tell a person to go to hell in such a way, that he looks forward to the trip<br>Gentoo 1.4 - Gnome 2.3.3 @ Athlon 800, 256Mb, 80Gb


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Kijk eens wat er in f zit, voor regel 41

[ Voor 25% gewijzigd door gorgi_19 op 12-06-2003 11:12 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • damen
  • Registratie: Maart 2003
  • Laatst online: 28-11-2006
Daar zit de file in, dus tot daar gaat het wel goed

response.write f geeft

# Neuigkeiten Datei # # Jeder Abschnitt beginnt mit !!! # !!!10.06.2003 08:25 Uhr Volumenauswertung Die Volumendaten aus der B.O.S.-Abrechnung vom Wochenende stehen ordnungsgem?im IBW zur Verf? !!!02.06.2003 08:00 Uhr Volumenauswertung Die Volumendaten aus der B.O.S.-Abrechnung vom Wochenende (Monatsabschlu?Mai) stehen ordnungsgem?im IBW zur Verf? !!!26.05.2003 08:00 Uhr Volumenauswertung Die Volumendaten aus der B.O.S.-Abrechnung vom Wochenende stehen ordnungsgem?im IBW zur Verf?

Diplomacy is the ability to tell a person to go to hell in such a way, that he looks forward to the trip<br>Gentoo 1.4 - Gnome 2.3.3 @ Athlon 800, 256Mb, 80Gb


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

En da's dus geen object waar AtEndOfStream eenmethod van is.

Ik gok splitsen op VbCrLf; deze returned een array. Vervolgens ga je ieder item aflopen, wat overeenkomt met een regel.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • DeverauX
  • Registratie: Februari 2002
  • Niet online

DeverauX

Focus is everything

.EndOfStream is een methode van het TextStream-object en dit object vindt ik niet terug in je code, dus wellicht dat dat het probleem is.

ASP:
1
2
3
4
5
6
7
8
9
10
Set fs=Server.CreateObject("Scripting.FileSystemObject")
Set f=fs.OpenTextFile(Server.MapPath("bestand.txt"))

do until f.AtEndOfStream
'code
loop

f.Close
Set f=Nothing
Set fs=Nothing

...whatever was distasteful or unpleasant or uncomfortable or painful - music could always soothe that.
All you have to do is reach out to beauty.
Quincy Jones


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

DeverauX schreef op 12 June 2003 @ 11:35:
.EndOfStream is een methode van het TextStream-object en dit object vindt ik niet terug in je code, dus wellicht dat dat het probleem is.

ASP:
1
2
3
4
5
6
7
8
9
10
Set fs=Server.CreateObject("Scripting.FileSystemObject")
Set f=fs.OpenTextFile(Server.MapPath("bestand.txt"))

do until f.AtEndOfStream
'code
loop

f.Close
Set f=Nothing
Set fs=Nothing
Volgens mij heb je de kern van het verhaal gemist.. ;) FSO werkt afaik niet voor een bestand over internet, dus hij moet het object juist niet gebruiken.. ;)

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • DeverauX
  • Registratie: Februari 2002
  • Niet online

DeverauX

Focus is everything

Volgens mij heb je de kern van het verhaal gemist.. FSO werkt afaik niet voor een bestand over internet, dus hij moet het object juist niet gebruiken..
Klopt, de kern van het verhaal is me echter niet ontgaan. Waar het mij alleen om gaat is dat als er geen gebruik wordt gemaakt van het object, er ook geen gebruik kan worden gemaakt van de methoden van dit object :)

...whatever was distasteful or unpleasant or uncomfortable or painful - music could always soothe that.
All you have to do is reach out to beauty.
Quincy Jones


  • damen
  • Registratie: Maart 2003
  • Laatst online: 28-11-2006
Is het dan mogelijk om die tekst op een andere manier te doorploegen, of om het in een textobject om te zetten?

Ik moet toegeven dat ik op ASP gebied een n00b ben... meer uit de php hoek

;-)

Diplomacy is the ability to tell a person to go to hell in such a way, that he looks forward to the trip<br>Gentoo 1.4 - Gnome 2.3.3 @ Athlon 800, 256Mb, 80Gb


  • DeverauX
  • Registratie: Februari 2002
  • Niet online

DeverauX

Focus is everything

Aangezien je de content van de file in een variabele plaatst zal je deze variabele moeten doorlopen totdat je allle "!!!" hebt gehad.

Ik denk dat in deze situatie met de functie InStr een eind moet komen, aangezien je hiermee een variabele kan doorlopen op de aanwezigheid van een bepaalde text.

Plaatst dit vervolgens in een loop die de gehele variabele doorloopt totdat de laatste "!!!" is gevonden en je bent klaar! :)

...whatever was distasteful or unpleasant or uncomfortable or painful - music could always soothe that.
All you have to do is reach out to beauty.
Quincy Jones


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

damen schreef op 12 June 2003 @ 11:51:
Is het dan mogelijk om die tekst op een andere manier te doorploegen, of om het in een textobject om te zetten?

Ik moet toegeven dat ik op ASP gebied een n00b ben... meer uit de php hoek

;-)
gorgi_19 schreef op 12 June 2003 @ 11:30:
En da's dus geen object waar AtEndOfStream eenmethod van is.

Ik gok splitsen op VbCrLf; deze returned een array. Vervolgens ga je ieder item aflopen, wat overeenkomt met een regel.
* gorgi_19 heeft volgens mij al een antwoord op de vraag gegeven... :|

Digitaal onderwijsmateriaal, leermateriaal voor hbo

Pagina: 1