pictop
Goto Top

VBScript einen Wert aus einer TXT auslesen und in eine Variable speichern

Guten Tag,

Da ich diese Woche das erste mal mit VBScript beschäftige habe hab ich leider nicht viel Ahnung von den ganzen.

Ich bräuchte eure Hilfe und zwar habe ich mit einen VBS einen wert einer Variable in einer TXT gespeichert. Ich möchte jetzt mit einen anderen Script diesen wert wider Auslesen und in eine andere Variable gespeichert werden.

Ausgelesen sollte immer die ganze TXT Datei werden (es handelt sich um 2 - 3 Wörter).


Ich wäre sehr froh, wen ihr mir helfen könntet.


Vielen Vielen dank,
Pictop

Content-Key: 169711

Url: https://administrator.de/contentid/169711

Ausgedruckt am: 29.03.2024 um 09:03 Uhr

Mitglied: ackerdiesel
ackerdiesel 14.07.2011 um 09:37:21 Uhr
Goto Top
Hallo,
ungefär so:

Dim Variable As String = My.Computer.FileSystem.ReadAllText(Txt-Datei)

Gruß
ackerdiesel
Mitglied: pictop
pictop 14.07.2011 um 13:35:21 Uhr
Goto Top
Hmm scheint nicht zu funktionieren kommt einen Fehler..

Name redefined


Public Variable


Dim Variable As String = My.Computer.FileSystem.ReadAllText("C:\Users\Public\OfficeProfil.txt")  


Dim ObjShell
		Set ObjShell = CreateObject("WScript.Shell")  
	ObjShell.RegWrite "HKEY_CURRENT_USER.........", Variable  


In grunde möchte ich den inhalt der Txt in einer Reg feil abspeichern.

Danke für deine Hilfe.


Pictop
Mitglied: mathe172
mathe172 14.07.2011 um 14:44:43 Uhr
Goto Top
Hallo,

zuerst mal:
Dim Variable As String = My.Computer.FileSystem.ReadAllText(Txt-Datei)
Das funktioniert meines Wissens nach nur in .NET
Und eine Variable zweimal zu deklarieren, ist schwachsinn. Also entweder Public oder Dim - nicht beides.
Zum auslesen des Inhalts:
Dim File as String
File="C:\Datei.txt"  
Set objFSO = CreateObject("Scripting.FileSystemObject")  
Set objFile = objFSO.OpenTextFile(File, 1)
Dim Inhalt as String
Do Until objFile.AtEndOfStream
   Inhalt = Inhalt & objFile.ReadLine 
Loop
' Oder statt Zeile 6-8 das: (wenns nur eine Zeile ist)  
'Inhalt=obj.File.ReadLine  
Wscript.echo Inhalt

Mathe172
[Edit: P.S.: Schau mal hier <-- Link!]
Mitglied: pictop
pictop 14.07.2011 um 17:06:06 Uhr
Goto Top
Danke für deine Hilfe !!!!!


Lg
Tobias
Mitglied: Friemler
Friemler 14.07.2011 um 17:14:27 Uhr
Goto Top
Hallo Pictop,

schau Dir das mal an:
Set objFSO    = CreateObject("Scripting.FileSystemObject")  
Set objInFile = objFSO.OpenTextFile(strInFile, ForReading)

While Not objInFile.AtEndOfStream
  strContent = strContent & objInFile.ReadLine & vbCRLF
Wend

arrContent = Split(strContent, vbCRLF)

For I = 0 To UBound(arrContent) - 1
  WScript.Echo arrContent(I)
Next

Die While-Schleife liest die Datei Zeile für Zeile ein und schreibt jede Zeile mit einem nachfolgenden Zeilenumbruch in den String strContent. Dieser String wird von der Funktion Split anhand des Zeilenumbruchs wieder in einzelne Zeilen zerlegt und aus den einzelnen Zeilen das Array arrContent erzeugt.

Das ist zwar umständlich (man könnte auch die Methode ReadAll des File-Objects verwenden), garantiert aber, dass es egal ist, ob die letzte Zeile der Datei mit einem Zeilenumbruch abgeschlossen ist oder nicht - das Array arrContent enthält in beiden Fällen die gleiche Anzahl von Elementen.

Das letzte Element diese Arrays ist immer leer, da die letzte Zeile der Datei ebenfalls mit einem nachfolgenden Zeilenumbruch in den String strContent geschrieben wird. Danach kommt nichts mehr, aber Split erzeugt wegen dem Zeilenumbruch dennoch ein zusätzliches (leeres) Arrayelement.

Die FOR-Schleife läuft deshalb von 0 bis zum größten Index des Arrays minus 1. Hier werden die Zeilen der Datei mit WScript.Echo ausgegeben.

Wenn Du den Inhalt der Zeilen bestimmten Variablen zuweisen willst, musst Du die Zeilennummer in der Datei kennen, in der der Wert für eine bestimmte Variable steht. Zeile 1 wäre dann Index 0 im Array, Zeile 2 Index 1 usw.

@mathe172 und ackerdiesel:
Was Ihr da verwendet ist Visual Basic, nicht Visual Basic Script. In VBS sind alle Variablen typenlos, Dinge wie Dim Var As String führen nur zu Fehlern.

Gruß
Friemler
Mitglied: pictop
pictop 15.07.2011 um 17:57:05 Uhr
Goto Top
Danke dir!


Grüße,
Pictop