novedad
Goto Top

Suchen und ersetzen in VBS

Hallo, bin neu hier und dies ist mein erster Beitrag hier.
(tut mit leid wenn ich etwas kompliziert schreibe)

hab mir ein vb-script gebastelt das in einem html-code zwei sachen ersetzen soll, doch so richtig funktioniert das noch nicht.

am besten ich poste erst mal den (relevanten) teil meines scriptes:

 
set fso = createobject("scripting.filesystemobject")  

set file = fso.opentextfile("code.txt", 1)  

line = file.readline()

line = replace(line, "LINK", "http://www.google.de", 1, 1)  

line = replace(line, "BUTTON", "Startseite", 1, 1)  

file.close()

set file = fso.createtextfile("code.txt", true)  

file.writeline(line)



und den (relevanten) html-code

<SCRIPT LANGUAGE='JAVASCRIPT' TYPE='TEXT/JAVASCRIPT'>  
<!-- Popup -->
<!--
var win=null;
function NewWindow(mypage,myname,w,h,pos,infocus){
if(pos=="random"){myleft=(screen.width)?Math.floor(Math.random()*(screen.width-w)):100;mytop=(screen.height)?Math.floor(Math.random()*((screen.height-h)-75)):100;} 
if(pos=="center"){myleft=(screen.width)?(screen.width-w)/2:100;mytop=(screen.height)?(screen.height-h)/2:100;} 
else if((pos!='center' && pos!="random") || pos==null){myleft=0;mytop=20} 
settings="width=" + w + ",height=" + h + ",top=" + mytop + ",left=" + myleft + ",scrollbars=yes,location=yes,directories=yes,status=yes,menubar=yes,toolbar=yes,resizable=yes";win=window.open(mypage,myname,settings); 
win.focus();}
// -->
</script>
<input type="button" name="B1" value="BUTTON"  
onClick="NewWindow('LINK','mypopup','1024','768','center','front');">  

wenn ich mein script aber nun auf den html-code loslasse schreibt er mir nur die erste Zeile meines html-codes neu und den rest lässt
er weg

das sieht dann so aus:

<SCRIPT LANGUAGE='JAVASCRIPT' TYPE='TEXT/JAVASCRIPT'>  

wie bekomme ich es nun hin das der Text durchsucht wird und die beiden Sachen (Button und Link) durch die von mir gewünschten Sachen ersetzt werden?

Ich freue mich auf eure Hilfe

Gruß novedad

Content-Key: 142598

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

Printed on: April 26, 2024 at 22:04 o'clock

Member: AndreasHoster
AndreasHoster May 11, 2010 at 09:59:22 (UTC)
Goto Top
Na ja, Dein Code liest genau EINE Zeile ein.
Mehr nicht.
Und schreibt auch nur genau diese eine Zeile.

Wieso sollte dann mehr im Ergebnis stehen?
Einfachste Lösung wäre:
set fso = createobject("scripting.filesystemobject")  
set file = fso.opentextfile("code.txt", 1)  
line = file.readAll()
line = replace(line, "LINK", "http://www.google.de", 1, 1)  
line = replace(line, "BUTTON", "Startseite", 1, 1)  
file.close
set file = fso.createtextfile("code.txt", true)  
file.write(line)
file.close
Wobei der Speicherverbrauch bei ReadAll, wenn die Datei sehr groß ist, exorbitant wird.
Ansonsten sollte man die Datei Zeile für Zeile einlesen:
set fso = createobject("scripting.filesystemobject")  
set file = fso.opentextfile("code.txt", 1)  
while not  file.AtEndOfStream
   line = file.readline()
wend 
file.close
Und bei der Ausgabe natürlich Zeile für Zeile schreiben.
Mitglied: 77559
77559 May 11, 2010 at 10:14:42 (UTC)
Goto Top
Wobei,wenn mehrere Ersetzungen möglich sind, im Replace die letzte 1 (=Anzahl) wegzulassen oder durch eine -1 zu ersetzen wäre.

Gruß
LotPings
Member: novedad
novedad May 12, 2010 at 18:55:24 (UTC)
Goto Top
danke!

genau das was ich gesucht habe

Gruß novedad