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

VBS - Object als Return Value einer Funktion

Frage Entwicklung VB for Applications

Mitglied: MSchyska

MSchyska (Level 1) - Jetzt verbinden

22.02.2007, aktualisiert 23.02.2007, 11601 Aufrufe, 4 Kommentare

Hallo,

wie gebe ich aus einer Funktion ein Object als return value zurück und wie greife ich dann darauf zu?

Was ist hier falsch:

01.
Set objFSO = CreateObject("Scripting.FileSystemObject") 
02.
 
03.
Set objFile1 = CreateTextFile("d:\temp\huhu", True) 
04.
 
05.
WScript.Echo objFile1.Path 
06.
 
07.
Function CreateTextFile(strFile, OverWriteFlag) 
08.
 
09.
On Error Resume Next 
10.
	 
11.
Set CreateTextFile = objFSO.CreateTextFile(strFile, OverWriteFlag) 
12.
 
13.
If Err.Number <> 0 Then 
14.
	WScript.Echo "CreateTextFile: Fehler beim Anlegen von " & strFile 
15.
 
16.
	If Err.Number = -2147024784 Then 
17.
		WScript.Echo "Fehlernr. " & Err.Number & ": nicht genügend Plattenplatz" 
18.
	Else 
19.
		WScript.Echo "Fehlernr. " & Err.Number & ": " & Err.Description 
20.
	End If 
21.
End If 
22.
 
23.
On Error GoTo 0 
24.
 
25.
End Function ' CreateTextFile
Mitglied: bastla
22.02.2007 um 17:40 Uhr
Hallo MSchyska!

Auch wenn ich der Function nicht den Namen einer FSO-Methode gegeben, sondern sie vielleicht "MakeTextFile" genannt hätte, funktioniert die Funktion.

Der Fehler entsteht erst beim Test, da ein offenes "TextFile"-Objekt keine "Path"-Eigenschaft hat. Versuch zB statt der "WScript.Echo"-Zeile
01.
objFile1.WriteLine "Dieses Textfile wurde mit einer Function erstellt." 
02.
objFile1.Close
Grüße
bastla
Bitte warten ..
Mitglied: MSchyska
23.02.2007 um 10:00 Uhr
Hallo bastla,

du hast recht, so funktioniert es.

Danke

MSchyska
Bitte warten ..
Mitglied: MSchyska
23.02.2007 um 10:59 Uhr
Hallo bastla,

Dein Vorschlag funktioniert im Erfolgsfall (d.h. wenn ich eine Textdatei anlegen kann).
Wenn das Anlegen der Textdatei aber einen Fehler produziert bekomme ich in der Zeile

01.
Set objFile1 = CreateTextFile("d:\temp\huhu", False)
die Fehlermeldung

01.
C:\Scripts\tObject1.vbs(3): Exception: Object required: 'CreateTextFile(...)'
Wie kann ich den Fehler nach Aufruf der Funktion "CreateTextFile" sauber abfangen?

Gruß

MSchyska
Bitte warten ..
Mitglied: bastla
23.02.2007 um 11:45 Uhr
Hallo MSchyska!

Wenn die Funktion kein Objekt zurückliefert, erhältst Du als Ergebnis "Nothing", also müsste
01.
If Not CreateTextFile("d:\temp\huhu", False) = Nothing Then Set objFile1 = CreateTextFile("d:\temp\huhu", False)
funktionieren. Allerdings wird bei jedem Aufruf der Funktion versucht, die Textdatei zu erzeugen, was bei einem nicht gewünschten Überschreiben das Vorhaben eigentlich schon zum Scheitern verurteilt ...

Alternativ kannst Du es natürlich über "On Error" versuchen, aber ich frage mich, wozu Du überhaupt den ganzen Aufwand treiben willst (nur wegen des in der Funktion selbst verwendeten Errorhandlings?). Eine Diskussion über saubere Programmierung möchte ich im Zusammenhang mit Scripting allerdings nicht führen ...

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Array oder Object oder wie soll ich das machen
gelöst Frage von Druide83Batch & Shell4 Kommentare

Hallo, mal wieder verzweifelt. Wahrscheinlich ist die Lösung einfach, aber ich habe gerade keinen Kopf mehr zum klar denken. ...

Firewall
Suchen von object-groups mit bestimmten objects CISCO ASA
Frage von haiqualleFirewall3 Kommentare

Hi all, habe einige ACLs anzupassen Ich suche folgendes: einen Befehl, der mir den Namen der object-group. welche ein ...

C und C++
Methode multiple return values
gelöst Frage von mayho33C und C++8 Kommentare

Hallo Community, ich habe wieder mal eine Frage und hoffe auf eure KnowHow! Ich möchte eine Methode erstelle die ...

Batch & Shell
Nach Funktion Revstr wird aufeinmal eine Leerzeile hinzugefügt VBS
gelöst Frage von InvisanBatch & Shell3 Kommentare

Hallo zusammen, ich habe mal wieder ein kleines Problem. Ich habe in VBS ein kleines Script geschrieben welches dazu ...

Neue Wissensbeiträge
Viren und Trojaner

Deaktivierter Keylogger in HP Notebooks entdeckt

Information von bitcoin vor 37 MinutenViren und Trojaner

Ein Grund mehr warum man Vorinstallationen der Hersteller immer blank bügeln sollte Der deaktivierte Keylogger findet sich im vorinstallierten ...

Router & Routing

Lets Encrypt kommt auf die FritzBox

Information von bitcoin vor 4 StundenRouter & Routing

In der neuesten Labor-Version der FB7490 integriert AVM unter anderem einen Let's Encrypt Client für Zugriffe auf das Webinterface ...

Internet

Was nützt HTTPS, wenn es auch von Phishing Web-Seiten genutzt wird

Information von Penny.Cilin vor 3 TagenInternet17 Kommentare

HTTPS richtig einschätzen Ob man eine Webseite via HTTPS aufruft, zeigt ein Schloss neben der Adresse im Webbrowser an. ...

Webbrowser

Bugfix für Firefox Quantum released - Installation erfolgt teilweise nicht automatisch!

Erfahrungsbericht von Volchy vor 4 TagenWebbrowser8 Kommentare

Hallo zusammen, gem. dem Artike von heise online wurde mit VersionFirefox 57.0.1 sicherheitsrelevante Bugs behoben. Entgegen der aktuellen Veröffentlichung ...

Heiß diskutierte Inhalte
Vmware
Installation Windows 10 VMware
Frage von Ghost108Vmware17 Kommentare

Hallo zusammen, versuche gerade mit Hilfe des vshpere clients eine virtuelle Windows 10 maschine aufzusetzen. 1. virtuelle Maschine erstellt ...

Exchange Server
SBS 2011 E-Mails können gesendet werden, aber nicht von extern empfangen
Frage von andreas1234Exchange Server14 Kommentare

Hallo Community, ich habe das Problem, dass seit knapp zwei Wochen die E-Mails von meinem SBS 2011 einwandfrei gesendet ...

Voice over IP
Telefonstörung - Ortsrufnummern kein Verbindungsaufbau
Frage von Windows10GegnerVoice over IP10 Kommentare

Hallo, sowohl bei uns als auch beim Opa ist es über VoIP nicht möglich Ortsrufnummern anzurufen. Es kommt nach ...

Batch & Shell
Trusted Sites für alle User auf dem PC einpflegen
Frage von xXTaKuZaXxBatch & Shell8 Kommentare

Aufgabestellung: Es sollen auf 1 PC (bzw. mehreren PCs) vertrauenswürdige Sites per Powershell eingetragen werden, die für alle User ...