Zum Inhalt springen

Textdatei auslesen - wo hängts?


Empfohlene Beiträge

Geschrieben


sAdressFilePath = "U:\VBScript\adressverwaltung\adressen.txt"


Function ReadEntireFile(sAdressFilePath)

   Const ForReading = 1

   Dim fso, theFile, i

   i = 1

   Set fso = CreateObject("Scripting.FileSystemObject")

   Set theFile = fso.OpenTextFile(sAdressFilePath, ForReading, False)

   'Do While theFile.AtEndOfStream <> True

   	Do While theFile.AtEndOfStream 

      	AddToArray(theFile.ReadLine)

      	i = i + 1

      	CountLines = CountLines + 1

   Loop


   theFile.Close

End Function

Woran liegts das es nicht geht? Finde den Fehler nicht :(

Kann ich "theFile" als Msgbox ausgeben lassen? Habs versucht da kommt dann ne leere Box...

Help please! ;) :e@sy

Geschrieben

Die leere MsgBox kommt wenn ich nach ausführen der Function eine MsgBox einsetze und TheFile ausgeben lassen will. Also so

ReadEntireFile(sAdressFilePath)


MsgBox theFile

(die Funktion hab ich jetzt ausgelassen, sonst ist hier immer so viel Code drinne,steht ja oben schon). ;)

Und wie genau meinst du das mit der Stringvariablen?

P.S. Ich will wissen ob die Textdatei ausgelesen wurde und in der Variablen theFile nun die Daten aus der Text datei stehen, deswegen will ich das ausgeben! ;)

Weil die Daten aus der Textdatei müssen an ein Array übergeben werden, dazu müssen sie ja erst mal ausgelesen werden! :)

Da die MsgBox bei Ausgabe von theFile leer ist, kann ich davon ausgehen das die Textdatei NICHT ausgelesen wird?? :(

Geschrieben

Hi,

was genau hast Du denn vor?

Den Inhalt der Textdatei auszugeben? Dann kannst Du auch auf das FSO verzichten:


Private Sub Form_Load()

    Dim fn As Long

    Dim Inhalt As String


    fn = FreeFile

    Open "U:\VBScript\adressverwaltung\adressen.txt" For Input As #fn

    Inhalt = Input(LOF(fn), fn)

    Close #fn


    ' Inhalt im Direktfenster ausgeben

    Debug.Print Inhalt

End Sub

Du kannst Inhalt auch per Msgbox ausgeben, aber dann kommt glaube ich nicht alles mit, weil die MsgBox ein Zeichenlimit hat.

Geschrieben

Hi,

wenn Du Inhalt global deklarierst, kannst Du prüfen, ob dort etwas vorhanden ist.

Alternativ machst Du eben eine Function daraus:


Public Function ReadEntireFile(ByVal sFile As String) As String

    Dim fn As Long

    Dim Inhalt As String


    fn = FreeFile

    Open sFile For Input As #fn

    Inhalt = Input(LOF(fn), fn)

    Close #fn


    ReadEntireFile = Inhalt

End Function

Geschrieben

Jetzt blick ichs irgendwie gar nichtmehr :( Hmmm... tu mich heut eh voll schwer mich da reinzudenken...

Ich habs ja schon als Function.

Wie deklariere ich den inhalt? Das geht ja gar net oder?

Sorry das ich soviel frage, aber ich peils echt net :(

Achso ja, und sollte die Msgbox zu klein sein für den Inhalt, kann ich das ja auch mit wscript.echo ausgeben lassen. ist ja nur als Kontrolle für mich ;)

Geschrieben

smilla: theFile selbst ist nicht der inhalt der datei, sondern ein zeiger darauf, bzw. der FSP-dateistrom, der eben gewisse methoden, wie lesen, schreiben etc bereitstellt. den kannst du mit msgbox nicht ausgeben.

s'Amstel

Geschrieben

sAdressFilePath = "P:\users.log"


   Const ForReading = 1

   Dim fso, theFile, i, das

   i = 1

   Set fso = CreateObject("Scripting.FileSystemObject")

   Set theFile = fso.OpenTextFile(sAdressFilePath, ForReading, False)

   Do until theFile.AtEndOfStream

      	das = theFile.ReadLine

      	i = i + 1

      	CountLines = CountLines + 1

msgbox das

   Loop


   theFile.Close

so tut das bei mir... keine ahnung was dieses addtoarray sein soll oder was es macht, aber is auch egal... variable wird ja ausgegeben

oder statt der variablen kannst du auch das theFile.ReadLine ausgeben lassen also:

msgbox theFile.ReadLine

jetzt musst du dir das ganze nur noch anpassen ;)

Geschrieben

Danke, jetzt funktioniert es! 

Da meine Msgbox den Inhalt der Textdatei wiedergibt, kann ich davon ausgehen das die Textdatei ausgelesen wird!? ;)

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...