Smilla Geschrieben 10. Januar 2006 Geschrieben 10. Januar 2006 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 Zitieren
-roTekuGeL- Geschrieben 10. Januar 2006 Geschrieben 10. Januar 2006 Habs versucht da kommt dann ne leere Box... wo? und wie stehts wenn du dir ne string var anlegst und da erstmal alles reinschreibst? Zitieren
Smilla Geschrieben 10. Januar 2006 Autor Geschrieben 10. Januar 2006 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?? Zitieren
Hendrik.GC Geschrieben 10. Januar 2006 Geschrieben 10. Januar 2006 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. Zitieren
Smilla Geschrieben 10. Januar 2006 Autor Geschrieben 10. Januar 2006 @Hendrik: Lies mal meinen oberen beitrag (den über deinem) da müsst sich deine Frage glaub beantworten oder ? Zitieren
Hendrik.GC Geschrieben 10. Januar 2006 Geschrieben 10. Januar 2006 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 Zitieren
Smilla Geschrieben 10. Januar 2006 Autor Geschrieben 10. Januar 2006 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 Zitieren
Amstelchen Geschrieben 10. Januar 2006 Geschrieben 10. Januar 2006 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 Zitieren
Smilla Geschrieben 10. Januar 2006 Autor Geschrieben 10. Januar 2006 Ok Amstelchen danke aber wie gebe ich dann den Inhalt aus? Ich muss ja rausfinden ob die Textdatei ausgelesen wurde... Zitieren
-roTekuGeL- Geschrieben 11. Januar 2006 Geschrieben 11. Januar 2006 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 Zitieren
Smilla Geschrieben 11. Januar 2006 Autor Geschrieben 11. Januar 2006 Danke, jetzt funktioniert es! Da meine Msgbox den Inhalt der Textdatei wiedergibt, kann ich davon ausgehen das die Textdatei ausgelesen wird!? Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.