Schrift
[thread]1032[/thread]

VBScript Arrayhandling



<< |< 1 2 >| >> 12 Einträge, 2 Seiten
esskar
 2004-07-28 20:18
#10512 #10512
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
Quote
Dim A(10)
Although the number shown in the parentheses is 10, all arrays in VBScript are zero-based, so this array actually contains 11 elements. In a zero-based array, the number of array elements is always the number shown in parentheses plus one. This kind of array is called a fixed-size array.

You assign data to each of the elements of the array using an index into the array. Beginning at zero and ending at 10, data can be assigned to the elements of an array as follows:

A(0) = 256
A(1) = 324
A(2) = 100
. . .
A(10) = 55


set brauchst du beim objekten

also

Code: (dl )
1
2
3
4
Dim obj

Set obj = GetObject(...)
A(0) = obj


und "ls" geht z.b. so

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
Function GetFolderList(folderspec)
Dim fso, f, f1, fc, s
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.GetFolder(folderspec)
Set fc = f.Files
For Each f1 in fc
s = s & f1.name
s = s & "\n"
Next
GetFolderList = s
End Function
esskar
 2004-07-28 22:10
#10513 #10513
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
ja, code posten wäre gut, damit man was zu sehen hat
esskar
 2004-07-29 14:48
#10514 #10514
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
versuche mal, deinen title in ein VARIANT umzuwandeln;
dann sollte es gehen\n\n

<!--EDIT|esskar|1091098135-->
esskar
 2004-07-29 15:16
#10515 #10515
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
"option explicit" kennst du?

und ja, F und f sind gleich!

das VARIANT zeug such ich gleich!
esskar
 2004-07-29 16:21
#10516 #10516
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
[quote=kabel,29.07.2004, 14:09]ich hab das Found in AFound umbenannt, und jetzt gehts :-)[/quote]
dann hast Found irgendwo schoneinmal benutzt!
kabel
 2004-07-28 19:59
#10517 #10517
User since
2003-08-04
704 Artikel
BenutzerIn
[default_avatar]
wo soll ich anfangen?!

ich kanns net genau beschreiben, aber irgendwie ging immer die zuweisung einer variable eines selbstdefinierten typs in ein array schief bzw die hat geklappt (ich gebe zu, ich weiss immer noch nicht, wann ich Set vor eine zuweisung schreiben muss und wann nicht ...) aber hinterher konnte ich bzw eher der wsh nichts mehr mit anfangen. ich wollte eigentlich zuerst durch alle dateien in einem verzeichnisbaum laufen, aus den gefundenen excel-dateien einige daten extrahieren und dann den kompletten schwung mit einer access-datendatei abgleichen. jetzt ist es so, dass ich nicht mehr in ein array zuweise, sondern direkt den gefundenen satz abgleiche. das funktioniert wenigstens.

kann mir jemand sagen, ob das array handling irgendwie speziell ist?
was kann mann/frau da alles falsch machen?

naja, vielleicht hilft drueber pennen, aber wenn jemandem was zu einfaellt ...
-- stefan
kabel
 2004-07-28 21:18
#10518 #10518
User since
2003-08-04
704 Artikel
BenutzerIn
[default_avatar]
danke, aber soweit bin ich schon :-) (hab so ne art kochbuch)

ich fand das verhalten total seltsam. TypeName (var) evaliert zum typ der variable var als string. so, ich hab nu in einer subroutine ein objekt eines selbstdefinierten typs angelegt, mit daten gefuellt, und in ein globales array gelegt. hinterher, als ich durch die daten in diesem globalen array laufen will, kennt er zwar noch den richtigen typ, aber beim datenzugriff meldet der wsh einen fehler, afair wegen inkompatibler typen?!

vielleicht kann ich morgen den betreffenden code posten.
-- stefan
kabel
 2004-07-29 14:43
#10519 #10519
User since
2003-08-04
704 Artikel
BenutzerIn
[default_avatar]
also z.b. das hier kapier ich net:

Quote
Dim NotFound (100), Found (100)
Dim NotFoundIndex, FoundIndex
NotFoundIndex = 0
FoundIndex = 0

' .... down the road
If found = 1 Then
'WScript.Echo "[" & data.title & "] has been found"
Found(FoundIndex) = data.title
FoundIndex = FoundIndex + 1
Else
'WScript.Echo " ! [" & data.title & "] has NOT been found"
NotFound(NotFoundIndex) = data.title
NotFoundIndex = NotFoundIndex + 1
End If


bei der zuweisung zum array kommt die obligatorische typkonvertierungsfehlermeldung
-- stefan
kabel
 2004-07-29 14:58
#10520 #10520
User since
2003-08-04
704 Artikel
BenutzerIn
[default_avatar]
[s]moment, jetzt bin ich voellig von der reihe :-/
wie mach ich das? ich hab grad gemerkt, dass
found(0[/s]

F***

nee, ich hatte in der sub noch ne variable found (mit kleinem f), das globale Found hat ein grosses F
und vbscript unterscheidet das nicht! ist ja lustig.

wie wuerde so eine konvertierung aussehen?
-- stefan
esskar
 2004-07-29 15:18
#10521 #10521
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
wie ist denn der VarType von

data.title

und von

NotFound (0)

?
<< |< 1 2 >| >> 12 Einträge, 2 Seiten



View all threads created 2004-07-28 20:18.