Top-Themen

Aktuelle Themen (A bis Z)

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

Suchen ersetzen vbs script ab Zeichen X

Frage Entwicklung Batch & Shell

Mitglied: svenac2010

svenac2010 (Level 1) - Jetzt verbinden

20.06.2013, aktualisiert 18:32 Uhr, 1980 Aufrufe, 7 Kommentare

Hallo,
ich verwendet folgendes Script um in einer CSV Datei Daten ersetzen zu lassen

01.
Dim objFso 
02.
 Dim objWshShell 
03.
 Set objFso = WScript.CreateObject("Scripting.FileSystemObject") 
04.
 Set objWshShell = WScript.CreateObject("WScript.Shell") 
05.
 
06.
 Dim dieDatei, Rueckgabe, dateiAngabe, Servername 
07.
 
08.
 dateiAngabe = "C:\temp\DTAG.csv" 
09.
  
10.
Set dieDatei = objFso.OpenTextFile(dateiAngabe, 1) 
11.
 Rueckgabe=Replace(dieDatei.ReadAll,"ISBN","DATG") 
12.
 Set dieDatei = objFso.OpenTextFile(dateiAngabe, 2) 
13.
 dieDatei.Write(Rueckgabe) 
14.
  
15.
 Set dieDatei = objFso.OpenTextFile(dateiAngabe, 1) 
16.
 Rueckgabe=Replace(dieDatei.ReadAll,"BTST","") 
17.
 Set dieDatei = objFso.OpenTextFile(dateiAngabe, 2) 
18.
 dieDatei.Write(Rueckgabe) 
19.
  
20.
  
21.
dieDatei.Close
Es wird nach ISBN gesucht und durch "DATG" ersetzt,
funktioniert auch soweit ganz gut,
nur was muss ich verändern, wenn er alles AB dem Zeichen"BTST" löschen soll und nicht wie in diesem Fall ersetzen durch ""

Über eine Information wäre ich dankbar.
Mitglied: colinardo
20.06.2013 um 18:55 Uhr
hi svenac2010,
01.
Rueckgabe = Left(dieDatei.ReadAll,Instr(1,dieDatei.ReadAll,"BTST")+4)
Uwe
Bitte warten ..
Mitglied: Biber
20.06.2013 um 19:52 Uhr
[OT]

Moin colinardo,

is' sich ja ein guter Plan - außer wenn nun in der behandelten Datei mal kein String "BTST" gefunden wird.
Dann ist die "neue" Datei auch nur Left(dieDatei.ReadAll, 0 +4 ) Zeichen lang.

Geht mich ja nix an, aber Schattenparker wie ich würden vor lauter Angst noch eine IF-Abfrage "isdenn Instr(,,) > 0" drumherumwickeln.

Grüße
Biber
[/OT]
Bitte warten ..
Mitglied: colinardo
20.06.2013 um 20:04 Uhr
Klar, ging ja nur ums Prinzip ohne den üblichen Kladeradatsch =8-)
Grüsse Uwe
Bitte warten ..
Mitglied: bastla
20.06.2013 um 21:55 Uhr
Hallo svenac2010!

Noch als Anmerkung: Das zwischenzeitliche Schreiben und neuerliche Einlesen ist relativ sinnfrei - da der gesamte Dateiinhalt sich ja ohnehin schon in der Variablen "Rueckgabe" befindet, kann dieser einfach per
01.
M = "BTST" 
02.
P = InStr(Rueckgabe, M) 
03.
If  P > 0 Then Rueckgabe = Left(Rueckgabe, P + Len(M))
aufbereitet und dann wieder geschrieben werden ...

Grüße
bastla
Bitte warten ..
Mitglied: svenac2010
21.06.2013, aktualisiert um 07:58 Uhr
Hallo,

vielen Dank für die Rückmeldungen

erweiter ich meinen code mit den Zeilen von Bastla
passiert selber nichts, daraufhin habe ich den Code so erweitert

01.
Dim objFso 
02.
 Dim objWshShell 
03.
 Set objFso = WScript.CreateObject("Scripting.FileSystemObject") 
04.
 Set objWshShell = WScript.CreateObject("WScript.Shell") 
05.
 
06.
 Dim dieDatei, Rueckgabe, dateiAngabe, Servername 
07.
 
08.
 dateiAngabe = "C:\temp\DTAG.csv" 
09.
  
10.
Set dieDatei = objFso.OpenTextFile(dateiAngabe, 1) 
11.
 Rueckgabe=Replace(dieDatei.ReadAll,"ISBN","DATG") 
12.
 Set dieDatei = objFso.OpenTextFile(dateiAngabe, 2) 
13.
 dieDatei.Write(Rueckgabe) 
14.
 
15.
 
16.
 M = "BTST" 
17.
 P = InStr(Rueckgabe, M) 
18.
  Set dieDatei = objFso.OpenTextFile(dateiAngabe, 1) 
19.
  If  P > 0 Then Rueckgabe = Left(Rueckgabe2, P + Len(M)) 
20.
   Set dieDatei = objFso.OpenTextFile(dateiAngabe, 2) 
21.
   dieDatei.Write(Rueckgabe)   
22.
 
23.
diedatei.close
leert er mir die gesamte Datei bis auf die erste Zeile

an welcher Stelle ist hier der Fehler?

Gruß
Sven
Bitte warten ..
Mitglied: colinardo
21.06.2013, aktualisiert um 09:29 Uhr
Hallo Sven,
da du eine CSV-Datei erwähnst, ist der String in jeder Zeile vorhanden ?
poste uns doch bitte mal ein Beispiel aus der CSV ...

p.s.
korrigierter Code bei einmaligem vorhanden sein des Strings "BTST" in der Datei
01.
Set objFso = WScript.CreateObject("Scripting.FileSystemObject") 
02.
Set objWshShell = WScript.CreateObject("WScript.Shell") 
03.
dateiAngabe = "C:\temp\DTAG.csv" 
04.
Set dieDatei = objFso.OpenTextFile(dateiAngabe, 1) 
05.
Rueckgabe=Replace(dieDateiRead.ReadAll,"ISBN","DATG") 
06.
dieDatei.Close() 
07.
Set dieDatei = objFso.OpenTextFile(dateiAngabe, 2) 
08.
M = "BTST" 
09.
P = InStr(Rueckgabe, M) 
10.
If P > 0 Then Rueckgabe = Left(Rueckgabe, P + Len(M)) 
11.
dieDatei.Write(Rueckgabe)   
12.
dieDatei.Close()
Alternativ Code für das kürzen jeder Zeile ab dem String "BTST"
01.
Const ForReading = 1 
02.
Const ForWriting = 2 
03.
Set objFSO = CreateObject("Scripting.FileSystemObject") 
04.
filePath = "C:\temp\DTAG.csv"  
05.
Set objTextFileRead = objFSO.OpenTextFile(filePath, ForReading) 
06.
strFinal = "" 
07.
Do Until objTextFileRead.AtEndOfStream 
08.
    strNextLine = objTextFileRead.Readline 
09.
    If strNextLine <> "" Then 
10.
  		strSearch = "BTST" 
11.
  		intStringPosition = InStr(strNextline, strSearch) 
12.
  		If intStringPosition > 0 Then  
13.
  			strFinal = strFinal & Left(strNextLine,intStringPosition + Len(strSearch)) & vbCrLf  
14.
  		Else 
15.
  			strFinal = strFinal & strNextLine & vbCrLf  
16.
  		End if 
17.
    End if 
18.
Loop 
19.
objTextFileRead.Close() 
20.
Set objTextFileWrite = objFSO.OpenTextFile(filePath, ForWriting) 
21.
objTextFileWrite.Write(strFinal) 
22.
objTextFileWrite.Close()
Bitte warten ..
Mitglied: Biber
21.06.2013, aktualisiert um 09:20 Uhr
[OT]
@svenac2010
Da warte ich schon seit Bestehen des Beitrags drauf, endlich mein "works as designed" loswerden zu können. Ich dachte mir schon, dass du das "alles" aus "alles löschen ab String x" im Titel und Anforderungsbeschreibung nicht so wörtlich meinst.

@colinardo
In den beiden letzten Schnipseln haben wir nun - wie bei einer echten Teamarbeit - bei den Variablennamen alle denkbaren Namenskonventionen verewigt.
Von "dateiAngabe" und "Rueckgabe" über "strNextLine" und "FinalString" nach "M" und "P" bis zum zusammengedenglischten "dieDateiWrite".

Im normalen Unternehmensalltag würden wir es jetzt genau so produktiv setzen.

Grüße
Biber
[/OT]
Bitte warten ..
Ähnliche Inhalte
VB for Applications
VBS - Suchen und Ersetzen in Word 2010 in Kopfzeile
gelöst Frage von JuckieVB for Applications7 Kommentare

Hallo zusammen, ich stehe bei einem VBS ein wenig auf dem Schlauch. Ich habe ein VBS, welches in Verzeichnissen ...

VB for Applications
VBS Suchen und Ersetzen bei UTF8 XML Dateien funktioniert nicht
gelöst Frage von NexxudusVB for Applications7 Kommentare

Hallo zusammen, ich verzweifel gerade an einer - eigentlich total primitiven- Aufgabe. Dazu muss ich sagen, dass ich mich ...

Entwicklung
Delphi-Script: Abgriff von Zeichen bis Zeichen
gelöst Frage von archivarioEntwicklung3 Kommentare

Hallo zúsammen, vielleicht kann mir jemand helfen. Ich muss in einem Delphi Programm per Script ein bestimmtes Zeichen rausfiltern ...

VB for Applications
VBScript: Hexwert durch Zeichen (String) ersetzen
gelöst Frage von GurkenhobelVB for Applications12 Kommentare

Hallo Gemeinde, ich benötige wieder einmal Euer sachkundiges Expertenwissen. Und zwar möchte ich ältere Textdokumente (erstellt um 2000, evtl. ...

Neue Wissensbeiträge
Apple

IOS 11.2.1 stopft HomeKit-Remote-Lücke

Tipp von BassFishFox vor 1 TagApple

Das Update für iPhone, iPad und Apple TV soll die Fernsteuerung von Smart-Home-Geräten wieder in vollem Umfang ermöglichen. Apple ...

Windows 10

Windows 10 v1709 EN murkst bei den Regionseinstellungen

Tipp von DerWoWusste vor 1 TagWindows 10

Dieser kurze Tipp richtet sich an den kleinen Personenkreis, der Win10 v1709 EN-US frisch installiert und dabei die englische ...

Webbrowser

Kein Ton bei Firefox Quantum über RDP

Tipp von Moddry vor 1 TagWebbrowser

Hallo Kollegen! Hatte das Problem, dass der neue Firefox bei mir auf der Kiste keinen Ton hat, wenn ich ...

Internet

EU-DSGVO: WHOIS soll weniger Informationen liefern

Information von sabines vor 1 TagInternet4 Kommentare

Wegen der europäische Datenschutzgrundverordnung stehen die Prozesse um die Registrierung von Domains auf dem Prüfstand. Sollte die Forderungen umgesetzt ...

Heiß diskutierte Inhalte
Windows Server
RODC kann nicht aus Domäne entfernt werden
Frage von NilsvLehnWindows Server18 Kommentare

HAllo, ich arbeite in einem Universitätsnetzwerk mit 3 Standorten. Die Standorte haben alle ein ESXi Cluster und auf diesen ...

Hardware
Kein Bild mit nur einer bestimmten Grafikkarten - Mainboard Konfiguration
gelöst Frage von bestelittHardware18 Kommentare

Hallo zusammen, ich hatte schon einmal eine ähnliche Frage gestellt. Damals hatte ich genau das gleiche Problem. Allerdings lies ...

Netzwerkmanagement
Mehrere Netzwerkadapter in einem PC zu einem Switch zusammenfügen
Frage von prodriveNetzwerkmanagement16 Kommentare

Hallo zusammen Vorweg, ich konnte schon einige IT-Probleme mit Hilfe dieses Forums lösen. Wirklich klasse hier! Doch für das ...

Hardware
Links klick bei Maus funktioniert nicht
gelöst Frage von Pablu23Hardware16 Kommentare

Hallo erstmal. Ich habe ein Problem mit meiner relativ alten maus jedoch denke ich nicht das es an der ...