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

gelöst Frage zur besseren Umsetzung meines VBS Scripts.

Mitglied: yv35k0

yv35k0 (Level 1) - Jetzt verbinden

11.10.2011 um 13:54 Uhr, 3214 Aufrufe, 3 Kommentare

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:

01.
Const msoFileDialogOpen = 1 
02.
  
03.
Set fso = CreateObject("Scripting.FileSystemObject") 
04.
Set objWord = CreateObject("Word.Application") 
05.
Set WshShell = CreateObject("WScript.Shell") 
06.
  
07.
strInitialPath = WshShell.ExpandEnvironmentStrings("%USERPROFILE%") & "\Desktop\" 
08.
  
09.
objWord.ChangeFileOpenDirectory(strInitialPath) 
10.
  
11.
With objWord.FileDialog(msoFileDialogOpen) 
12.
  
13.
 .Title = "Bitte wählen Sie die Export-Datei aus." 
14.
  
15.
 .AllowMultiSelect = False 
16.
  
17.
 .Filters.Clear 
18.
 .Filters.Add "DAT Files", "*.DAT" 
19.
 .Filters.Add "CSV Files", "*.CSV" 
20.
 .Filters.Add "All Files", "*.*" 
21.
 
22.
If .Show = -1 Then 'short form 
23.
 
24.
For Each File in .SelectedItems 
25.
Set objFile = fso.GetFile(File) 
26.
Next  
27.
 
28.
Alt = objFile.Path 
29.
Neu = "NEU.DAT" 
30.
  
31.
Delim = ";" 
32.
Leerzeichen = " " 
33.
Serie = "1" 
34.
   
35.
Header = "A;B;C;D;E;F;G;H" 
36.
  
37.
Set fso = CreateObject("Scripting.FileSystemObject") 
38.
Zeilen = Split(fso.OpenTextFile(Alt).ReadAll, vbCrLf) 
39.
Set DateiNeu = fso.CreateTextFile(Neu) 
40.
If Header <> "" Then 
41.
DateiNeu.WriteLine Header 
42.
Ab = 1 
43.
End If 
44.
For i = Ab To UBound(Zeilen) 
45.
If Trim(Zeilen(i)) = "" Then 
46.
ZeileNeu = Zeilen(i) 
47.
Else 
48.
Felder = Split(Zeilen(i), Delim) 
49.
ZeileNeu = _ 
50.
Felder(0) & Delim & _ 
51.
Felder(1) & Delim & _ 
52.
Felder(2) & Delim & _ 
53.
Felder(12) & Delim & _ 
54.
Serie & Delim & _ 
55.
Felder(13) & Delim & _ 
56.
Leerzeichen & Delim & _ 
57.
Felder(15) 
58.
  
59.
DateiNeu.Write Prefix & ZeileNeu 
60.
  
61.
Prefix = vbCrLf 
62.
  
63.
End If 
64.
  
65.
Next 
66.
  
67.
Else 
68.
  
69.
End If 
70.
End With 
71.
  
72.
'Close Word 
73.
objWord.Quit

Grüße
Yves
Mitglied: Edi.Pfisterer
11.10.2011 um 18:23 Uhr
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
Bitte warten ..
Mitglied: yv35k0
12.10.2011 um 08:44 Uhr
Danke für den Hinweis.

Wenn man es installiert hat man "nur" die Anwendung VBSedit. Hört sich ja auch nicht schlecht an. Für mich sieht das auf den ersten Blick aber einfach wie eine Art Editor aus. Wie kann ich meine Code mit der Anwendung besser umsetzen? Werde nachher mal schauen, ob es ein Handbuch dafür gibt.

Yves

Edit: Habe inzwischen gesehen, dass mann HATedit über das VSedit startet. Jetzt habe ich das Script ohne Dateiauswahl übernommen und es wird schon mal abgearbeitet. Mit welcher Funktion innerhalb vom HTAedit kann ich die Dateiauswahl realisieren?
Bitte warten ..
Mitglied: Edi.Pfisterer
12.10.2011 um 10:04 Uhr
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
01.
objWord.ChangeFileOpenDirectory(strInitialPath) 
02.
ff
Teil ersparen, da du dies einfach ersetzt durch (Teil stammt aus einer meiner Anwendungen - sollte nur zur Veranschaulichung dienen....
01.
Sub Menue1 
02.
a = "<input style=""background-color: lightgrey"" type=""Text"" name=""Path"" value="""" size=""50"" maxlength="""" readonly>&nbsp;<input type=""button"" name=""run_button"" value=""Datenbank Pfad auswählen..."" onClick=""SaveAs""> 
03.
		m1.InnerHTML = a 
04.
		Path.value = DBPath 
05.
		maxnomb.value = max 
06.
End Sub 
07.
 
08.
Sub SaveAs 'ORDNER AUSWÄHLEN FÜR DB 
09.
 
10.
 
11.
 
12.
    Path.value = PickFolder 
13.
dbort = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & DBPath & "files.mdb" 
14.
End Sub 
15.
 
16.
'=========================================================================================================== 
17.
Function PickFolder 
18.
 
19.
         dim SA, Path 
20.
         Set SA = CreateObject("Shell.Application") 
21.
         Set Path = SA.BrowseForFolder(0, "Choose a folder", 0) 
22.
 
23.
         If (Not Path Is Nothing) Then 
24.
 
25.
            DBPath = Path.Items.Item.path 
26.
 
27.
            If len(DBPath) > 3 then 
28.
 
29.
               DBPath = DBpath & "\" 
30.
 
31.
            End If 
32.
 
33.
            PickFolder = DBPath 
34.
 
35.
         End If 
36.
 
37.
         Set SA = nothing 
38.
         Set Path = nothing 
39.
 
40.
End Function 
41.
'=========================================================================================================== 
42.
Sub Anlegen 
43.
 
44.
<body bgcolor=#aaedaa> 
45.
 
46.
<span id="m1"></span>
Hoffe, Du kannst mit dem Schnipsel etwas anfangen,
lg
Edi
Bitte warten ..
Ähnliche Inhalte
VB for Applications
VBS Script kann Prgramm nicht starten
gelöst Frage von C.BoernerVB for Applications15 Kommentare

Hallo ihr Admins, Ich habe folgendes Scenarios ein Programm läuft im Hintergrund (Drivve-Image) das übergibt Werte an ein VBS ...

Batch & Shell
Hilfe Bei einem vbs Script
gelöst Frage von Hattori-HanzoBatch & Shell19 Kommentare

Hey Leute Könnt ihr mir bitte sagen was daran falsch ist? beschäftige mich erst seit kurzem mit vbs scripts. ...

VB for Applications
Vbs Script Hilfe
gelöst Frage von Dr.CornwallisVB for Applications3 Kommentare

Liebe Gemeinde, hat von euch zufällig jemand ein VBs Script das folgendes o.ä macht: Das Script wird per GPO ...

Entwicklung
VBS Script in Powershell aufrufen
gelöst Frage von HanutaEntwicklung7 Kommentare

Hallo Zusammen, ich möchte einen VBS Script in Powershell aufrufenist das überhaupt möglich ? Wenn ja, wie ? VG ...

Neue Wissensbeiträge
Datenschutz

Die Datenkrake Google verlängert ihr Arme mal wieder ein wenig, automatische Anmeldung

Tipp von magicteddy vor 10 StundenDatenschutz

Benutzer mit einem Google Account und gespeicherten Zugangsdaten werden von chrome 69 automatisch bei Google angemeldet, natürlich alles zum ...

Verschlüsselung & Zertifikate
Meine Wissenssammlung zu Bitlocker
Erfahrungsbericht von DerWoWusste vor 1 TagVerschlüsselung & Zertifikate3 Kommentare

Die Motivation für diesen Beitrag waren die vielen Posts rund um dieses Thema, die deutlich machen, wie viele Einzelaspekte ...

E-Mail
Email-Apps und Verhalten bei Pop3
Erfahrungsbericht von kfranzk vor 3 TagenE-Mail11 Kommentare

Hallo Freunde, da mir mein diesbezüglicher Faden als gelöst markiert wurde, muss ich hier neu aufsetzen. Ich arbeite bewusst ...

Hyper-V

Optimiertes Ubuntu per Microsoft Hyper-V-Schnellerstellung verfügbar

Anleitung von Frank vor 3 TagenHyper-V1 Kommentar

Für Microsofts Virtualisierungssoftware Hyper-V ist ab sofort auch ein optimiertes Ubuntu 18.04.1 LTS verfügbar. In der "Hyper-V-Schnellerstellung" App, die ...

Heiß diskutierte Inhalte
Datenschutz
Gilt ein Ransomware-Befall als Datenpanne nach DSGVO?
Frage von MOS6581Datenschutz22 Kommentare

Moin Kollegen, wenn sich jemand Ransomware einfängt und dadurch bspw. Kundendaten verschlüsselt werden; gilt dies dann als meldepflichtige Datenpanne ...

Hardware
Sophos SG135 - Routing
gelöst Frage von Xaero1982Hardware22 Kommentare

Moin Zusammen, ich ersetze gerade nen alten Cisco DualWAN Router durch eine SG 135. Ich muss bestimmte Ziele über ...

E-Mail
Welche ist die beste E-Mail Groupware für die Zukunft?
Frage von ITCrowdSupporterE-Mail18 Kommentare

Guten Tag allerseits :) Ich möchte mich mit einer Frage heute mal an die Schwarmintelligenz wenden. Aktuell befasse ich ...

Netzwerke
Hilfe bei der Planung meines Heimnetzwerks
Frage von DHD082Netzwerke15 Kommentare

Hallo zusammen, wir bauen gerade ein Einfamilienhaus, welches ich mit einem Heimnetzwerk ausstatten möchte. Da ich zwar auch in ...