53111
Goto Top

werte in array schreiben checkbox vbs

hi

ich habe mit folgendem code angefangen und finde meinen fehler nicht. nach dem ersten durchlauf der "for each"-Abfrage erscheint ein fehler?:


DIM ordnerarray
DIM FSO        ' Variable für den Zugriff auf das File System Object  
DIM objOrdner    ' Variable für den Ordner, in dem die Unterordner entstehen  
DIM objUnterordner ' Variable für die Unterordner  
DIM Ordner     ' Variabel für den Ordner, in dem die Unterordner entstehen  

ordnerarray = Array(100)
x = 0

Ordner = "C:\"  

Set FSO = CreateObject("Scripting.FileSystemObject")  

Set objOrdner = FSO.GetFolder(Ordner)


   
   For Each objUnterordner in objOrdner.SubFolders
    
  
     'wscript.echo   
     
     ordnerarray(x) = objUnterordner.Name   
     'wscript.echo   
           
     x = x + 1
    wscript.echo x
     
    Next

es sollen alle ordner eines laufwerkes/ordners ausgelesen werden und in ein array geschrieben werden. vielleicht könnt ihr mir dann noch weiterhelfen. es soll anschließend vor jeden arraywerkt der in einer liste angezeigt werden soll eine checkbox/radiobutton der eine abfrage macht. kann ich eine solche abfrage dann in einem html dokument verwirklichen?


gruß saibonaut

Content-Key: 68782

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

Printed on: April 19, 2024 at 16:04 o'clock

Member: Logan000
Logan000 Sep 17, 2007 at 10:05:18 (UTC)
Goto Top
Versuchs mal so:
DIM FSO        ' Variable für den Zugriff auf das File System Object  
DIM objOrdner    ' Variable für den Ordner, in dem die Unterordner entstehen  
DIM objUnterordner ' Variable für die Unterordner  
DIM Ordner     ' Variabel für den Ordner, in dem die Unterordner entstehen  
dim Ordnerarray(100)

x = 0
Ordner = "C:\"  
Set FSO = CreateObject("Scripting.FileSystemObject")  
Set objOrdner = FSO.GetFolder(Ordner)

   For Each objUnterordner in objOrdner.SubFolders
		ordnerarray(x) = objUnterordner.Name   
		x = x + 1
    Next
Member: bastla
bastla Sep 17, 2007 at 10:24:43 (UTC)
Goto Top
... oder so:
Ordner = "C:\"  
Set FSO = CreateObject("Scripting.FileSystemObject")  
Set objOrdner = FSO.GetFolder(Ordner)
Temp = ""  
For Each objUnterordner in objOrdner.SubFolders
	Temp = Temp & ":" & objUnterordner.Name  
Next
ordnerarray = Split(Mid(Temp, 2), ":")  
Damit bekommt "ordnerarray" immer die richtige Größe (auch wenn's mal mehr als 100 Unterordner sind).

Grüße
bastla
Mitglied: 53111
53111 Sep 17, 2007 at 10:28:52 (UTC)
Goto Top
ok super da funktioniert. hast du ne ahnung wie man nun vor jedes der arrayelemente eine checkbox machen kann mit einer bestimmten abfrage? ich bin mir nicht sicher ob das überhaupt mit vbs geht (habe nichts entsprechendes gefunden) vielleicht muss man das mit einem html dokument machen?

ich hatte mir nun mal überlegt wie man das in etwa machen könnte?

1.) man lässt in dem vbs eine html datei schreiben

irgendwie sowas (ich hätte es nur auch lieber in vbs anstatt js):
<html><head><title>Test</title>
<script type="text/javascript">  
function Weiter () {
  if (document.Testform.Art.checked == true) {
    window.location.href = "frmdatei.htm";  
  } else if (document.Testform.Art[1].checked == true) {
    window.location.href = "datei.htm";  
  } else {
    alert("Bitte eine Auswahl treffen");  
  }
}
</script>
</head><body>
<form name="Testform" action="">  
<input type="radio" name="Art" value="mit"> mit Frames  
<input type="radio" name="Art" value="ohne"> ohne Frames  
<br><input type="button" value="Starten" onclick="Weiter()">  
</form>
</body></html>

dann könnte man ja theoretisch bei value immer die werte aus dem array einsetzen? und dann abfraden lassen ob angeklickt oder nicht...

2.) und hier kommt meine frage: kann ich an dieser stelle einen aufruf für ein vbs script machen und einen wert mit übergeben?

if (document.Testform.Art.checked == true) {
    window.location.href = "frmdatei.htm";  
Mitglied: 53111
53111 Sep 17, 2007 at 12:03:33 (UTC)
Goto Top
mein ansatz wäre nun wie folgt:

leider scheint beim ausführen vbs irgendwie auf die "" und () zu reagiegen

DIM FSO        ' Variable für den Zugriff auf das File System Object  
DIM objOrdner    ' Variable für den Ordner, in dem die Unterordner entstehen  
DIM objUnterordner ' Variable für die Unterordner  
DIM Ordner     ' Variabel für den Ordner, in dem die Unterordner entstehen  
DIM ordnerarray
DIM HTMLdatei 
DIM HTMLtext 'wird momentan nicht benötigt'  
Const ForWriting = 2

Set fso = CreateObject("Scripting.FileSystemObject")  
set HTMLdatei = fso.OpenTextFile("C:\Test.html", ForWriting, true)  

'Anfang der HTML Datei schreiben'  
HTMLdatei.Write("<html><head><title>Test</title>  
<script type="text/javascript">  
function Weiter () {
  if (document.Testform.Art.checked == true) {
    window.location.href = "frmdatei.htm";  
  } else if (document.Testform.Art[1].checked == true) {
    window.location.href = "datei.htm";  
  } else {
    alert("Bitte eine Auswahl treffen");  
  }
}
</script>
</head><body>
<form name="Testform" action="">")  




x = 0
Ordner = "C:\"  
Set FSO = CreateObject("Scripting.FileSystemObject")  
Set objOrdner = FSO.GetFolder(Ordner)
Temp = ""  
For Each objUnterordner in objOrdner.SubFolders
	Temp = Temp & ":" & objUnterordner.Name  
Next
ordnerarray = Split(Mid(Temp, 2), ":")  
    
    

    
    For h = 0 to UBound(ordnerarray)-1
    
    'wscript.echo ordnerarray(h)  
    'Array auslesen und in html schreiben'  
    HTMLdatei.Write("<input type="radio" name="Art" value="ordnerarray(h)"> ordnerarray(h)")   

    
    
    Next
'Abschluss HTML schreiben '      
HTMLdatei.Write("<br><input type="button" value="Starten" onclick="Weiter()">  
</form>
</body></html>")     

HTMLdatei.Close
Member: bastla
bastla Sep 17, 2007 at 14:31:56 (UTC)
Goto Top
Hallo saibonaut!

Eigentlich sollte die Schleife bis UBound(ordnerarray) laufen (ohne -1).

Grüße
bastla