Avatar billede jeffe Nybegynder
11. september 2003 - 22:07 Der er 14 kommentarer og
1 løsning

ASP: LÆs fra tekstfil

Er der nogen der gider skrive de linjer der skal til for at:

1. Læse fra en tekstfil
2. Teksten skal sætte 'vbcrlf' hvor det er. Altså trykke ENTER hvor det er i tekstfilen.

Det skal i sidste ende sættes i et textarea, men det kan jeg godt selv.
Avatar billede nmh Nybegynder
11. september 2003 - 22:11 #1
Nu får du den først hvor den skriver direkte til en htlm-siden.
Så retter jeg den til mht linieskift
<%
Set FilSystem=Server.CreateObject("Scripting.FileSystemObject")
Set stream=filsystem.openTextFile("C:\Inetpub\wwwroot\tlfliste\liste.txt")
%>
<html>
<body>
<A href="Indtast.htm">Forsæt med indtastningen</A><p><p>
<%
while not stream.AtEndOfStream
  tekst=stream.readline()
  response.write(tekst & "<br>")
wend
stream.close
%>
</body>
</html>
Avatar billede nmh Nybegynder
11. september 2003 - 22:16 #2
<%
Set FilSystem=Server.CreateObject("Scripting.FileSystemObject")
Set stream=filsystem.openTextFile("d:\kat1\mintextfil.txt")
tekst=stream.ReadAll
'Nu er hele tekstfilen gemt i den variable
'tekst, med linieskift inkluderet.
stream.close
%>
Avatar billede elkrog Nybegynder
11. september 2003 - 22:17 #3
Avatar billede nielle Nybegynder
11. september 2003 - 22:18 #4
Hvis du alligevel skal indsætte det i et testarea så er dit trin nr. 2 overflødigt (omskrevet efter nmh):

<textarea>
<%
Set FilSystem=Server.CreateObject("Scripting.FileSystemObject")
Set stream=filsystem.openTextFile("C:\Inetpub\wwwroot\tlfliste\liste.txt")
while not stream.AtEndOfStream
  tekst=stream.readline()
  response.write(tekst)
wend
stream.close %>
</textarea>
Avatar billede nmh Nybegynder
11. september 2003 - 22:24 #5
nielle>>Nu vil den da ikke tilføje linieskift.
Hvis den skal ende med at skrive til et textarea er det rarest at have alt i en variabel. Så lyder udskriften jo blot f.eks.:

<textarea name=txt cols=20 rows=20><%=tekst%></textarea>
Avatar billede nmh Nybegynder
11. september 2003 - 22:29 #6
nielles version burde være:
<textarea>
<%
Set FilSystem=Server.CreateObject("Scripting.FileSystemObject")
Set stream=filsystem.openTextFile("C:\Inetpub\wwwroot\tlfliste\liste.txt")
while not stream.AtEndOfStream
  tekst=stream.readline()
  response.write(tekst & VBCrLf)
wend
stream.close %>
</textarea>
Avatar billede nielle Nybegynder
11. september 2003 - 22:32 #7
I stand corected. ;^)
Avatar billede nielle Nybegynder
11. september 2003 - 22:36 #8
Mht 22:24:43 så er det vist et spørgsmål om hvad man synes bedst om. I dit eksempel er udskriften nok simpel, men arbejdet med at lægge data i variablen er ikke.

I mit eksempel går man ikke via en variabel - det er ikke nødvendigt. I stedet er selve udskrivningen så "grimt" (på samme måde som at lægge i variablen).
Avatar billede nielle Nybegynder
11. september 2003 - 22:37 #9
Hvad er pænest?

Version 1)

<%
Set FilSystem=Server.CreateObject("Scripting.FileSystemObject")
Set stream=filsystem.openTextFile("d:\kat1\mintextfil.txt")
tekst=stream.ReadAll
'Nu er hele tekstfilen gemt i den variable
'tekst, med linieskift inkluderet.
stream.close
%>

<textarea name=txt cols=20 rows=20><%=tekst%></textarea>

- eller:

Version 2)

<textarea name=txt cols=20 rows=20>
<%
Set FilSystem=Server.CreateObject("Scripting.FileSystemObject")
Set stream=filsystem.openTextFile("C:\Inetpub\wwwroot\tlfliste\liste.txt")
while not stream.AtEndOfStream
  tekst=stream.readline()
  response.write(tekst & VBCrLf)
wend
stream.close %>
</textarea>
Avatar billede nielle Nybegynder
11. september 2003 - 22:38 #10
Personligt synes jeg at det er lidt er noget gris at blande en variabel ind i det hvis man ikke skal bruge denne til andet andre steder i scritet.
Avatar billede nmh Nybegynder
11. september 2003 - 22:39 #11
Hvis tekstfilen er stor er metode 2 bedst.
Avatar billede nielle Nybegynder
11. september 2003 - 22:44 #12
Korrekt, der er noget performance at tage hensyn til. Men det var jo ikke lige det som diskussitionen gik på - hvad var pænest eller mest elegant.
Avatar billede nmh Nybegynder
11. september 2003 - 22:51 #13
Ja så synes jeg at metode 1 er pænest. Du læser direkte ind i variablen tekst, som derefter udskrives. Pænt og net. Jeg kan godt lide en simpel, kort og overskuelig kode. Der skal heller ikke testes på End of File.

Hvad mener du så om
...
response.write(stream.readline & VBCrLf)
...
Avatar billede nielle Nybegynder
11. september 2003 - 22:55 #14
Nydeligt, bortset fra at jeg altid foretrækker at angive paranteserne ved funktion-skald:

response.write(stream.readline() & VBCrLf)
Avatar billede nmh Nybegynder
11. september 2003 - 23:00 #15
og så det helt simple:  :o)
...
response.write(stream.readall())
...
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

Seneste spørgsmål Seneste aktivitet
I går 21:00 Libre Office Impress Af Frank i Andre styresystemer
I går 11:47 VB script Af Jenshentze i Word
I går 11:21 Popup ved opstart Af mort1 i Windows
04/0918:50 Slet lokal konto Af ErikHg i Windows
04/0916:05 Ændre tal i en celle Af xvid i Excel