Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

VBScript - Wert verändern

Frage Entwicklung VB for Applications

Mitglied: Butterblume

Butterblume (Level 1) - Jetzt verbinden

24.07.2008, aktualisiert 11:07 Uhr, 4162 Aufrufe, 2 Kommentare

Hallo zusammen,
hier habe ich einen VBScript geschrieben zum in einer Datei den Wert nach "TEST=" zu verändern!!!
Das ist die Substitute.val Datei:

01.
[SUBSTITUTIONS] 
02.
GESCHWINDIGKEIT=                                                                                                                                                                                                             
03.
TIME=12:00:00 AM 
04.
SPURS=86 
05.
JAZZ=94 
06.
TEMPERATURE=82 
07.
GAME_TIME=15:04 
08.
BUSH=49.9% 
09.
GORE=50.1% 
10.
TEST=rot 
11.
 
12.
[PAGE_SELECTION] 
13.
PROJECT=default 
14.
PAGE=Sponsor0 
15.
PREVIEW=0 
16.
DISPLAY=0 
17.
TRANSITIONING=0 
18.
 
19.
[SPECIAL] 
20.
LOAD_VARIABLE_DLL=1
Nun musste ich in meinem Script das kompliziert machen mit Kopieren und Löschen, weil in VBS man die Dateien nicht verändern kann. Nur dazu schreiben.
Hier mein Code:

01.
Set MyFiles = CreateObject("Scripting.FileSystemObject") 
02.
Const ForReading = 1, ForWriting = 2 
03.
 
04.
strEingabe = InputBox("Geben Sie die Variable ein") 
05.
strNeueZeile = "TEST="& strEingabe 
06.
 
07.
varDatei="d:\Substitute.val" 
08.
varTmpDatei="d:\TestOut.val" 
09.
Set fin = MyFiles.OpenTextFile(varDatei, ForReading) 
10.
Set fout = MyFiles.OpenTextFile(varTmpDatei, ForWriting, True) 
11.
 
12.
strSearch = "TEST=" 
13.
 
14.
do while not fin.AtEndOfStream 
15.
       strline = fin.readLine() 
16.
       if instr(1,strline, strSearch) = 0 then		 
17.
               'Zu entfernende Zeile nicht gefunden, also Zeile ausgeben 
18.
               fout.writeline strline 
19.
	else fout.WriteLine strNeueZeile 
20.
	end if 
21.
loop 
22.
 
23.
 
24.
Dim fso, objFile 
25.
Set fso = CreateObject("Scripting.FileSystemObject") 
26.
Set objFile = fso.GetFile("d:\Substitute.val") ' hier mit Pfadangabe 
27.
objFile.Name = "d:\Substitute.txt" ' hier ohne Pfadangebe 
28.
 
29.
    
30.
   dateiAngabe="d:\Substitute.txt" 
31.
   Set fso = CreateObject("Scripting.FileSystemObject") 
32.
   fso.DeleteFile(dateiAngabe) 
33.
 
34.
 
35.
Set fso = CreateObject("Scripting.FileSystemObject") 
36.
Set objFile = fso.GetFile("d:\TestOut.val") ' hier mit Pfadangabe 
37.
objFile.Name = "Substitute.val" ' hier ohne Pfadangebe
Das ist nicht fertig, der Script wird viel umfangreicher. Aber ich mache alles Schrittweise.
So nun hier habe ich den Script aus 3 Scripte zusammengeführt. Alle haben funktioniert aber zusammen nicht.

P.S- eine .val Datei kann ich nicht löschen darum diese Umbenennung ins .txt.
Nun sehe ich den Fehler nicht. Kann mir jemand helfen???

LG, Kristy
Mitglied: bastla
24.07.2008 um 10:48 Uhr
Hallo Butterblume!

P.S- eine .val Datei kann ich nicht löschen darum diese Umbenennung ins .txt.
Das hat wohl nichts mit dem Dateityp zu tun, sondern eher mit der Tatsache, dass Du "fin" (und auch "fout") noch nicht geschlossen hast, daher nach der Zeile 21:
01.
fout.Close 
02.
fin.Close
Wenn Du Dir die Temp-Datei ersparen möchtest, könntest Du die gesamte Datei (mit .ReadAll und Split() am Zeilenende = vbCrLF) in ein Array einlesen, dieses durchlaufen, um die richtige Zeile zu finden, und in diese Zeile dann den neuen Wert schreiben. Am Ende müsstest Du mit Join() aus dem Array wieder einen zusammenhängenden Text machen und diesen mit .Write in die (inzwischen geschlossene und wieder zum Schreiben geöffnete) Eingabedatei schreiben.

Grüße
bastla
Bitte warten ..
Mitglied: Butterblume
24.07.2008 um 11:07 Uhr
Das mit dem Schliessen habe ich inzwischen auch gemerkt und geändert. Jetzt funktioniert das.
Ja mein Script ist einbischen zu kompliziert, viel unnötiges Zeug da ich selber nicht weiss, wie das geht.
Und mit Array habe ich nicht so viel Kenntnis darum gehe ich nicht drauf ein.
Aber ich schaue mal, vielleicht versuche ich doch mit Array.

Danke bastla.

LG, Kristy
Bitte warten ..
Neuester Wissensbeitrag
Exchange Server

WSUS bietet CU22 für Exchange 2007 SP3 nicht an. EOL Exchange 2007

Tipp von DerWoWusste zum Thema Exchange Server ...

Ähnliche Inhalte
Microsoft Office
Excel Zählewenn aus Formel Wert (2)

Frage von cberndt zum Thema Microsoft Office ...

Basic
VBScript erweitern für Subfolder (8)

Frage von 132078 zum Thema Basic ...

Windows 7
VBScript - HTML Probleme mit Schriftgröße (5)

Frage von MedicalAd zum Thema Windows 7 ...

VB for Applications
gelöst Per Vbscript bestimmte Zeile ungeachtet der Nummerierung prüfen (7)

Frage von aletri zum Thema VB for Applications ...

Heiß diskutierte Inhalte
Exchange Server
Test-ActiveSyncConnectivity Error nach neuem Zertifikat (17)

Frage von Driphex zum Thema Exchange Server ...

Batch & Shell
gelöst Batch xls nach aktuellem Datum auslesen und email senden (14)

Frage von michi-ffm zum Thema Batch & Shell ...

Backup
Datensicherung ARCHIV (12)

Frage von fautec56 zum Thema Backup ...