Programmieren - alles kontrollieren 4.940 Themen, 20.676 Beiträge

Visual Basic ein Befehl Angeordneten schreiben in Datei?

simonkopp / 6 Antworten / Baumansicht Nickles

Ich such einen Befehl und seine Beschreibung, der folgendes tut! Er soll in eine Datei so ähnlich reinschreiben:


12, 39, Schwabach, 14, 06, 1985


19, 35, Nürnberg, 19, 03, 1879


.....


Und so weiter! Gibt es sowas oder muss man sich das Mühsam erstellen? Das erste ist zum Beispiel die Uhrzeit, das Zweite der Ort und die Letzten Zahlen das Datum. Also Praktisch So in die Datei reinspeichern und hinterher wieder auslesen.


Simon

bei Antwort benachrichtigen
UselessUser simonkopp „Visual Basic ein Befehl Angeordneten schreiben in Datei?“
Optionen

Hallo Simon,

z. B. mit der Open(Create)TextFile- und ReadTextFile-Methode des FileSystemObjects:

'----------------------------

Dim FSO As FileSystemObject
Dim schreib
Dim lese
Dim lesevariable

Set FSO = New FileSystemObject

'------- Schreiben
Set schreib = FSO.OpenTextFile("C:\Liste.txt", ForWriting, True)
'Falls die Datei neu erzeugt werden soll: FSO.CreateTextFile

'Schreiben mit Zeilenvorschub am Ende
schreib.WriteLine "Das ist eine Zeile."
'Schreiben ohne Zeilenvorschub
schreib.Write "Das ist "
schreib.Write "eine Zeile."
'Schreiben von 2 Leerzeilen
schreib.WriteBlankLines 2
schreib.Close

'--------- Lesen
Set lese = FSO.OpenTextFile ("C:\Liste.txt", ForReading, False)

'alle Zeile in einem Rutsch
lesevariable = lese.ReadAll

'Zeilenweise Einlesen, AtEndOfStream bedeutet Dateiende
While Not lese.AtEndOfStream
lesevariable = lese.ReadLine
Loop

'Lesen einer bestimmten Anzahl von Zeichen, hier einem einzigen,
'die Zeile wird in diesem Bsp. Zeichen für Zeichen bis zum Zeilen-
'ende (AtEndOfLine) ausgelesen
While Not lese.AtEndOfLine
lesevariable = lese.Read(1)
Loop

lese.Close

'----------------------------------------

Mit diesen Funktionen kannst du dir schon eine Menge zusammenbasteln, falls du Spaß daran hast. Eine andere Möglichkeit ist es, dir von (den installierten!) Office-Objekten das Word- oder Excel.Application-Objekt zu schnappen, bspw. ab Excel 9

Set XLApp = CreateObject("Excel.Application")

um dann ein Excel-Workbook (unsichtbar) zu öffnen und ein Worksheet zu formatieren und beschreiben, z. B.

XLWsh.Cells(X, Y).Value = "Schwabach"

Aber das ist eine längere Geschichte und dabei gibt es viel zu beachten.

Bei beiden Wegen ist zu beachten, dass die entsprechenden Objekte in der Objektreferenzliste deines VB-Projektes enthalten sein müssen, im Menü irgendwo unter "References" zu finden, weiß jetzt nicht die genauen Bezeichnungen.

MfG

UselessUser

Rückmeldungen über Hilfestellungen sind sehr erwünscht:1. investiere ich Zeit, um dir zu antworten und2. möchte ich auch etwas dazulernen.
bei Antwort benachrichtigen
UselessUser Nachtrag zu: „Hallo Simon, z. B. mit der Open Create TextFile- und ReadTextFile-Methode des...“
Optionen

Sorry, es muss natürlich heißen "Do While ... Loop" statt "While Not ... Loop". Wenn du bswp. eine Zeile Zeichen für Zeichen einlesen willst:

'---------
Do While Not lese.AtEndOfLine
lesevariable = lesevariable & lese.Read(1)
Loop

'---------

Es gibt für das OpenTextFile-Objekt noch folgende Methoden:

lese.Skip = überspringt ein Zeichen beim zeichenweisen Lesen
lese.SkipLine = überspringt eine Zeile
lese/schreibe.Line = gibt Zeilennummer zurück

In VBScript geht es übrigens genauso ...

MfG

UselessUser

Rückmeldungen über Hilfestellungen sind sehr erwünscht:1. investiere ich Zeit, um dir zu antworten und2. möchte ich auch etwas dazulernen.
bei Antwort benachrichtigen
simonkopp UselessUser „Berichtigung“
Optionen

Danke !
Und man muss im Menu unter Projekt\ Verweise...\ Durchsuchen im Ordner Windows\ System32 die Datei scrrun.dll hinzufügen. Damit das geht! Nur so zur vervollständigung. Das gute an dieser Methode, ist dass in der Datei keine ANführungszeichen stehen.
Da hab ich gleich noch eine Frage was muss ich machen, wenn ich in die Datei anführungszeichen schreiben will? Was haben die Für eine COde?

Simon

bei Antwort benachrichtigen
simonkopp Nachtrag zu: „Visual Basic ein Befehl Angeordneten schreiben in Datei?“
Optionen

OK habs schon gefunden Chr$(34) steht für Anführungszeichen

Simon

bei Antwort benachrichtigen
UselessUser simonkopp „Visual Basic ein Befehl Angeordneten schreiben in Datei?“
Optionen

Hallo Simon!

Ja genau, das FileSystemObject gehört zur Microsoft Scripting Runtime Library , auf die auch VBS zugreifen kann. Über "Projekt / Verweise" in der deutschen VB-Entwicklungsumgebung einzubeziehen. (Habe noch einmal nachgeschlagen ;-)

Was das Anführungszeichen angeht, das hat mich beim Scripten schon in den Wahnsinn getrieben. Wenn deine Lösung so funktioniert, ist sie offensichtlich die elegantere Methode. Der Scripting Host und wahrscheinlich auch der VB5/6-Compiler erkennt nämlich nach zwei hintereinander geschriebenen Anführungszeichen das dritte Anführungszeichen als String, also:
strPfad = """C:Eigene DateienTest.txt"""

Willst du jedoch nur ein einzelnes Anführungszeichen in einen String einfügen, darfst du nicht fünf, sondern nur vier Anführungszeichen schreiben, frage mich bitte nicht, warum!
strPfad = """" & "Eigene Dateien/Test.txt" & """"

Klingt zwar umständlich, kann aber beim Starten anderer Programme mit Parameterübergabe wichtig werden.

MfG

UselessUser

Rückmeldungen über Hilfestellungen sind sehr erwünscht:1. investiere ich Zeit, um dir zu antworten und2. möchte ich auch etwas dazulernen.
bei Antwort benachrichtigen
Apro simonkopp „Visual Basic ein Befehl Angeordneten schreiben in Datei?“
Optionen

wenn du deine programmchen etwas VBRuntime-unabhängiger gestalten willst würde ich aufs FSO verzichten. hier ein kleines tutorial:

Klicken!

greetings...
bei Antwort benachrichtigen