VisualBasic VBScript zum konvertieren von TXT nach HTML

xxtekilaxx

Cadet 4th Year
Registriert
März 2008
Beiträge
70
Hallo liebe Computerbase-Freunde,

ich bräuchte mal eben eure Hilfe und zwar habe ich folgendes Problem:

Ich such ein VBS (Visual Basic Script) mit welchem man einen Textdatei (*txt) in eine HTML Datei konvertieren kann.

Habe schon ewig gesucht aber Google liefert nur Lösungen für VB, VBA und VB6 und damit kann ich nichts anfangen.

Wäre extrem nett wenn mir jemand helfen könnte.

Grüße
 
Also mit den Infos kann ja kein mensch was anfangen.

Ansonsten einfach mal die *.txt als *.html speichern
 
dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
fso.CopyFile "C:\test.txt", "C:\test.html", True
set fso = nothing

sowas? ergooglet in 5sek mit vbs script dateiname ändern.

lg
fire
 
Und wo ist da sein VBS Script was der TE sucht? Das Umbenennen ist ja auch ohne Tool möglich.
 
Die Frage ist schon etwas unpräzise. Ich würde es noch so verstehen, dass das HTML-Frame (html-tag, charset, title ...) oben bzw. unten an die txt-datei drangeklebt werden müssen. Aber all in All ist das doch in ein paar Minuten selbst zusammenprogrammiert, oder wo ist da jetzt der Pferdefuß?
 
firexs schrieb:
Das Umbenennen ist ja auch ohne Tool möglich.
Vielleicht sucht er nur ein Script, weil er es nicht besser weiß? Er will konvertieren, nicht umbenennen!
Und dieses Tool kann mehr, als nur umbenennen.
 
Okay war vielleicht etwas unverständlich.
Ich schreibe in die Textdatei werte durch ein Tabstopp (oder durch ein ";") getrennt hinein. Später soll er nun diese Textdatei in eine HTML Tabelle konvertieren. Sprich:
die Werte der Textdatei einlesen und als HTML Tabelle in einer HTML Datei speichern.
 
Das heißt im Klartext?
Sorry bin da nicht so wirklich fit auf dem Gebiet...

OT: Wenigstens en Ulmer Spatz :P
 
http://www.regular-expressions.info/vbscript.html
Also
Code:
set data=textfile 'Pseudocode
Dim regex=new RegEx
regex.Global=true
regex.Pattern="\n"
data=regex.replace(data,"</td></tr><tr><td>")
regex.Pattern="\t"
data=regex.replace(data,"</td><td>")
data="<!doctype html><html><head><title></title></head><body><table><tr><td>"&data&"</td></tr></table></body></html>
Save(data)'Pseudofunktion
 
Wie folgt sieht es jetzt aus:
Code:
'----Deklaration der Variablen-------------------------------------------------------
Dim Name, lastn, street, plz, place, phone, strFile, suchstring, pfad, pfad1,i, arry(2000)
'------------------------------------------------------------------------------------

'------------------------------------------------------------------------------------
'----Programmblock ------------------------------------------------------------------
'------------------------------------------------------------------------------------

'----Frage wo die Datei gespeichert werden soll/ wo sie gespeichert ist--------------
pfad = InputBox ("Geben Sie den Speicherort der Datei an (Endend mit einem '\'). ACHTUNG! Es werden teilweise Administratorenrechte benötigt!")
On Error Resume Next
pfad1 = pfad+"adresses.txt"

'------------------------------------------------------------------------------------
'-----Überprüfung ob Datei schon vorhanden-------------------------------------------
'----Auswählen des Systemobjektes----------------------------------------------------
set objFSO = createobject("Scripting.FileSystemObject")
'----Festlegung einer Variablen zum Speicherort der Datei----------------------------
strFile = pfad1
If objFSO.FileExists(strFile) Then
'----Meldung das Datei schon vorhanden ist-------------------------------------------
MsgBox "Daten werden in bestehende Datei geschrieben!"
Else
'----Auswählen des Systemobjektes----------------------------------------------------
Set fso = CreateObject("Scripting.FileSystemObject")
'----Erstellen der *txt Datei--------------------------------------------------------
Set Daten = fso.CreateTextFile(pfad1, True)
'----Eintragen der Spaltenüberschriften in die *txt Liste----------------------------
Daten.WriteLine ("Name" & vbTab &  vbTab &"Nachname" & vbTab &  vbTab &"Straße & Hausnummer"_
& vbTab &  vbTab &"PLZ" & vbTab &  vbTab &"Wohnort" & vbTab &  vbTab &"Telefonnummer")
End If
'-----Ende der Überprüfung ob Datei vorhanden----------------------------------------
'------------------------------------------------------------------------------------

'----Abfragen der persönlichen Daten-------------------------------------------------
Name = InputBox ("Bitte geben Sie den Vornamen ein:")
lastn = InputBox ("Bitte geben Sie den Nachnamen ein:")
street = InputBox ("Bitte geben Sie die Straße und Hausnummer ein:")
plz = InputBox ("Bitte geben Sie die PLZ ein:")
place = InputBox ("Bitte geben Sie den Wohnort an:")
phone = InputBox ("Bitte geben Sie die Telefonnummer ein:")
'----Abfrage ob die Daten gespeichert werden sollen----------------------------------
If MsgBox ("Wollen Sie folgende Daten speichern?  " & Name &" "& lastn &" "& street _
&" "& plz &" "&place &" "&phone, vbYesNo + vbInformation) = vbYes Then
'------------------------------------------------------------------------------------
Set fso = CreateObject("Scripting.FileSystemObject")
Set oFile = fso.OpenTextFile(pfad1,8,true)
WScript.Sleep 3000
'----Schreibe die Daten der Datei in die Liste----------------------------------------
oFile.WriteLine (Name & vbTab &  vbTab & lastn & vbTab & vbTab & street & vbTab &_
 vbTab & plz & vbTab & vbTab & place & vbTab & vbTab & phone)
End If
'----Ende der Abfrage des Speicherns--------------------------------------------------


'----Abfrage ob nach Datensätzen gesucht werden soll----------------------------------
If MsgBox ("Wollen Sie nach bestimmten Datensätzen suchen?", vbYesNo + vbInformation) = vbYes Then
'----Aufforderung zur Eingabe des Suchstrings-----------------------------------------
suchstring = InputBox ("Bitte geben Sie den gesuchten Datensatz ein:")
'----Suchen des Strings (der Zeichenfolge)--------------------------------------------
Set fso = CreateObject("Scripting.FileSystemObject")
set f = fso.getFile(pfad1)
set f = f.OpenAsTextStream(1)
i = 0 
do while not f.AtEndOfStream
       l = f.readLine()
       if instr(1,l, suchstring) <> 0 then		
               Msgbox "Suchstring gefunden " & "in Zeile: " & i
       end If
       i = i+1


Loop

End If

		

If MsgBox ("Als HTML Tabelle speichern?", vbYesNo + vbInformation) = vbYes Then

'HIER CODE FÜR HTML UMWANDLUNG EINTRAGEN
set data=pfad1
Dim regex=new RegEx
regex.Global=true
regex.Pattern="\n"
data=regex.replace(data,"</td></tr><tr><td>")
regex.Pattern="\t"
data=regex.replace(data,"</td><td>")
data="<!doctype html><html><head><title></title></head><body><table><tr><td>"&data&"</td></tr></table></body></html>
Save(data)

End If
'-------------------------------------------------------------------------------------
'----Ende des Programmes--------------------------------------------------------------
'-------------------------------------------------------------------------------------

Was stimmt noch nicht? :)
 
Zuletzt bearbeitet:
Save musst du durch eine Speicherroutine ersetzten also irgendwas mit deinem fso.

Warum baust du ein Wscript.Sleep 3000 ein?

Pfad1 enthält doch den Dateinamen, da sollte aber der DateiINHALT rein, also mit fso öffnen und dann komplett einlesen.

Warum machst du eigentlich keine datenbank dafür, weil das ist genau ein Datenbankszenario.
 
Mir ist noch nicht ganz klar, was du mit dem Script im endeffekt machen willst.

Ist es zwingend Notwendig, dass anschließend eine HTML Datei herraus kommt oder geht es dir rein um die darstellung?

Wenn es dir nur rein um die Darstellung geht, würde ich eher mit jQuery o.ä. arbeiten. Wenn du es dynamisch erstellen lässt deine Seite, hast du nicht zig verschiedene Seiten, sondern nur eine, bei der du dann den Pfad angeben musst.

Alternativ könntest du dir auch überlegen die Daten in einer XML-Struktur abzulegen und mit XLST anzeigen lassen.

Willst du unbedingt bei VBScript bleiben, würd ich von der Methode mit den Regexp weggehen und lieber mit Methoden arbeiten mit denen ich mir die einzelnen Tags erstelle.
 
Zurück
Oben