Avatar billede caroc Praktikant
11. februar 2003 - 19:06 Der er 15 kommentarer og
1 løsning

Tekstfelt

hej..

Jeg skal have et tekstfelt til at vise noget tekst fra en txt-fil ved load. jeg bruger følgende kode:

<% Dim fso, f, filespec
Set fso = CreateObject("Scripting.FileSystemObject")
filespec = Server.Mappath("../../pop/Produkter/balsamico.txt")
Set f = fso.OpenTextFile(filespec,1)
%><br>
            <form name="form1" method="post" action="bals2.asp">
              <div align="center">
<input type="text" name="tekstblok" size="20" value="<%Response.write f.ReadLine%>"></p>
<%f.Close %>
                <p><input type="image" src="skriv.gif">
              </p></div>
            </form>

Men hvad er galt?
Desuden - hvis jeg skal også skal skrive til en txt-fil på samme side - hvordan så? Kan man godt have flere txt-forbindelser..?
Avatar billede eagleeye Praktikant
11. februar 2003 - 19:09 #1
Får du en fejl?

Er det data fra fromen som skal overskrive filen igen?
Avatar billede caroc Praktikant
11. februar 2003 - 19:16 #2
Fejlen:
Microsoft VBScript runtime error '800a003e'

Input past end of file

/warner/admin/tekst/bals.asp, line 56


Ja det er den data fra formen som skal overskrive filen igen..
Avatar billede eagleeye Praktikant
11. februar 2003 - 19:20 #3
Så det fordi filen er tom den kommer med den fejl.

Prøv at lave disse to linier:

<input type="text" name="tekstblok" size="20" value="<%Response.write f.ReadLine%>"></p>
<%f.Close %>


Om til:


<%
if not f.AtEndOfStream then
  strTxt = f.ReadAll
end if
%>
<input type="text" name="tekstblok" size="20" value="<%=strTxt%>"></p>
<%f.Close %>


Hvis du på samme side vil gemme filen så tilføj dette lige før du åbner file som er denne linie:
Set f = fso.OpenTextFile(filespec,1)


Tilføj dette
'Tjek om formen er POSTed til siden
if request.Servervariables("REQUEST_METHOD") = "POST" then
  'Gem til filen
  Set f.OpenTextFile(filespec,2)
  f.Write Request.Form("tekstblok")
  f.Close
  Set f = Nothing
end if
Avatar billede caroc Praktikant
11. februar 2003 - 19:27 #4
jeg forstår ikke hvor jeg skal sætte det sidste ind og i hvilken sammenhæng??
Avatar billede caroc Praktikant
11. februar 2003 - 19:27 #5
men det første virkede fint :)
Avatar billede eagleeye Praktikant
11. februar 2003 - 19:29 #6
Du sender form til denne side bals2.asp det står i action: action="bals2.asp"

Er det samme side som den form'en er på?
Avatar billede caroc Praktikant
11. februar 2003 - 19:31 #7
hov det var faktisk en fejl -- jeg vil gerne have begge funktioner på samme side..
Altså oveni at man skal kunne se værdien af txt-filen i tekstfeltet skal man når man trykker Submit opdatere den selv samme txt-fil. Helst uden at man skal bruge 2 filer..
Avatar billede eagleeye Praktikant
11. februar 2003 - 19:33 #8
Ok. Så det som føste skrevet kan lig uddyde lidt. Pør vat lave disse linier:

<% Dim fso, f, filespec
Set fso = CreateObject("Scripting.FileSystemObject")
filespec = Server.Mappath("../../pop/Produkter/balsamico.txt")
Set f = fso.OpenTextFile(filespec,1)


Ok til dette:

<% Dim fso, f, filespec
Set fso = CreateObject("Scripting.FileSystemObject")
filespec = Server.Mappath("../../pop/Produkter/balsamico.txt")

'Tjek om formen er POSTed til siden
if request.Servervariables("REQUEST_METHOD") = "POST" then
  'Gem til filen
  Set f.OpenTextFile(filespec,2)
  f.Write Request.Form("tekstblok")
  f.Close
  Set f = Nothing
end if

'Åben filen for læsning.
Set f = fso.OpenTextFile(filespec,1)
Avatar billede caroc Praktikant
11. februar 2003 - 19:41 #9
det gir fejl:

<% Dim fso, f, filespec
Set fso = CreateObject("Scripting.FileSystemObject")
filespec = Server.Mappath("../../pop/Produkter/balsamico.txt")

'Tjek om formen er POSTed til siden
if request.Servervariables("REQUEST_METHOD") = "POST" then
  'Gem til filen
  Set f.OpenTextFile(filespec,2)
  f.Write Request.Form("tekstblok")
  f.Close
  Set f = Nothing
end if

'Åben filen for læsning.
Set f = fso.OpenTextFile(filespec,1)%>
            <form name="form1" method="post" action="">
              <div align="center">
<%
if not f.AtEndOfStream then
  strTxt = f.ReadAll
end if
%>
            <div align="center">
              <textarea name="tekstblok" cols="60" rows="10"><%=strTxt%></textarea></p>
              <%f.Close %>
            </div>
            <p align="center">
              <input type="image" src="skriv.gif">
            </p>
            </div>
            </form>
Avatar billede eagleeye Praktikant
11. februar 2003 - 19:44 #10
Nu ved jeg ikke helt hvilken fejl du får men prøv at tilføje et ,true til denne linie:
Set f.OpenTextFile(filespec,2)

Set f.OpenTextFile(filespec,2,true)
Avatar billede caroc Praktikant
11. februar 2003 - 19:47 #11
jeg får denne fejl:
Siden kan ikke vises
Avatar billede caroc Praktikant
11. februar 2003 - 19:49 #12
det kan være du kan gennemskue det vha. dette: http://www.eksperten.dk/spm/313846
mit spg er nemlig i forlængelse af det..
Avatar billede eagleeye Praktikant
11. februar 2003 - 19:53 #13
Denne linie:

Set f.OpenTextFile(filespec,2)

Skal være:

Set f = fso.OpenTextFile(filespec,2,true)
Avatar billede caroc Praktikant
11. februar 2003 - 19:58 #14
cool - det virker :)
kan jeg få en besked (Teksten er opdateret) efter man trykker "skriv til TXT"
Avatar billede eagleeye Praktikant
11. februar 2003 - 20:03 #15
Ja du kan tilføje det til denne if sætning:

if request.Servervariables("REQUEST_METHOD") = "POST" then
  'Gem til filen
  Set f = fso.OpenTextFile(filespec,2,true)
  f.Write Request.Form("tekstblok")
  f.Close
  Set f = Nothing
end if


Eks:

if request.Servervariables("REQUEST_METHOD") = "POST" then
  'Gem til filen
  Set f = fso.OpenTextFile(filespec,2,true)
  f.Write Request.Form("tekstblok")
  f.Close
  Set f = Nothing
  Response.write "<center>Teksten er opdateret</center>"
end if
Avatar billede caroc Praktikant
11. februar 2003 - 20:06 #16
mange mange tak fra en newbie som mig :9
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