t0pd0g
Goto Top

Inhalt eines Textdokuments txt in eine VBS Variable umwandeln

Der Titel sagt alles.
Allerdings verwende ich folgenden Script um die Variable in einer datei zwischenzuspeichern:

Set FSO = CreateObject("Scripting.FileSystemObject")
Set MyFile = FSO.CreateTextFile("Zwischenspeicher.txt", TRUE)
MyFile.Close

Set MyFile = FSO.OpenTextFile("Zwischenspeicher.txt", 8)
MyFile.WriteLine (""&name&"")

Ich möchte bitte keine verunstalteten Optionen mit Inputbox und sendkeys :D

mfg T0pD0g

Content-Key: 280848

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

Printed on: April 16, 2024 at 16:04 o'clock

Mitglied: 122990
Solution 122990 Aug 21, 2015 updated at 19:19:04 (UTC)
Goto Top
Moin,
na ja so ganz klar ist dein Titel nun auch wieder nicht, als da wären Infos wie welche Zeile der Textdatei du als Variable haben willst...
Geht aber ziemlich einfach:
Set fso = CreateObject("Scripting.FileSystemObject")  
arrLines = Split(fso.OpenTextFile("C:\datei.txt",1).ReadAll(),vbNewLine)  
strLine1 = arrLines(0)
msgbox strLine1
Ich möchte bitte keine verunstalteten Optionen
Und wir wollen eindeutige Infos face-wink

Gruß grexit
Member: T0pD0g
T0pD0g Aug 21, 2015 at 19:19:22 (UTC)
Goto Top
Danke für die Antwort :D
Member: T0pD0g
T0pD0g Aug 23, 2015 at 17:11:04 (UTC)
Goto Top
Gibt es eine Möglichkeit die zeile auf eine bestimmte Breite zu begrenzen ?
Member: T0pD0g
T0pD0g Aug 23, 2015 at 17:12:38 (UTC)
Goto Top
Also wenn in der Zeile steht :

Hi heute ist es sonnig warm

Nur das Warm herauszufiltern indem man sagt erst ab Breite 22 bis 26 zu kopieren ?
Mitglied: 122990
Solution 122990 Aug 23, 2015, updated at Aug 26, 2015 at 18:28:26 (UTC)
Goto Top
Zitat von @T0pD0g:

Also wenn in der Zeile steht :

Hi heute ist es sonnig warm

Nur das Warm herauszufiltern indem man sagt erst ab Breite 22 bis 26 zu kopieren ?
Einfach die obige Zeile 3 so schreiben
strLine1 = Mid(arrLines(0),22,4)
http://ss64.com/vb/mid.html
Vorausgesetzt die Länge der Zeile ist immer lang genug zum extrahieren, sonst musst du vorher noch mit Len(arrLines(0)) auf die Länge der Zeile prüfen...
if Len(arrLines(0)) >= 26 then
    strLine1 = Mid(arrLines(0),22,4)
else
    msgbox "Zeile ist nicht lang genug"  
end if 
Member: T0pD0g
T0pD0g Aug 26, 2015 at 18:28:43 (UTC)
Goto Top
Danke :D
Du weisst echt viel
Member: T0pD0g
T0pD0g Aug 29, 2015 at 09:12:41 (UTC)
Goto Top
Bei mir wird jetzt allerdings mid als ungültiges Argument bzw. Prozedurauflauf bezeichnet
Member: T0pD0g
T0pD0g Aug 29, 2015 at 09:37:14 (UTC)
Goto Top
Also funktioniert dieses Auslesen nur wenn die Datei von FSO createt wurde und ist somit relativ nutzlos da ich gerne Ergebnisse von bat anfragen in die VBS einbinden wollte.
Mitglied: 122990
122990 Aug 29, 2015 at 11:18:59 (UTC)
Goto Top
Zitat von @T0pD0g:

Bei mir wird jetzt allerdings mid als ungültiges Argument bzw. Prozedurauflauf bezeichnet
Mid ist eine native VBS Funktion:

Da hast du dann die Parameter falsch benutzt, ganz einfach ... Lese und werde schlau:
https://msdn.microsoft.com/en-us/libRary/wffts6k3%28v=vs.84%29.aspx
Mitglied: 122990
122990 Aug 29, 2015 updated at 11:23:39 (UTC)
Goto Top
Zitat von @T0pD0g:
Also funktioniert dieses Auslesen nur wenn die Datei von FSO createt wurde
Nein, Quatsch mit Soße, das kann alle Textdateien auslesen, eventuell muss du das Encoding fürs auslesen deiner Datei anpassen wenn es Unicode-Files sind (4er Parameter bei OpenTextfile)
https://msdn.microsoft.com/en-us/library/aa265347%28v=vs.60%29.aspx