147. Text am Anfang und Ede eines Textes mit VBS einfügen und den Text im HTML-Dokument mit Javascript auslesen

Einleitung

Kleines Projekt aus zwei Komponenten in mein öffentliches Tagebuch - Das Einfügen von Text  am Anfang und Ende eines Textdokumentes  ist zumindest mit VBS eine einfache Sache von sieben Zeilen.

Gerade, wenn man z. B. Text zur Erstellung einer Webseite braucht, sind div-Elemente oder p am Anfang und Ende als Tags unersetzlich. Als Erweiterung dann, wie ich an den Text herankomme per id und der getElementById - Methode, die alle Browser interpretieren können. Ich weiß, ich habe einen ausführlichen Javascriptbereich, aber da diese beiden Komponenten zusammengehören, wird das hier als Zweikomponententip eruiert...

Code 1 VBS

Textdokument erstellen, Code eintragen und z. B. probe.vbs umbenennen und ein zweites Textdokument mit Namen irgendein.txt erstellen:

Dim oFSO1, text1, oFile4
  set oFSO1=CreateObject("Scripting.FileSystemObject")
  set oFile4=oFSO1.OpenTextFile("irgendein.txt",1,true)
        text1=oFile4.ReadAll
  set oFile4=oFSO1.OpenTextFile("irgendein.txt",2,true)
  oFile4.WriteLine "<div id=masterpass class=""hideClass"" >" &  text1 & "</div>"""
  oFile4.Close



In der ersten Zeile wurden etwas schlampig Variablennamen definiert...
In der zweiten Zeile wird wie üblich in VBS eine leere Arbeitsumgebung als Hülle geschaffen,
die in der dritten Zeile mit einem Textdokument im Lesemodus (1) geöffnet wird.

In diesem Modus kann dann in Zeile 4 die Variable text.1 mit dem Text von irgendein.txt gleichgesetzt werden.
Danach wechseln wir in Zeile fünf den Modus auf Schreibmodus. Die Hülle mit dem Textdokument wurde schließlich bereits in der Zeile 1 mit CreateObject geschaffen.
Der Modus 2 ist nun für irgendein.txt aktiviert und der folgende Befehl muss dann irgendwas mit destruktiven Schreiben zu tun haben...

Der Befehl Writeline leitet den Text in Anführungszeichen ein "irgendein.txt" Jetzt wird es ein wenig gemein, denn außer der div id masterpass kommt da noch der Befehl class="hideClass", also vergibt der Autor außer der ID noch eine Klasse für die CSS-Bearbeitung, die im Gegensatz zur einfachen id noch einen Text mit Anführungszeichen beinhaltet: class="hideClass".
Anführungszeichen können im WriteLine-Befehl  über Verdopplung oder über die Verwendung von chr(34) eingefügt werden.

Nachtrag 09.05.2014

Vielleicht doch mal die Variante mit chr(34), da die ein wenig cooler ist:

Dim oFSO1, text1, oFile4
  set oFSO1=CreateObject("Scripting.FileSystemObject")
  set oFile4=oFSO1.OpenTextFile("irgendein.txt",1,true)
        text1=oFile4.ReadAll
  set oFile4=oFSO1.OpenTextFile("irgendein.txt",2,true)
  oFile4.WriteLine "^<div id=masterpass class=" & chr(34) & "hideClass" &chr(34) & "^>"& text1 & "^</div^>"
  oFile4.Close





Das ist ein wenig komplizierter.

Ansonsten gilt die Regel: Ein kaufmännisches Und & trennt Textstücke. Variablennamen wie text1 ohne Anführungszeichen, Text von ihnen mit Anführungszeichen am Anfang und Ende auch nach jedem & und ab und zu verlangt die Konsole auch noch Setzung eines weiteren Anführungszeichens am Schluss, so dass dann unsinnigerweise drei Anführungszeichen am Ende stehen, was der pragmatischer Selbstlerner und Autodidakt achselzuckend zur Kenntnis nimmt

Na, Sie können also ohne bedenken <div> und </div> einfügen, gerne auch mit id, weil da eher für VBS unspektakuläre Zeichen erforderlich sind.

Ich beschränke mich auf den kürzesten Code  - dieses definieren von for reading mit 1 ist so etwas von unnötig...

Ach ja, liegt ihr Text in einem anderen Ordner, dann müssen Sie natürlich den Pfad anpassen, aber so mit relativen Bezug müssen Sie nicht jedes Mal den Pfad anpassen...

Und close am Ende gehört einfach dazu, weil dass nicht nur zum guten Stil gehört, sondern Sie ja auch nicht alle anderen Anwendugen offen stehen lassen...


--------


Zweiter Teil:  Text im HTML-Dokument mit Javascript auslesen

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 //EN">
<html>
 <head>
  <title>probemasterpass</title>
  <meta name="generator" content="HTML Studio">
<script language="JavaScript">
               function enc3() {
var mpassbrob=document.getElementById("masterpass").innerHTML;
        document.changeForm.dialog.value = mpassbrob
}

             </script>
 
 </head>
 <body>
<center>
 <FORM NAME="changeForm">
 <div><h1>Verschlüsselung mit Babel</h1><div>
<div><textarea id=dialog rows="10" cols="35"></textarea></div>
<br>
<div>
<INPUT TYPE="BUTTON" onClick="enc3()" VALUE="Button">

<br><div id=masterpass class="hideClass" >
Hier ein beliebiger Text
</div>
<style>
.hideClass
{display:none;}
</style>
<br></div>
<br>
</FORM></center>
</body>
</html>


Text kopieren und als HTML Seite aufrufen.

Im verborgenen DIV-Container steht also ein Text im Body, der bei Aufruf der Funktion f3 durch den Button gestartet wird und im Javascript im Headbereich mit der getElementById  Methode eingelesen wird:
var mpassbrob=document.getElementById("masterpass").innerHTML;

Die Variable massprob beinhaltet also den Text im Feld mit der Variable von masterpass also Hier ein beliebiger Text

Das kürzel innerhtml ist Pflicht ud irretierend zugleich, da es sich ja um einen Text handelt, der zwischen zwei Tags steht...

Vorsicht Falle, nur der Internetexplorer versteht innerText, aber da in einem HTML-Dokument bekannter maßen nur div-  Text  steht  kein wirklicher Beinbruch.

Beim Öffnen sehen Sie den unsichtbaren Text  Hier ein beliebiger Text nicht, da dieser mit der CSS-Klasse hideClass versehen wurde, dessen Befehl display:none die Anzeige des Textes erstmal verhindert.

Beim Drücken des Buttons wird der Text in das sichtbare Textfeld Dialog exportiert document.changeForm.dialog.value = mpassbrob , so dass Sie den Text in der Textärea angezeigt bekommen.

Sie haben also gerade gelernt, wie Sie Text als Variable in ein Javascript einlesen und dann irgendetwas damit machen bzw. wieder ausgeben können.

Der Vorteil ist die Flexibilität, da Sie durch dieses Prozeder Buchstaben einlesen können, die Javascript im Headbereich nicht akzeptieren würde - es sind alle Zeichen erlaubt, die im <div> Bereich erlaubt sind und das ist eine mächtige Waffe im Umgang mit Text.

Zumindest eingefleischte Javascriptschreiber wissen, was ich damit meine...




Impressum
Datenschutz