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

VBScript funktioniert nicht so ganz.

Mitglied: BlubbBlubb17

BlubbBlubb17 (Level 1) - Jetzt verbinden

06.07.2009, aktualisiert 12:56 Uhr, 4464 Aufrufe, 6 Kommentare

Guten Tag administrator Forum.
Ich suche seit ein paar Tagen nach einem Programm, dass mir das bearbeiten von mehreren html dateien auf einmal abnmimmt.
Ich habe hierzu ein VBscript von bastla gefunden und versucht auf mich anzupassen (danke nochmals an bastla).

Allerdings bekomme ich immer noch den Fehler
Ungültiges Zeichen bei Zeile 1 Zeichen 1
Der Fehlercode lautet 800A0408
und er gibt es mir als kompilierungsfehler an.

hier der Quelltext:

Pfad = "C:\Dokumente und Einstellungen\Boing\Desktop\hptests"
Typ = LCase("html")

Von = Array("<table width=""700"" border=""0"" cellspacing=""0"" cellpadding=""0"">" & vbCrLF & _
"<tr>" & vbCrLF & _
"<td width=""140"" align=""center""><a href=""index.html"">Start</a></td>" & vbCrLF & _
"<td width=""140"" align=""center"" valign=""middle""><a href=""kites.html"">Kites</a></td>" & vbCrLF & _
"<td width=""140"" align=""center"" valign=""middle""><a href=""Videos.html"">Videos</a></td>" & vbCrLF & _
"<td width=""140"" align=""center"" valign=""middle""><a href=""Testberichte.html"">Testberichte</a></td>" & vbCrLF & _
"<td width=""140"" align=""center"" valign=""middle""><a href=""Kontakt.html"">Kontakt</a></td>" & vbCrLF & _
"</table>")
Nach = Array("testtest")

Set fso=CreateObject("Scripting.FileSystemObject")
For Each File In fso.GetFolder(Pfad).Files
If LCase(fso.GetExtensionName(File.Path)) = Typ Then
Text = fso.OpenTextFile(File.Path).ReadAll
For i = 0 To UBound(Von)
Text = Replace(Text, Von(i), Nach(i), 1, -1, 1)
Next
fso.OpenTextFile(File.Path, 2, True).Write Text
End If
Next

Ich möchte mit dem Programm (in diesem Fall) eine Tabelle durch eine andere ersetzen. Aber ich wollte erstmal einen testlauf machen.

Grüße
Mitglied: 76109
06.07.2009 um 13:20 Uhr
Hallo BlubbBlubb17!

Wenn Du ein Array definierst, dann musst Du die einzelnen Strings durch ein Komma voneinander trennen z.B.:

Von = Array("string", "string", .....)

Gruß Dieter
Bitte warten ..
Mitglied: BlubbBlubb17
07.07.2009 um 17:35 Uhr
Hallo Dieter, danke für den Tipp.

nach jedem String? Also nach jedem "? oder wie müsste das bei

Von = Array("<table width=""700"" border=""0"" cellspacing=""0"" cellpadding=""0"">" & vbCrLF & _
"<tr>" & vbCrLF & _
"<td width=""140"" align=""center""><a href=""index.html"">Start</a></td>" & vbCrLF & _
"<td width=""140"" align=""center"" valign=""middle""><a href=""kites.html"">Kites</a></td>" & vbCrLF & _
"<td width=""140"" align=""center"" valign=""middle""><a href=""Videos.html"">Videos</a></td>" & vbCrLF & _
"<td width=""140"" align=""center"" valign=""middle""><a href=""Testberichte.html"">Testberichte</a></td>" & vbCrLF & _
"<td width=""140"" align=""center"" valign=""middle""><a href=""Kontakt.html"">Kontakt</a></td>" & vbCrLF & _
"</table>")

aussehen?

Ich komme einfach nicht dahinter wie ich das Script zum laufen bringe und langsam brauch ich das wirklich sonst komme ich mit meiner homepage nicht mehr dem nach was ich so alles vorhatte.

Grüße
Bitte warten ..
Mitglied: 76109
07.07.2009 um 18:38 Uhr
Hallo BlubbBlubb17!

So genau hatte ich mir Deinen Code letztes mal nicht angesehen. Mir ist nur aufgefallen, dass die Array's falsch definiert sind. D.h. Du hast nur Strings mit unsinng oft "" definiert.

Als String eine Zeichenfolge von Anfang bis Ende würde es in etwa so heissen:

Von = & _
"<table width=700 border=0 cellspacing=0 cellpadding=0>" & vbCrLF & _
"<tr>" & vbCrLF & _
"<td width=140 align=center><a href=index.html>Start</a></td>" & vbCrLF & _
"und so weiter"

Als Array mit Komma in einzelne Strings zerlegt in etwa so:
Von = Array( & _
"<table width=700 border=0 cellspacing=0 cellpadding=0>" & vbCrLF, & _
"<tr>" & vbCrLF, & _
"<td width=140 align=center><a href=index.html>Start</a></td>" & vbCrLF, & _
"und so weiter")

Dann wäre:
Von(0) = "<table width=700 border=0 cellspacing=0 cellpadding=0>" & vbCrLF
Von(1) = "<tr>" & vbCrLF
Von(2) = "<td width=140 align=center><a href=index.html>Start</a></td>" & vbCrLF
Von(3) = "und so weiter")

Sind innerhalb eines Strings die Zeichen ", wie vermutlich bei href ="text", dann
müsste dieser Teil so heissen: href=""text"">...

Wenn aber eine ganze Tabelle ersetzt weren soll, ist das viel zu umständlich.

Da kann man eine ganze Tabelle durch ein Split <tr> und </table> raushauen, sofern erkennbar ist, das es die gewünschte Tabelle ist, die rausfliegen soll.

Daher brauche ich schon genau Info's. Z.B. Eindeutig am Anfang ">Start<" und am Ende "Kontakt" oder definitiv ein </table>

Gruß Dieter
Bitte warten ..
Mitglied: BlubbBlubb17
07.07.2009 um 20:06 Uhr
Hallo Dieter,
das mit dem Zerlegen mit Kommas und dem VOn(0) (1).... verstehe ich jetzt nocht so ganz. Wann muss man das machen und wann nicht?

Da es aber um genau diese Tabelle geht würde mich auc heher deine letzte methode interessieren.
hier ist doch ein eindeutiger Start und ein eindeutiges </table>:

<table width="700" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="140" align="center""><a href="index.html">Start</a></td>
<td width="140" align="center" valign="middle"><a href="kites.html">Kites</a></td>
<td width="140" align="center" valign="middle"><a href="Videos.html">Videos</a></td>
<td width="140" align="center" valign="middle"><a href="Testberichte.html">Testberichte</a></td>
<td width="140" align="center" valign="middle"><a href="Kontakt.html">Kontakt</a></td>
</tr>
</table>

Wie müsste die Von Angabe denn dann aussehen?
Bitte warten ..
Mitglied: 76109
07.07.2009 um 20:37 Uhr
Hallo BlubbBlubb17!

Ja, wenn es in den verschiedenen Dateien nur diese eine Tabelle gibt, dann währe das natürlich optimal. Ansonsten währe wohl >Start< und >Kontakt< ein Indiz.

Schau Dir meine Beispiele doch mal etwas genauer an:

Das eine mit String ist eine einzelne komplette Zeichenfolge und das andere ist ein Array, dass meherere einzelne Zeichenfolgen enthält, die jeweis an einem Komma enden. Von(0) = String bis zum1. Komma, Von(1) = String nach dem 1. Komma bis zum 2.Komma usw.

Und eine For-Schleife mit UBound(Von) funktioniert NUR mit Arrays. Mit Strings geht das nicht. Den kann man höchtens mit Hilfe anderer Funktionen in einzelne Zeichen zerlegen.

String:
Von = "Eine Zeichenfolge"

Array:
Von = Array("1. Zeichfolge", "2. Zeichenfolge", "3. Zeichenfolge", "usw")
Das sind 4 Strings, die in Von(i=0) bis Von(i=3) angesprochen werden können.

Hoffe, dass war jetzt etwas verständlicher

Gruß Dieter
Bitte warten ..
Mitglied: 76109
08.07.2009 um 11:08 Uhr
Hallo BlubbBlubb17!

Also, dieser Code ersetzt eine vorhandene Tabelle mit der NewTable-Tabelle.

Existiert in einer Html-Datei keine Tabelle passiert nichts und wenn mehrere Tabellen existieren, dann passiert auch nichts. D.h., das nur dann die NewTable-Tabelle in die Html-Datei eingefügt wird, wenn diese explizit nur eine Tabelle enthält, die mit "<table" beginnt und mit "</table>" endet.

01.
Const Path = "C:\Dokumente und Einstellungen\Boing\Desktop\hptests" 
02.
 
03.
Dim Fso, File, Text, Text1, Text2, NewTable 
04.
 
05.
NewTable = "<table ....." & vbCrLf & _ 
06.
           "<tr>" & vbCrLf & _ 
07.
           "<.....=""Text mit Quote"" ......" & vbCrLf & _ 
08.
           "<..............................." & vbCrLf & _ 
09.
           "</table>"   'Hier kein vbCrLf mehr anfügen 
10.
 
11.
Set Fso = CreateObject("Scripting.FileSystemObject") 
12.
 
13.
For Each File In Fso.GetFolder(Path).Files 
14.
    If LCase(Right(File.Name, 5)) = ".html" Then 
15.
       Text = Split(Fso.OpenTextFile(File.Path).ReadAll, "<table") 
16.
       If UBound(Text) = 1 Then 
17.
           Text1 = Text(0) 
18.
           Text2 = Split(Text(1), "</table>", 2)(1) 
19.
           Text = Text1 & NewTable & Text2 
20.
           Fso.OpenTextFile(File.Path, 2, True).Write Text 
21.
       End If 
22.
   End If 
23.
Next
Gruß Dieter
Bitte warten ..
Ähnliche Inhalte
VB for Applications
VBScript und OR
gelöst Frage von InvisanVB for Applications5 Kommentare

Hi zusammen, derzeit bastel ich ein bisschen in VBScript rum. Leider habe ich mit dem OR Operator einige Probleme. ...

Microsoft Office
Outlook VBScript
gelöst Frage von NebellichtMicrosoft Office5 Kommentare

Hallo, seit ein paar Wochen werden keine VBScripte hinter den (Benutzerspezifschen) Outlook Formularen ausgeführt. Hat jemand eine Lösung parat ...

Windows 10
Dateien ganz ohne Berechtigung
Frage von StefanKittelWindows 106 Kommentare

Hallo, ich habe gestern etwas komisches gesehen und wollte mal Fragen ob Jemand eine Idee dazu hat. Auf einem ...

JavaScript
Onclick ganzes Div mitsenden
Frage von miichiii9JavaScript3 Kommentare

Hallo Miteinander Ich habe Folgendes Problem: Wie Ihr im Code unten seht, habe ich ein Button der das div ...

Neue Wissensbeiträge
Windows 10

USB Maus und Tastatur versagen Dienst unter Windows 10

Erfahrungsbericht von hardykopff vor 1 TagWindows 105 Kommentare

Da steht man ziemlich dumm da, wenn der PC sich wegen fehlender USB Tastatur und Maus nicht bedienen lässt. ...

Administrator.de Feedback
Update der Seite: Alles zentriert
Information von Frank vor 1 TagAdministrator.de Feedback18 Kommentare

Hallo User, die größte Änderung von Release 5.8 ist das Zentrieren der Webseite (auf großen Bildschirmen) und ein "Welcome"-Teaser ...

Humor (lol)

WhatsApp-Nachrichten endlich auch per Bluetooth versendbar

Information von BassFishFox vor 2 TagenHumor (lol)4 Kommentare

Genau darauf habe ich gewartet! ;-) Der beliebte Messaging-Dienst WhatsApp erhält eine praktische neue Funktion: Ab dem nächsten Update ...

Google Android

Googles "Android Enterprise Recommended" für Unternehmen

Information von kgborn vor 2 TagenGoogle Android3 Kommentare

Hier eine Information, die für Administratoren und Verantwortliche in Unternehmen, die für die Beschaffung und das Rollout von Android-Geräten ...

Heiß diskutierte Inhalte
Speicherkarten
Vergessliche USB-Sticks?
Frage von hanheikSpeicherkarten14 Kommentare

Ich habe in den letzten Tagen 500 USB-Sticks mit Bilddateien bespielt. Obwohl ich die Dateien mit größter Sorgfalt kopiert ...

Windows Server
NTFS Berechtigungen Ordnerstruktur
Frage von hukahu23489Windows Server11 Kommentare

Hallo, ich bin seit kurzem in einer neuen IT-Abteilung und bin über das Berechtigungskonzept des Unternehmens sehr schockiert. Ich ...

Exchange Server
NDR umleiten
Frage von isomasterExchange Server10 Kommentare

Hallo Kollege, ich habe ein Problem mit dem Exchange Server. Wir haben unsere info@ Adresse als Verteilergruppe eingebunden (so ...

Windows Server
Standortvernetzung zu einem Strato VServer (Windows)
Frage von matzefratze81Windows Server10 Kommentare

Moin, ich komme aus einem Enterprise-Umfeld und habe den Fehler gemacht, dass ich mich auf ein kleines Unternehmen eingelassen ...