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, 3235 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 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 ...

Cloud-Dienste
Frag zu sftp und rsync
gelöst Frage von qwertz1Cloud-Dienste2 Kommentare

Hallo, ich habe eine Frage zu rsync im Zusammenspiel mit sftp. Ein Kunde hat sich bei Strato einen Online-Speicher ...

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. ...

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
Exchange Server

1und1 IONOS: Probleme beim Mailversand mit Exchange

Information von reksierp vor 3 StundenExchange Server1 Kommentar

Hallo, seit Do, 17.1.19 etwa Mittags nimmt 1und1 IONOS keine Mails mehr über den Standard-Port SMTP 25 an. Nachdem ...

LAN, WAN, Wireless

Cisco Mikrotik VPN Standort Vernetzung mit dynamischem Routing

Anleitung von aqui vor 16 StundenLAN, WAN, Wireless

1. Allgemeine Einleitung Das nachfolgende Tutorial ist eine Fortführung der hier bei Administrator.de schon bestehenden VPN Tutorials und beschreibt ...

Windows Mobile

Support für Windows Mobile endet im Dezember 2019

Information von transocean vor 2 TagenWindows Mobile

Moin, Microsoft empfiehlt als Alternative den Umstieg auf iOS oder Android, wie man hier lesen kann. Gruß Uwe

Internet

Kommentar: Bundesregierung erwägt Ausschluss von Huawei im 5G-Netz - Unsere Presse wird immer sensationsgieriger

Information von Frank vor 4 TagenInternet6 Kommentare

Hier mal wieder ein schönes Beispiel für fehlgeleiteten Journalismus und Politik zugleich. Da werden aus Gerüchten plötzlich Fakten, da ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
Temporäre WLAN Verbindung für AD-Login
Frage von Christian.WidauerLAN, WAN, Wireless17 Kommentare

Hallo zusammen, ich weiß leider nicht unter welchem Begriff ich dafür suchen muss, daher habe ich bisher leider nichts ...

LAN, WAN, Wireless
Bekannte Drosselungen bei Providern ?
Frage von HenereLAN, WAN, Wireless15 Kommentare

Servus zusammen, in bereits angefangen, aber ich hoffe dass der Beitrag hier mehr Informationen bringt. Sind Portdrosselungen bzw gezielte ...

Netzwerkmanagement
Reverse Proxy für TCP und UDP Anfragen
gelöst Frage von flxklsNetzwerkmanagement14 Kommentare

Hallo zusammen, ich besitze einen Rootserver, der nur eine öffentliche IP besitzt und auf dem mehrere VMs laufen. Da ...

Windows Server
MSSQL Backup in Form von .sql einspielen
Frage von janosch12Windows Server14 Kommentare

Guten Morgen, wir verwenden das Tool SQLandFTPBackup ( ) zum sichern einiger MSSQL Datenbanken. Nun sichert das Toll die ...