cadsys-chemnitz
Goto Top

VB 2008 Verständnisproblem

Ich arbeite seit rund einem Jahr mit Visual Basic , seit 3 Monaten mit VB 2008. Habe auch schon einige Projekte vollendet wie man ja auch hier im Forum an meinen Beiträgen sehen kann.

Jedoch habe ich ein Grundsätzliches Veständigungsproblem an dem ich bei jedem neuen Projekt wieder viel Zeit verliere und teilweise verzweifle. Das Problem dabei ist das ich in keinem Buch oder in keiner Online Anleitung hier dafür Hilfe gefunden habe.

Es geht um Verweise und Declarierung von Anweisungen.

Bsp. ist ein Code von Bastla. Ich hätte hier auch jeden anderen Code aus dem Forum nehmen können.

'TidyFileNames.vbs  

sOrdner = "D:\Test"  
sLog = "D:\Log.txt"  
sPosList = ".0123456789AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz"  
sDelim = ";"  

If WScript.Arguments.Count > 0 Then sOrdner = WScript.Arguments(0)

Set fso = CreateObject("Scripting.FileSystemObject")  

Set oLog = fso.OpenTextFile(sLog, 2, True)
ProcessFolder fso.GetFolder(sOrdner)
oLog.Close
WScript.Echo vbCrLF & "Done."  

Sub ProcessFolder(ThisFolder)
sPath = ThisFolder.Path
If InStr(sPath, "System Volume Information") = 0 Then  
	WScript.Echo sPath
	For Each File In ThisFolder.Files
		sOld = File.Name
		sNew = ""  
		For i = 1 To Len(sOld)
			sChar = Mid(sOld, i, 1)
			If InStr(sPosList, sChar) Then sNew = sNew & sChar
		Next
		oLog.WriteLine sPath & sDelim & sOld & sDelim & sNew

		'Um die Umbenennung tatsächlich durchzuführen, das  
		'Kommentarzeichen vor der nächsten Zeile entfernen:  
		'If sNew <> "" Then File.Name = sNew  
	Next
	For Each Folder In fso.GetFolder(ThisFolder).SubFolders
		ProcessFolder Folder
	Next
End If
End Sub

Ich habe dieses Bsp. gewählt weil ich erst neulich etwas ähnliches nur mit Ordnernamen statt Dateinamen hatte.

Wenn ich jetzt diesen Code als Vorlage nehmen würde um dieses Programm zum testen sieht das ganze dann so aus:


Fehler	1	Der Name "sOrdner" wurde nicht deklariert.	C:\Visi Editor\Visi Editor\Visi Editor\Editor.vb	39	9	Visi Editor  
Fehler	2	Der Name "sLog" wurde nicht deklariert.	C:\Visi Editor\Visi Editor\Visi Editor\Editor.vb	40	9	Visi Editor  
Fehler	3	Der Name "sPosList" wurde nicht deklariert.	C:\Visi Editor\Visi Editor\Visi Editor\Editor.vb	41	9	Visi Editor  
Fehler	4	Der Name "sDelim" wurde nicht deklariert.	C:\Visi Editor\Visi Editor\Visi Editor\Editor.vb	42	9	Visi Editor  
Fehler	5	Der Name "WScript" wurde nicht deklariert.	C:\Visi Editor\Visi Editor\Visi Editor\Editor.vb	44	12	Visi Editor  
Fehler	6	Der Name "sOrdner" wurde nicht deklariert.	C:\Visi Editor\Visi Editor\Visi Editor\Editor.vb	44	45	Visi Editor  
Fehler	7	Der Name "WScript" wurde nicht deklariert.	C:\Visi Editor\Visi Editor\Visi Editor\Editor.vb	44	55	Visi Editor  
Fehler	8	Der Name "fso" wurde nicht deklariert.	C:\Visi Editor\Visi Editor\Visi Editor\Editor.vb	46	9	Visi Editor  
Fehler	9	Der Name "oLog" wurde nicht deklariert.	C:\Visi Editor\Visi Editor\Visi Editor\Editor.vb	48	9	Visi Editor  
Fehler	10	Der Name "fso" wurde nicht deklariert.	C:\Visi Editor\Visi Editor\Visi Editor\Editor.vb	48	16	Visi Editor  
Fehler	11	Der Name "sLog" wurde nicht deklariert.	C:\Visi Editor\Visi Editor\Visi Editor\Editor.vb	48	33	Visi Editor  
Fehler	12	Der Name "fso" wurde nicht deklariert.	C:\Visi Editor\Visi Editor\Visi Editor\Editor.vb	49	23	Visi Editor  
Fehler	13	Der Name "sOrdner" wurde nicht deklariert.	C:\Visi Editor\Visi Editor\Visi Editor\Editor.vb	49	37	Visi Editor  
Fehler	14	Der Name "oLog" wurde nicht deklariert.	C:\Visi Editor\Visi Editor\Visi Editor\Editor.vb	50	9	Visi Editor  
Fehler	15	Der Name "WScript" wurde nicht deklariert.	C:\Visi Editor\Visi Editor\Visi Editor\Editor.vb	51	9	Visi Editor  
Fehler	16	Eine Anweisung kann nicht innerhalb eines Methodentexts verwendet werden. Das Methodenende wird angenommen.	
Fehler	17	Der Name "sPath" wurde nicht deklariert.	C:\Visi Editor\Visi Editor\Visi Editor\Editor.vb	54	9	Visi Editor  
Fehler	18	Der Name "sPath" wurde nicht deklariert.	C:\Visi Editor\Visi Editor\Visi Editor\Editor.vb	55	18	Visi Editor  
Fehler	19	Der Name "WScript" wurde nicht deklariert.	C:\Visi Editor\Visi Editor\Visi Editor\Editor.vb	56	13	Visi Editor  
Fehler	20	Der Name "sPath" wurde nicht deklariert.	C:\Visi Editor\Visi Editor\Visi Editor\Editor.vb	56	26	Visi Editor  
Fehler	21	Der Name "sOld" wurde nicht deklariert.	C:\Visi Editor\Visi Editor\Visi Editor\Editor.vb	58	17	Visi Editor  
Fehler	22	Der Name "sNew" wurde nicht deklariert.	C:\Visi Editor\Visi Editor\Visi Editor\Editor.vb	59	17	Visi Editor  
Fehler	23	Der Name "sOld" wurde nicht deklariert.	C:\Visi Editor\Visi Editor\Visi Editor\Editor.vb	60	34	Visi Editor  
Fehler	24	Der Name "sChar" wurde nicht deklariert.	C:\Visi Editor\Visi Editor\Visi Editor\Editor.vb	61	21	Visi Editor  
Fehler	25	Der Name "sOld" wurde nicht deklariert.	C:\Visi Editor\Visi Editor\Visi Editor\Editor.vb	61	33	Visi Editor  
Fehler	26	Der Name "sPosList" wurde nicht deklariert.	C:\Visi Editor\Visi Editor\Visi Editor\Editor.vb	62	30	Visi Editor  
Fehler	27	Der Name "sChar" wurde nicht deklariert.	C:\Visi Editor\Visi Editor\Visi Editor\Editor.vb	62	40	Visi Editor  
Fehler	28	Der Name "sNew" wurde nicht deklariert.	C:\Visi Editor\Visi Editor\Visi Editor\Editor.vb	62	52	Visi Editor  
Fehler	29	Der Name "sNew" wurde nicht deklariert.	C:\Visi Editor\Visi Editor\Visi Editor\Editor.vb	62	59	Visi Editor  
Fehler	30	Der Name "sChar" wurde nicht deklariert.	C:\Visi Editor\Visi Editor\Visi Editor\Editor.vb	62	66	Visi Editor  
Fehler	31	Der Name "oLog" wurde nicht deklariert.	C:\Visi Editor\Visi Editor\Visi Editor\Editor.vb	64	17	Visi Editor  
Fehler	32	Der Name "sPath" wurde nicht deklariert.	C:\Visi Editor\Visi Editor\Visi Editor\Editor.vb	64	32	Visi Editor  
Fehler	33	Der Name "sDelim" wurde nicht deklariert.	C:\Visi Editor\Visi Editor\Visi Editor\Editor.vb	64	40	Visi Editor  
Fehler	34	Der Name "sOld" wurde nicht deklariert.	C:\Visi Editor\Visi Editor\Visi Editor\Editor.vb	64	49	Visi Editor  
Fehler	35	Der Name "sDelim" wurde nicht deklariert.	C:\Visi Editor\Visi Editor\Visi Editor\Editor.vb	64	56	Visi Editor  
Fehler	36	Der Name "sNew" wurde nicht deklariert.	C:\Visi Editor\Visi Editor\Visi Editor\Editor.vb	64	65	Visi Editor  
Fehler	37	Der Name "fso" wurde nicht deklariert.	C:\Visi Editor\Visi Editor\Visi Editor\Editor.vb	70	32	Visi Editor  

Hier hört mein Verständnis auf, ich kann zwar mittlerweile den Code so lesen das ich Ihn auf anhieb verstehe und weiss was er macht, jedoch scheitere ich immer bei der Declarierung.
Bei oberen Beispiel würde ich so anfangen das ich folgende Zeilen einfüge.

        Dim WScript As WSHControllerLibrary.WSHController
        Dim fso As FileSystemObject
        Dim sOrdner As String
        Dim sLog As String
        Dim sPosList As String
        Dim sDelim As String
usw...

Jedoch brauche ich so ewig lange bis das ganze mal läuft, ich habe das Gefühl das ich es mir unnötig schwer mache. Vorallem weil in keinem Buch oder in keiner Onlineanleitung oder Workshop, Forum etc. auch nur Ansatzweise darüber was beschrieben steht.

Kann doch nicht sein das jedem das auf anhieb klar ist wie er was declarieren muss bzw. welche Verweise er hinzufügen muss da mit bestimmte Anweisungen überhaupt funktionieren.


Holt mich bitte aus meinem tiefen schwarzen Loch



MfG Tino

Content-ID: 115867

Url: https://administrator.de/contentid/115867

Ausgedruckt am: 22.11.2024 um 11:11 Uhr

godlie
godlie 12.05.2009 um 12:49:33 Uhr
Goto Top
Hallo Tino,

also das du alles Deklarieren musst stimmt eig. schon so.
Du musst deinem Compiler ja mitteilen mit was er es so zu tun bekommt.

evtl. hilft dir diese Beschreibung grüße
Cadsys-Chemnitz
Cadsys-Chemnitz 12.05.2009 um 13:32:19 Uhr
Goto Top
Danke Dir erstmal godlie,

die Beschreibung hilft mir schonmal weiter. Jedoch ist mein Problem eher die richtige Declaration zu finden.


Bsp.:

Fehler	5	Der Name "WScript" wurde nicht deklariert.	C:\Visi Editor\Visi Editor\Visi Editor\Editor.vb	44	12	Visi   

wenn ich

DIM WScript as Object

zufüge verschwindet die Fehlermeldung aber funktionieren tut es nicht, erst wenn ich

Dim WScript As WSHControllerLibrary.WSHController

schreibe. Weil er WScript ja sonst nicht kennt. Das zum Beispiel habe ich nur über umständliche Umwege herausgefunden. Und da ich davon ausgehe das das bei Euch auch nicht zum angeborenen Grundwissen gehört, frag ich mich wie ich wenn ich vor ähnlichem Problem stehe die richtige Declarierung finde.

Bei Verweisen ist es auch so hab am Anfang nicht gewusst zu welchen Verweis WScript gehört. Jetzt weiss ich es zum COM Modul : "Windows Script Host Object Model" auch dafür hab ich fast 2h vergeudet.
76109
76109 12.05.2009 um 15:50:47 Uhr
Goto Top
Hallo Cadsys-Chemnitz,

erstmal musst Du unterscheiden, schreibst Du VB oder VBS.

Da ich keine VB-Umgebung habe, kann ich Dir nur ahand eines Beispiels den Unterschied zwischen VBA und VBS erläutern, wobei Deklarationen in VB zumindest ähnlich wie in VBA erfolgen müssten.


In VBS - Bibliothek Dateifunktionen:
Dim Fso, File
Set Fso = CreateObject("Scripting.FileSystemObject") 'Bibliothek Dateifunktionen .WriteLine, .ReadLine usw.  
Set File = Fso.OpenTextFile(...)


In VBA - Bibliothek Dateifunktionen:
Dim Fso As Object, File As TextStream
Set Fso = CreateObject("Scripting.FileSystemObject") 'Bibliothek Dateifunktionen .WriteLine, .ReadLine usw.  
Set File = Fso.OpenTextFile(...)
oder:
Objectkatalog > Verweise > Microsoft Scripting Runtime - Auswählen importieren
Dim Fso As New FileSystemObject, File As TextStream
Set File = Fso.OpenTextFile(...)

In VB 2008 Bibliothek Dateifunktionen vermutlich ähnlich wie in VBA ???:
Objectkatalog > Verweise > Microsoft Scripting Runtime - Auswählen importieren
Dim Fso As New FileSystemObject, File As TextStream ???

Für Deklarationen suche unter Datentypen in der Hilfe z.B.:

Dim Text As String
Dim KleineZahl As Integer
Dim GrosseZahl As Long
Dim KommaZahl As Double
Dim KommaZahl As Decimal
Dim Waehrung As Currency
Dim Datum As Date
Dim Zeit As Date
Dim AlleTypen As Variant
Dim Datei As TextStream
Dim Obj As Object

Für Funktionen suche in Objectkatalog-Hilfe


Gruß Dieter
Cadsys-Chemnitz
Cadsys-Chemnitz 19.05.2009 um 09:19:07 Uhr
Goto Top
Danke dir für die Hilde,

hat mir schon gut geholfen , hab immer rnoch schwierigkeiten , aber das wird schon stück für stück. Schneller gehts auf jeden Fall, will ja nicht immer Stunden investieren für Sachen die in 5min erledigt sind.


Ich setze den Beitrag auf gelöst , und übe noch ein bisschen.