klausinger: werfe mich bald vor die merklin......

hallo zusammen...

wie wahrscheinlich jeder von schon so eine phase hatte, sich am liebsten vor die merklin zu hauen, bin auch ich bald soweit...

möchte mit asp aus einem textfile lesen, das aber nicht unbedingt exisieren muß. also erstelle ich dieses mit dem befehl:

Set objTextaa = objaa.OpenTextFile(Server.MapPath("aa.txt"), 1, true)

falls es dieses textfile vorher mit inhalt (mindestens ein space oder enter d.h. 1 zeichen)schon gegeben hat, gibt es kein problem. gibt es diese datei nóch nicht, und wird sie durch den obigen parameter "true" erstellt, wird mir beim auslesen folgende fehlermeldung ausgegeben:
Laufzeitfehler in Microsoft VBScript- Fehler '800a003e'

Eingabe hinter Dateiende.

/test.asp, line 54

line 54 = testaa = objTextaa.ReadLine

nach meinen erkenntnissen kann man kein leeres txt file auslesen, denn kaum steht ein zeichen drin, funktioniert das ganze einwandfei...

wie kann ich das loesen????
danke schon im voraus ;-)

lg
klaus

  1. nach meinen erkenntnissen kann man kein leeres txt file auslesen, denn kaum steht ein zeichen drin, funktioniert das ganze einwandfei...

    Hallo Klaus,

    ich habe das jetzt ein paarmal mit verschiedenen Methode probiert.
    Du hast recht, es geht nicht. Was Du aber machen kannst, ist auf
    die Größe der Datei abzufragen.

    <%
    Set objFileSys = Server.CreateObject("Scripting.FileSystemObject")
        If objFileSys.FileExists(Server.MapPath("aa.txt")) Then
            Set objFile = objFileSys.GetFile(Server.MapPath("aa.txt"))
            If objFile.Size > 0 Then
                Set objFileContent = objFile.OpenAsTextStream(1)
                    Response.Write objFileContent.ReadLine
                Set objFileContent = Nothing
            End if
            objFile.Close
        Set objFile = Nothing
        Else
            Set objFile = objFileSys.CreateTextFile(Server.MapPath("aa.txt"), False)
    End if
    Set objFileSys = Nothing
    %>

    Dieses Skript frage zuerst ab, ob die Datei existiert. Wenn nicht, wird sie erstellt. Wenn sie existiert und die Dateigröße > 0 (Byte)
    ist, wird der Inhalt gelesen. Das beseitigt zumindest die Fehler.

    Tschau, Stefan

    1. Gruß Leute...

      den Fehler hatte ich auch einige Zeit.

      vor dem Readline muß noch was stehen, sekunde...

      Dim fs, a, retstring
      Set fs = CreateObject("Scripting.FileSystemObject")
      Set a = fs.OpenTextFile("c:\testfile.txt", ForReading, False)
      Do While a.AtEndOfStream <> True
          retstring = a.Readline
          ...
      Loop
      a.Close

      =================================================

      Genau, so sollte es gehen

      Viel Glück

      Frank

  2. Sup!

    Wenn Dein ASP-Code genauso falsch geschrieben ist wie Dein Märklin, dann wundert mich das nicht, dass es nicht funktioniert. *gg*

    Gruesse,

    Bio

    Streiter wider die Falschschreibung

    1. Gruesse,

      Bio

      Streiter wider die Falschschreibung

      Hallo Bio!

      Äh...
      müsste es nicht heißen "Streiter wider der Falschschreibung"? ;-)

      Gruß

      H.B