Avatar billede willi Nybegynder
03. september 2003 - 09:52 Der er 9 kommentarer og
1 løsning

Linieskift i asp med form

Denne kode fungere fint. Bortset fra at den erstatter teksten i filen og ikke tilføjer en ny linie med den nye tekst der indskrives.
Og det er hvad jeg har brug for.

<html>
<title>Skriv</title>
<head>
</head>
<body>
<%
Dim fso, f, filespec
Set fso = CreateObject("Scripting.FileSystemObject")
filespec = Server.Mappath("tekstfil.txt")
Set f = fso.OpenTextFile(filespec,2)
' Skriv tekst i en linie
f.Write Request.Form("tekstblok")
' Åbn filen til læsning og Læs linie for linie
Set f = fso.OpenTextFile(filespec,1)
Do While not f.AtEndOfStream
  Response.write f.ReadLine & "<br>" 
Loop
f.Close
%>
</body>
</html>

Som jeg ser det henter den "skrivemuligheden" i Request.Form("tekstblok"). Det fungere fint. Men hvordan tilføjes en tekst til den eksisterende?
Både mens .txt filen er åben. Men også hvis den lukkes og senere åbnes?
Avatar billede cesil Nybegynder
03. september 2003 - 10:08 #1
prøv lige det her

<%
Dim fso, f, filespec
Set fso = CreateObject("Scripting.FileSystemObject")
filespec = Server.Mappath("tekstfil.txt")
Set f = fso.OpenTextFile(filespec,2)

f.Write Request.Form("tekstblok")

Set f = fso.OpenTextFile(filespec, ForAppending, True)
Do While not f.AtEndOfStream
  Response.write f.ReadLine & "<br>" 
Loop
f.Close
%>
Avatar billede willi Nybegynder
03. september 2003 - 10:19 #2
Nej. Det rækker ikke. Fejlmeddelelsen:

Fejltype:
Der opstod en Microsoft VBScript-kørselsfejl (0x800A0005)
Procedurekaldet eller argumentet er ugyldigt
/askFormular.asp, line 15


Browsertype:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)

Side:
POST 30 bytes to /askFormular.asp

POST Data:
tekstblok=test&gem=Gem+i+filen
Avatar billede cesil Nybegynder
03. september 2003 - 10:31 #3
prøv den her

dim fso, f, fldr,filepath
Const ForReading = 1, ForWriting = 2, ForAppending = 8
filepath = server.mappath("tekstfil.txt")
Set fso = Server.CreateObject("Scripting.FileSystemObject")

If Not fso.FolderExists(filepath) Then
    Set fldr = fso.CreateFolder(filepath)
    Set fldr = Nothing
end if
Set f = fso.OpenTextFile(filespec, ForAppending, True)
    f.WriteLine "skriv din tekst her" & "<br>"
f.close   
set f = nothing   
set fso = nothing
Avatar billede willi Nybegynder
03. september 2003 - 10:39 #4
Det bliver indviklet :|

Inden jeg slettede teskt filen kom denne (hvilket nok ikke overrasker)

Fejltype:
Der opstod en Microsoft VBScript-kørselsfejl (0x800A003A)
Filen findes allerede
/askFormular.asp, line 13


Browsertype:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)

Side:
POST 30 bytes to /askFormular.asp

POST Data:
tekstblok=test&gem=Gem+i+filen


Efter at have slettet tekstfil.txt

Fejltype:
Der opstod en Microsoft VBScript-kørselsfejl (0x800A0005)
Procedurekaldet eller argumentet er ugyldigt
/askFormular.asp, line 16


Browsertype:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)

Side:
POST 30 bytes to /askFormular.asp

POST Data:
tekstblok=test&gem=Gem+i+filen
Avatar billede cesil Nybegynder
03. september 2003 - 10:46 #5
Nu må jeg sgu vågne op

dim fso, f, fldr,filepath
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Set fso = Server.CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile("tekstfil.txt", ForAppending, True)
    f.WriteLine "skriv din tekst her" & "<br>"
f.close   
set f = nothing   
set fso = nothing
Avatar billede willi Nybegynder
03. september 2003 - 11:25 #6
Men hvor blev formularen af?
f.WriteLine "skriv din tekst her" & "<br>"
...skriver heller ikke noget ud.
Avatar billede willi Nybegynder
03. september 2003 - 11:39 #7
Skal jeg skifte linie hver gang formularen opdateres skal jeg vel noget i retning af "redraw" eller andet som gemmer det indtastede inden der skrives noget nyt.
Avatar billede cesil Nybegynder
03. september 2003 - 11:51 #8
f.WriteLine "skriv din tekst her" & "<br>"
kunne du jo så bare ændre til
f.WriteLine Request.Form("tekstblok")

Men når du skriver at f.WriteLine ikke skriver noget så nytter det jo ikke noget.

prøv det her alligevel.

dim fso, f, fldr,filepath
Const ForReading = 1, ForWriting = 2, ForAppending = 8
filepath = server.mappath("tekstfil.txt")
Set fso = Server.CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile(filepath, ForAppending, True)
    f.WriteLine Request.Form("tekstblok")
f.close   
set f = nothing   
set fso = nothing
Avatar billede willi Nybegynder
03. september 2003 - 18:40 #9
Det virker sådan, at der rent faktisk skrives og tilføjes til .txt.
Men der mangler jo så output til formularen.
Avatar billede cesil Nybegynder
03. september 2003 - 20:05 #10
hvad for noget output til formularen?
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