Frage zur besseren Umsetzung meines VBS Scripts.
Ich habe ein VBS Script mit Hilfe des Forums erstellt und möchte dies nun verfeinern bzw. besser umsetzen.
Hallo,
ich habe mit Hilfe des Forums ein VBS Script erstellt welches eine CSV Datei ließt, den Header neu schreibt und nur gezielte Spalten wieder Zeile für Zeile ausgibt.
Das Script funktioniert inzwischen so wie ich es mir vorstelle. Nach der Fertigstellung habe ich nun festgestellt, dass die Variante wie ich das Thema angegangen bin vielleicht nicht die sinnvollste Variante war. Die Dateiauswahl z.B. funktioniert über eine Word.Application was nicht wirklich schön ist oder der SourceCode kann durch alle Anwender eingesehen und manipuliert werden.
Nun ist meine Frage mit welcher Sprache ich diese Anwendung ggf. besser umsetzen kann, ohne große Vorkenntnisse zu haben.
Hier vielleicht nochmal das Script:
Grüße
Yves
Hallo,
ich habe mit Hilfe des Forums ein VBS Script erstellt welches eine CSV Datei ließt, den Header neu schreibt und nur gezielte Spalten wieder Zeile für Zeile ausgibt.
Das Script funktioniert inzwischen so wie ich es mir vorstelle. Nach der Fertigstellung habe ich nun festgestellt, dass die Variante wie ich das Thema angegangen bin vielleicht nicht die sinnvollste Variante war. Die Dateiauswahl z.B. funktioniert über eine Word.Application was nicht wirklich schön ist oder der SourceCode kann durch alle Anwender eingesehen und manipuliert werden.
Nun ist meine Frage mit welcher Sprache ich diese Anwendung ggf. besser umsetzen kann, ohne große Vorkenntnisse zu haben.
Hier vielleicht nochmal das Script:
Const msoFileDialogOpen = 1
Set fso = CreateObject("Scripting.FileSystemObject")
Set objWord = CreateObject("Word.Application")
Set WshShell = CreateObject("WScript.Shell")
strInitialPath = WshShell.ExpandEnvironmentStrings("%USERPROFILE%") & "\Desktop\"
objWord.ChangeFileOpenDirectory(strInitialPath)
With objWord.FileDialog(msoFileDialogOpen)
.Title = "Bitte wählen Sie die Export-Datei aus."
.AllowMultiSelect = False
.Filters.Clear
.Filters.Add "DAT Files", "*.DAT"
.Filters.Add "CSV Files", "*.CSV"
.Filters.Add "All Files", "*.*"
If .Show = -1 Then 'short form
For Each File in .SelectedItems
Set objFile = fso.GetFile(File)
Next
Alt = objFile.Path
Neu = "NEU.DAT"
Delim = ";"
Leerzeichen = " "
Serie = "1"
Header = "A;B;C;D;E;F;G;H"
Set fso = CreateObject("Scripting.FileSystemObject")
Zeilen = Split(fso.OpenTextFile(Alt).ReadAll, vbCrLf)
Set DateiNeu = fso.CreateTextFile(Neu)
If Header <> "" Then
DateiNeu.WriteLine Header
Ab = 1
End If
For i = Ab To UBound(Zeilen)
If Trim(Zeilen(i)) = "" Then
ZeileNeu = Zeilen(i)
Else
Felder = Split(Zeilen(i), Delim)
ZeileNeu = _
Felder(0) & Delim & _
Felder(1) & Delim & _
Felder(2) & Delim & _
Felder(12) & Delim & _
Serie & Delim & _
Felder(13) & Delim & _
Leerzeichen & Delim & _
Felder(15)
DateiNeu.Write Prefix & ZeileNeu
Prefix = vbCrLf
End If
Next
Else
End If
End With
'Close Word
objWord.Quit
Grüße
Yves
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 174474
Url: https://administrator.de/contentid/174474
Ausgedruckt am: 26.11.2024 um 04:11 Uhr
3 Kommentare
Neuester Kommentar
Hallo!
als eine - vor allem leicht umzusetzende - Alternative könnte ich Dir .hta nahelegen. Verwendet ebenfalls VBScript, zusätzlich kannst Du HTML verwenden, wodurch die Grafik etwas ansehnlicher wird.
Das ganze kannst Du dann mit HTAEdit (freie Evaluationsvariante der Software findet Google) als .exe speichern.
Wenn Du noch die Verwendung der rechten Maustaste in Deiner .hta per JavaScript deaktivierst, dann hast Du - mit wirklich wenig Aufwand (da Du Deine bisherigen Ergebnisse weiterverwenden kannst - und dabei Word über Bord wirfst ) - Deine Anforderungen erfüllt.
(ok, bevor die Edi-Ausbesserer auf den Plan gerufen werden, sei erwähnt, dass der Quelltext dadurch nicht gänzlich uneinsehbar wird... aber Laien sind davon weitgehend ausgeschlossen...)
Alternativ dazu bleibt natürlich VB o. ä.
lg
gutes Gelingen
Edi
als eine - vor allem leicht umzusetzende - Alternative könnte ich Dir .hta nahelegen. Verwendet ebenfalls VBScript, zusätzlich kannst Du HTML verwenden, wodurch die Grafik etwas ansehnlicher wird.
Das ganze kannst Du dann mit HTAEdit (freie Evaluationsvariante der Software findet Google) als .exe speichern.
Wenn Du noch die Verwendung der rechten Maustaste in Deiner .hta per JavaScript deaktivierst, dann hast Du - mit wirklich wenig Aufwand (da Du Deine bisherigen Ergebnisse weiterverwenden kannst - und dabei Word über Bord wirfst ) - Deine Anforderungen erfüllt.
(ok, bevor die Edi-Ausbesserer auf den Plan gerufen werden, sei erwähnt, dass der Quelltext dadurch nicht gänzlich uneinsehbar wird... aber Laien sind davon weitgehend ausgeschlossen...)
Alternativ dazu bleibt natürlich VB o. ä.
lg
gutes Gelingen
Edi
Hallo!
HTAedit ist tatsächlich "nur" ein editor, der allerdings die einmalige Möglichkeit bietet, ein fertiges Projekt in eine .exe zu konvertieren (es wird dann eine selbstentpackende .zip daraus, was der Benutzer aber kaum mitbekommen dürfte....)
Als "Sprache" empfahl ich Dir .hta, da dies ein Mischmasch aus VBScript (was Du jetzt schon beherrscht?!) und html (was einfachst zu erlernen ist).
Zur Funktionsweise schaust Du Dir am besten folgendes an:
http://www.microsoft.com/download/en/details.aspx?displaylang=en&id ...
es öffnet sich nach Download eine .hta, die Dir die Syntax einfachst nahebringt...
In Deinem Fall kannst Du Dir dadurch den ganzen
Teil ersparen, da du dies einfach ersetzt durch (Teil stammt aus einer meiner Anwendungen - sollte nur zur Veranschaulichung dienen....
Hoffe, Du kannst mit dem Schnipsel etwas anfangen,
lg
Edi
HTAedit ist tatsächlich "nur" ein editor, der allerdings die einmalige Möglichkeit bietet, ein fertiges Projekt in eine .exe zu konvertieren (es wird dann eine selbstentpackende .zip daraus, was der Benutzer aber kaum mitbekommen dürfte....)
Als "Sprache" empfahl ich Dir .hta, da dies ein Mischmasch aus VBScript (was Du jetzt schon beherrscht?!) und html (was einfachst zu erlernen ist).
Zur Funktionsweise schaust Du Dir am besten folgendes an:
http://www.microsoft.com/download/en/details.aspx?displaylang=en&id ...
es öffnet sich nach Download eine .hta, die Dir die Syntax einfachst nahebringt...
In Deinem Fall kannst Du Dir dadurch den ganzen
objWord.ChangeFileOpenDirectory(strInitialPath)
ff
Sub Menue1
a = "<input style=""background-color: lightgrey"" type=""Text"" name=""Path"" value="""" size=""50"" maxlength="""" readonly> <input type=""button"" name=""run_button"" value=""Datenbank Pfad auswählen..."" onClick=""SaveAs"">
m1.InnerHTML = a
Path.value = DBPath
maxnomb.value = max
End Sub
Sub SaveAs 'ORDNER AUSWÄHLEN FÜR DB
Path.value = PickFolder
dbort = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & DBPath & "files.mdb"
End Sub
'===========================================================================================================
Function PickFolder
dim SA, Path
Set SA = CreateObject("Shell.Application")
Set Path = SA.BrowseForFolder(0, "Choose a folder", 0)
If (Not Path Is Nothing) Then
DBPath = Path.Items.Item.path
If len(DBPath) > 3 then
DBPath = DBpath & "\"
End If
PickFolder = DBPath
End If
Set SA = nothing
Set Path = nothing
End Function
'===========================================================================================================
Sub Anlegen
<body bgcolor=#aaedaa>
<span id="m1"></span>
Hoffe, Du kannst mit dem Schnipsel etwas anfangen,
lg
Edi