Avatar billede sune.jakobsen Nybegynder
21. maj 2001 - 18:22 Der er 10 kommentarer og
1 løsning

Hjælp en ASP nybegynder

Jeg er ved at lave en side der skal trække noget information ud af en tekstfil og indsætte det i en tabel. Mit problem er at jeg ikke ved hvor mange rækker der er brug for i tabellen (men max 10.) Det vil sige at jeg opretter 10 række i mit asp dokument, og det er ikke noget problem, men hvis jeg så ikke har 10 linier i min tekstfil kommer der en fejlmeddelelse på asp siden.
Jeg havde fprestillet mig at det kunne løses med en linie der sagde noget hen af: \"Hvis næste linie i tekstfilen er tom så stop nu og skriv html koden </table> ellers fortsæt med disse asp koder\" Jeg håber jeg gør mig selv forståelig..

Avatar billede sune.jakobsen Nybegynder
21. maj 2001 - 19:59 #1
Er der virkelig ingen der kan hjælpe mig, det haster...
Avatar billede tdaugaard Nybegynder
21. maj 2001 - 20:14 #2
Har du allerede noget kode ?
Avatar billede sune.jakobsen Nybegynder
21. maj 2001 - 20:23 #3
Dette ligner lidt den kode jeg har stykket mig sammen til, jeg har blot også nogle arrays med
Dete er så ved linjen med *\'erne jeg havde forestillet mig noget i stil med
if line = \"\" (tom)
then
response.write </table>
else
osv. osv. osv.
end if




<html>
<title>Læse fra tekstfiler</title>
<head>
</head>
<body>
<table>
  <tr>
    <td>
<%
Dim fso, f, filespec
Set fso = CreateObject(\"Scripting.FileSystemObject\")
filespec = Server.Mappath(\"/tutorials/asp/ministerier.txt\")
Set f = fso.OpenTextFile(filespec,1)

Response.write f.ReadLine
    </td>
  </tr>
  <tr>
    <td>
*************************************
For intLine = 1 to 0
  f.SkipLine
Next

Response.write f.ReadLine & \"<br>\"
f.Close
%>
</body>
</html>
Avatar billede tdaugaard Nybegynder
21. maj 2001 - 20:26 #4
ahh .. det du mangler er et loop.
Hvad skal du bruge:

For intLine = 1 to 0
  f.SkipLine
Next

til ?

<html>
<title>Læse fra tekstfiler</title>
<head>
</head>
<body>
<table>
  <tr>
    <td>
<%
Dim fso, f, filespec
Set fso = CreateObject(\"Scripting.FileSystemObject\")
filespec = Server.Mappath(\"/tutorials/asp/ministerier.txt\")
Set f = fso.OpenTextFile(filespec,1)

Response.write f.ReadLine
    </td>
  </tr>
  <tr>
    <td>
*************************************
For intLine = 1 to 0
  f.SkipLine
Next


Do Until f.AtEndOfStream
  Response.write f.ReadLine & \"<br>\"
Loop
f.Close
%>
</body>
</html>
Avatar billede sune.jakobsen Nybegynder
21. maj 2001 - 21:18 #5
Jeg tror ikke helt jeg er blevet forstået rigtigt:
Lad os sige at vi har en tekstfil (program.txt) med 2 linjes tekst som skal vises i browseren i 2 forskellige tabeller så ville koden være således:

<html>
<title>Læse fra tekstfiler</title>
<head>
</head>
<body>
<table>
  <tr>
    <td>
<%
Dim fso, f, filespec
Set fso = CreateObject(\"Scripting.FileSystemObject\")
filespec = Server.Mappath(\"/program.txt\")
Set f = fso.OpenTextFile(filespec,1)

Response.write f.ReadLine %>
   
    </td>
    </tr>
    <tr>
    <td>
<%
For intLine = 1 to 0
  f.SkipLine
Next

  Response.write f.ReadLine & \"<br>\"

f.Close
%>
</tr>
</td>
</table>
</body>
</html>

Hvis jeg nu sletter den 2. linje i program.txt så vil jeg få en fejlmeddelse i browseren fordi den får besked på at vise en linjes tekst som ikke findes. Det var det Jeg ville undgå Med et stykke kode, der undersøger om linje 2 er tom og hvis dette er tilfældet skal tabellen afsluttes med </table> og hvis linje 2 indeholder tekst, skal den så udskrives i tabellen...
Avatar billede sune.jakobsen Nybegynder
21. maj 2001 - 21:51 #6
Jeg vil gerne smide 100 point mere i puljen for et svar der kan hjælpe mig... Jeg kan bare ikke lige huske hvordan man lægger flere P i hatten...
Avatar billede sune.jakobsen Nybegynder
21. maj 2001 - 23:03 #7
Det må være noget i denne stil, men hvad er der galt?

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

response.write f.readline

<% For intLine = 1 to 0
      f.SkipLine
      next
if line = \"tom\" then
 
  response.write \"linjen er tom\"
     
else
  response.write \"linjen indeholder tekst\"

end if

f.close
%>
Avatar billede sune.jakobsen Nybegynder
22. maj 2001 - 00:31 #8
Jeg er desperat jeg smider alle mine point 200 i til den der kan løse mit problem...
Avatar billede tdaugaard Nybegynder
22. maj 2001 - 07:28 #9
Nååå ... på den måde det kan du ikke. Så er du nødt til at loade hele filen i et array. Jeg laver lige et eksempel.
Avatar billede tdaugaard Nybegynder
22. maj 2001 - 07:38 #10
Sådan her:
Først loades filen linie for linie ind i arrayet \"arrLines\". Derefter kan du bruge arrLines(linie_nr) for at få indholdet af den pågældende linie (numrene starter ved 0).

UBound(arrFiles) vil fortælle dig hvor mange linier der er i alt.

<%
    Dim fso, f, filespec, strFile
    ReDim arrLines(0)

    Set fso = CreateObject(\"Scripting.FileSystemObject\")
    filespec = Server.Mappath(\"/program.txt\")
    Set f = fso.OpenTextFile(filespec,1)

    Do Until f.AtEndOfStream
        arrLines(UBound(arrLines)) = f.ReadLine
        ReDim Preserve arrLines(UBound(arrLines) + 1)
    Loop
    ReDim Preserve arrLines(UBound(arrLines) - 1)
    f.Close: Set f = Nothing
    Set fso = Nothing

    If UBound(arrFiles) = 0 Then
        Response.Write \"Der er kun een linie i filen!\"
    Else
        Response.Write \"Der er mere end een linie i filen!\"
    End If
%>
Avatar billede sune.jakobsen Nybegynder
22. maj 2001 - 16:08 #11
Med lidt møje og besvær fik jeg det til at virke, men det er ikke den kønneste programkode jeg har set... Hvis andre skulle komme forbi med det samme problem så skal arrFiles i den 6. sidste linje ændres til arrLines...

-->tdaugaard, hvordan ændrer jeg det antal point der er sat på dette spørgsmål, så du kan få de 200 jeg lovede dig?
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