Hallo,
Vorab:
Ich bräuchte Hilfe, bei einem für mich nicht zu lösendem Problem, mit einem VBScript in einer HTA Anwendung.
Bin was VBA angeht noch sehr unerfahren und habe bisher trotz mehrerer Stunden suche einfach nichts finden können, was mir weiterhelfen würde.
Würde mich sehr über Antworten und jede noch so kleine Hilfestellung freuen:
Vorhaben:
Ich würde gerne eine Art „News Board „ in einer HTA Anwendung realisieren.
Die HTA soll auf 2-3 Client PCs laufen, es sollen kurze Infos “News“ hinzugefügt werden und gelöscht werden können. die Ausgabe-Seite wird per java script nach einer bestimmten Zeit neu geladen.
leider ist in der Umgebung kein Webserver verfügbar, das ganze läuft auf einem lokalen Netzwerkpfad
Stand:
Das Speichern neuer Datensätze so wie das Auslesen der TXT-Datei klappt soweit.
Beim Speichern vergebe ich jedes mal eine neue „ID“ anhand der Anzahl der Einträge.
mit dieser soll später der gewählte Eintrag gelöscht werden. ( ID1, ID2 usw. ) evtl. wäre es hier besser, als ID einen „Zeitstempel“ zu verwenden aber erst mal muss mein Hauptproblem gelöst werden.
Beim Speichern werden die einzelnen Eingabefelder in eine txt-Datei angehängt und jeweils mit einem Trennzeichen „;.;“ von einander getrennt.
Beim Auslesen, wird die Datei zeilenweise in ein array gelesen, die Zeilen werden dann an dem Trennzeichen gesplittet, um die Einzelnen Werte wieder verarbeiten zu können.
Problem:
Ich schaffe es leider nicht, mit vbScript/HTA eine Dynamisch Ausgabe zu erzeugen, bei welcher dann über einen „löschen“ Button die ID des gewählten Eintrags übergeben werden kann,
„ kurz gesagt, ich bekomme das Script zum Löschen eines bestimmten Eintrags einfach nicht zum laufen“
Fehlermeldung beim betätigen des senden Buttons in der Löschfunktion " Das objekt unterstützt diese Eigenschaft oder Methode nicht.: 'DasFormular.hiddenBox'
Das script beinhaltet 6 Dateien.
lesen.html
löschen.html
schreiben.html
menue.html
start.hta
test.txt
lesen.html
schreiben.html << geändert 9.06.2013 1:53
löschen.html <<< geändert 8.06.2013 13:20
hier habe ich das Problem, dass ich den Wert (ID) der Dynamisch erzeugten Ausgabe nicht an die löschfunktion übergeben bekomme.
die löschfunktion ist noch unvollständig "document.write(DasFormular.hiddenBox.value)"
menue.html
start.hta
und noch eine leer Text-Datei mit dem Namen "test.txt"
alle Dateien sind zum Testen im Ordner C:\test
Vorab:
Ich bräuchte Hilfe, bei einem für mich nicht zu lösendem Problem, mit einem VBScript in einer HTA Anwendung.
Bin was VBA angeht noch sehr unerfahren und habe bisher trotz mehrerer Stunden suche einfach nichts finden können, was mir weiterhelfen würde.
Würde mich sehr über Antworten und jede noch so kleine Hilfestellung freuen:
Vorhaben:
Ich würde gerne eine Art „News Board „ in einer HTA Anwendung realisieren.
Die HTA soll auf 2-3 Client PCs laufen, es sollen kurze Infos “News“ hinzugefügt werden und gelöscht werden können. die Ausgabe-Seite wird per java script nach einer bestimmten Zeit neu geladen.
leider ist in der Umgebung kein Webserver verfügbar, das ganze läuft auf einem lokalen Netzwerkpfad
Stand:
Das Speichern neuer Datensätze so wie das Auslesen der TXT-Datei klappt soweit.
Beim Speichern vergebe ich jedes mal eine neue „ID“ anhand der Anzahl der Einträge.
mit dieser soll später der gewählte Eintrag gelöscht werden. ( ID1, ID2 usw. ) evtl. wäre es hier besser, als ID einen „Zeitstempel“ zu verwenden aber erst mal muss mein Hauptproblem gelöst werden.
Beim Speichern werden die einzelnen Eingabefelder in eine txt-Datei angehängt und jeweils mit einem Trennzeichen „;.;“ von einander getrennt.
Beim Auslesen, wird die Datei zeilenweise in ein array gelesen, die Zeilen werden dann an dem Trennzeichen gesplittet, um die Einzelnen Werte wieder verarbeiten zu können.
Problem:
Ich schaffe es leider nicht, mit vbScript/HTA eine Dynamisch Ausgabe zu erzeugen, bei welcher dann über einen „löschen“ Button die ID des gewählten Eintrags übergeben werden kann,
„ kurz gesagt, ich bekomme das Script zum Löschen eines bestimmten Eintrags einfach nicht zum laufen“
Fehlermeldung beim betätigen des senden Buttons in der Löschfunktion " Das objekt unterstützt diese Eigenschaft oder Methode nicht.: 'DasFormular.hiddenBox'
Das script beinhaltet 6 Dateien.
lesen.html
löschen.html
schreiben.html
menue.html
start.hta
test.txt
lesen.html
Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>Ohne_Titel_1</title>
<style type="text/css">.auto-style1 { background-color: #0099FF; width: 62px}.auto-style2 { background-color: #0099FF; width: 238px}.auto-style3 { border: 1px solid #0000FF; width: 238px}</style>
</head>
<script type="text/vbscript">
</script>
<body>
<script type="text/vbscript">
Dim arrFileLines()
i = 0
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("C:\test\test.txt", 1)
Do Until objFile.AtEndOfStream
Redim Preserve arrFileLines(i)
arrFileLines(i) = objFile.ReadLine
i = i + 1
Loop
document.write("Anzahl der Einträge:" & i & "<br><br>")
objFile.Close
if i = 0 Then
document.write( "<br><br>Es sind keine Einträge vorhanden." )
else
For l = Ubound(arrFileLines) to LBound(arrFileLines) Step -1
'document.write( arrFileLines(l))
strNextLine = arrFileLines(l)
arrServiceList = Split(strNextLine , ";.;")
document.write( arrServiceList(0))
document.write( "<table style=width: 238px><tr><td class=auto-style2 >" & arrServiceList(1))
document.write( "</td></tr><tr><td class=auto-style3 >" & arrServiceList(2))
document.write( "</td></tr><tr><td class=auto-style3 >" & arrServiceList(3))
document.write( "</td></tr></table><br>" )
Next
End if
</script>
</body>
</html>
schreiben.html << geändert 9.06.2013 1:53
Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>Ohne_Titel_1</title>
</head>
<script language="vbscript">
Sub WriteTxt_OnClick()
Const strFileName = "c:\test\test.txt"
Dim fso, myFile, iCount, d
d = Day(now)& Month(now)&Year(now)& Hour(now)&Minute(now)&Second(now)
iCount=1
Set fso = CreateObject("Scripting.FileSystemObject")
Set myFile = fso.OpenTextFile(strFileName, 1) ' nur Lesezugriff
Do While myFile.AtEndOfStream <> True
If Left(myFile.ReadLine, 2) = "ID" Then
iCount = iCount + 1
End If
Loop
' txt.Write document.neuer_Eintrag.ueberschrift.value & VBCRLF
' inhalt = document.neuer_Eintrag.ueberschrift.value
myFile.Close
' document.write("Es wurden " & iCount & " Zeilen gefunden." )
Dim fso2, txt
Set fso2 = CreateObject("Scripting.FileSystemObject")
Set txt = fso2.openTextFile(strFileName, 8, False)
txt.Write d&";.;"&document.neuer_Eintrag.ueberschrift.value & ";.;"
txt.Write document.neuer_Eintrag.text.value & ";.;"
txt.Write document.neuer_Eintrag.Author.value & VBCRLF
' inhalt = document.neuer_Eintrag.ueberschrift.value
' document.write(inhalt)
document.write("Eintrag erfolgreich hinzugefügt: <br>Anzahl der Einträge:"& iCount)
End Sub
</script>
<body>
<script language="vbscript">
</script>
<form name="neuer_Eintrag">
<input name="ueberschrift" type="text"><br>
<textarea name="text" style="width: 512px; height: 41px"></textarea><br>
<input name="Author" type="text"><br>
<input type="button" value="Eintrag schreiben" name="WriteTxt">
</form>
</body>
</html>
löschen.html <<< geändert 8.06.2013 13:20
hier habe ich das Problem, dass ich den Wert (ID) der Dynamisch erzeugten Ausgabe nicht an die löschfunktion übergeben bekomme.
die löschfunktion ist noch unvollständig "document.write(DasFormular.hiddenBox.value)"
Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>Ohne_Titel_1</title>
<style type="text/css">.auto-style1 { background-color: #0099FF; width: 62px}.auto-style2 { background-color: #0099FF; width: 238px}.auto-style3 { border: 1px solid #0000FF; width: 238px}</style>
</head>
<SCRIPT LANGUAGE="VBScript">
<!--
Sub senden2()
Dim DasFormular
Set DasFormular = Document.del_Eintrag
Dim fso, txt, num, num2
document.write(DasFormular.hiddenBox.value) ' <<<<<<<<<<<<<< kann diesen Wert nicht verarbeiten ?!
End Sub
-->
</script>
<body>
<script type="text/vbscript">
Dim arrFileLines(), counter
i = 0
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile("C:\test\test.txt", 1)
Do Until objFile.AtEndOfStream
Redim Preserve arrFileLines(i)
arrFileLines(i) = objFile.ReadLine
i = i + 1
Loop
objFile.Close
counter = 0
For l = Ubound(arrFileLines) to LBound(arrFileLines) Step -1
counter = counter + 1
strNextLine = arrFileLines(l)
arrSplitValues = Split(strNextLine , ";.;")
IDparameter = arrSplitValues(0)
document.write( "<form name=del_Eintrag><table style=width: 300px><tr><td class=auto-style2 >" & arrSplitValues(1))
document.write( "</td><td class=auto-style1 rowspan=3><input name=hiddenBox type=text value="&IDparameter&" style=width: 60px /><br>")
document.write( "<input name=senden type=button value=senden onClick=senden2></td></tr><tr><td class=auto-style3 >" & arrSplitValues(2))
document.write( "</td></tr><tr><td class=auto-style3 >" & arrSplitValues(3))
document.write( "</td></tr></table></form>" )
Next
counter_full = counter
</script>
</body>
</html>
menue.html
Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
<title>Ohne_Titel_1</title>
<base target="_IF" />
</head>
<body>
<p><a href="lesen.html">lesen</a></p>
<p><a href="schreiben.html">schreiben</a></p>
<p><a href="löschen.html">löschen</a></p>
</body>
</html>
start.hta
Code:
<html>
<head>
<hta:application ID="NEWS_VBS" APPLICATIONNAME="N_VBS" SingleInstance="Yes" caption="yes" ShowInTaskbar="yes" Border="thin" Scroll="yes" sysMenu="yes" navigable="yes" contextmenu="yes" selection="yes">
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<title>VBS-news</title>
</head>
<frameset cols="367,*">
<frame application="yes" name="_menue" scrolling="auto" src="menue.html" target="_IF">
<frame application="yes" name="_IF" scrolling="auto" src="lesen.html">
<noframes>
<body>
<p>Diese Seite verwendet Frames. Frames werden von Ihrem Browser aber nicht unterstützt.</p>
</body>
</noframes>
</frameset>
</html>
und noch eine leer Text-Datei mit dem Namen "test.txt"
alle Dateien sind zum Testen im Ordner C:\test
Zuletzt bearbeitet: