AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein [VBScript] Objekte in Arrays ablegen
Thema durchsuchen
Ansicht
Themen-Optionen

[VBScript] Objekte in Arrays ablegen

Ein Thema von Luckie · begonnen am 8. Feb 2007 · letzter Beitrag vom 11. Feb 2007
Antwort Antwort
Seite 1 von 3  1 23      
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#1

[VBScript] Objekte in Arrays ablegen

  Alt 8. Feb 2007, 12:17
Ich versuche gerade Objekte in einem Array abzulegen und wieder auszulesen. Als Beispiel habe ich Dateien in einem Verzeichnis:
Code:
Set fo = fso.GetFolder(FOLDER)

Set files = fo.Files
i = 0
For Each file in files
  ReDim file_array(i+1)
  file_array(i) = file
  i = i + 1
Next

For i = 0 to ubound(file_array)
  file = file_array(i)
  Filedate = file.DateLastModified
  Filesize = file.Size
  Filename = file.Name
  ts.WriteLine "<tr>"
  ts.WriteLine "<td class='date'>" & Filedate & "</td>"
  ts.WriteLine "<td class='size'>" & Filesize & "</td>"
  ts.WriteLine "<td class='name'>[url='" & fo.Path & "/" & Filename & "']" & Filename & "[/url]</td>"
  ts.WriteLine "</tr>"
Next
In dem Array file_array befinden sich, oder sollten sich befinden, die file-Objekte. Allerdings sagt er mir in der For-Schleife, das er hier: Filedate = file.DateLastModified ein Objekt erwartet. Ein Cast nach Scripting.FileSystemObject.File hat auch nicht geholfen. Wie komme ich also an die Objekte dran?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: [VBScript] Objekte in Arrays ablegen

  Alt 10. Feb 2007, 20:01
Ich muss das noch mal nach oben holen. Ist zwar nicht überlebenswichtig, aber mein Berufsschullehrer meinte, ich solle die Datei-ausgabe mal sortieren, so als Zusatzaufgabe. Dazu wollte ich eben alle Datei-Objekte in einem Array sammeln und dieses Array dann sortieren.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von thkerkmann
thkerkmann

Registriert seit: 7. Jan 2006
Ort: Pulheim Brauweiler
464 Beiträge
 
Delphi 2010 Professional
 
#3

Re: [VBScript] Objekte in Arrays ablegen

  Alt 10. Feb 2007, 20:25
Hi,

ich glaube das geht mit einm solchen Feld nicht. Dafür gibt es das Collection Object, welches wiederum Objekte aufnehmen kann

Code:
  Dim names As New Microsoft.VisualBasic.Collection()
Näheres in der MSDN

Gruss

[Edit]
Oh Mist, ich seh grad du hast ja VBScript geschrieben. Da gibt es die Collection natürlich nicht, sorry.
[/Edit]
Thomas Kerkmann
Ich hab noch einen Koffer in Borland.
http://thomaskerkmann.wordpress.com/
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: [VBScript] Objekte in Arrays ablegen

  Alt 10. Feb 2007, 20:56
Oder alternativ gibt es eine Klasse die mit der Delphi Klasse TList vergleichbar ist?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#5

Re: [VBScript] Objekte in Arrays ablegen

  Alt 10. Feb 2007, 21:09
Hi

ganz oben in den Kopf der Form setzen
Code:
Option Explicit 'Fehlermeldung ausgeben
Private fso As Scripting.FileSystemObject 'object initialisieren
Dazu muss im Menü/Projekt/Verweise erst die Laufzeit Bibliothek 'Microsoft Scripting Runtime' importiert werden.

gruss
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

Re: [VBScript] Objekte in Arrays ablegen

  Alt 10. Feb 2007, 21:11
So weit bin ich schon.
Code:
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Script       : Verzeichnis in einer HTML-Datei ausgeben                    '
' File         : 04_02_Dir2HTML.vbs                                          '
' Date         : 2007-02-08 - Last modified: 2007-02-08                       '
'                                                                             '
'              Michael Puff - [url]http://www.michael-puff.de[/url]                     '
'                                                                             '
'              Durch ein File-Container Attribut iterieren                   '
'              Erzeugen einer Textdatei                                      '
'              Aufruf des IE-COM Objektes                                    '
'              Funktionsaufrufe                                              '
'              Dynamische Arrays                                             '
'                                                                             '
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Constants
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
FOLDER = "D:\Homepage\michael-puff.de\Berufsschule\Anwendungsentwicklung - Johlen\VBScripte"
HTMLFILE = "index.html"
STYLESHEET = "D:\Homepage\michael-puff.de\Berufsschule\Anwendungsentwicklung - Johlen\VBScripte\stylesheet.css"
OUTFOLDER = "D:\Homepage\michael-puff.de\Berufsschule\Anwendungsentwicklung - Johlen\VBScripte"

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
dim file_array()

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Subs
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Page header
private sub HTMLHeader(ts)
  ts.WriteLine "<html>"
  ts.WriteLine "<head><link rel='stylesheet' type='text/css' href='" & STYLESHEET & "'></head>"
  ts.WriteLine "<body>"
end sub

' Page footer
private sub HTMLFooter(ts)
  ts.WriteLine "</body>"
  ts.WriteLine "</html>"
end sub

' BubbleSort
function bubblesort(arrSortieren)
  for i = 0 to ubound(arrSortieren)
    for j = i + 1 to ubound(arrSortieren)
      if arrSortieren(i) > arrSortieren(j) then
        arrTemp = arrSortieren(i)
        arrSortieren(i) = arrSortieren(j)
        arrSortieren(j) = arrTemp
      end if
    next
  next
  bubblesort = arrSortieren
end function

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Set fso = CreateObject("Scripting.FileSystemObject")


Set ts = fso.CreateTextFile(OUTFOLDER & HTMLFILE)

HTMLHeader(ts)

Set fo = fso.GetFolder(FOLDER)
title = "Index of " & fo.Path

ts.WriteLine "<h2>" & title & "</h2>

"

ts.WriteLine "<table class='dir'>"
ts.WriteLine "<th class='date'>Last modified</th><th class='size'>Size</th><th class='name'>file name</th>"

Set files = fo.Files
i = 0
ReDim file_array(files.Count)
For Each file in files
  file_array(i) = file
  i = i + 1
Next

For i = 0 to ubound(file_array)
  Set file = file_array(i)
  Filedate = file.DateLastModified
  Filesize = file.Size
  Filename = file.Name
  ts.WriteLine "<tr>"
  ts.WriteLine "<td class='date'>" & Filedate & "</td>"
  ts.WriteLine "<td class='size'>" & Filesize & "</td>"
  ts.WriteLine "<td class='name'>[url='" & fo.Path & "/" & Filename & "']" & Filename & "[/url]</td>"
  ts.WriteLine "</tr>"
Next

ts.WriteLine "<tr><td class='date'>File(s): " & fo.files.Count & "</td></tr>"
ts.WriteLine "</table>"

HTMLFooter(ts)

ts.Close

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Set ie = CreateObject("InternetExplorer.Application.1")
ie.Visible = True
ie.Navigate(OUTFOLDER & HTMLFILE)
Und es ist ein VBS Script und keine Visual Basic Anwendung. Und in Zeile 85 kommt die Fehlermeldung, dass er ein Objekt erwarter, er aber offensichtlich keins bekommt. Irgendwie scheint er also alles andere in dem Array abzulegen nur keon Objekt.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#7

Re: [VBScript] Objekte in Arrays ablegen

  Alt 10. Feb 2007, 21:36
Zitat:
Und es ist ein VBS Script und keine Visual Basic Anwendung
Ist doch das selbe!

Wo ist der unterschied?

Code:
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Script       : Verzeichnis in einer HTML-Datei ausgeben                    '
' File         : 04_02_Dir2HTML.vbs                                          '
' Date         : 2007-02-08 - Last modified: 2007-02-08                       '
'                                                                             '
'              Michael Puff - [url]http://www.michael-puff.de[/url]                     '
'                                                                             '
'              Durch ein File-Container Attribut iterieren                   '
'              Erzeugen einer Textdatei                                      '
'              Aufruf des IE-COM Objektes                                    '
'              Funktionsaufrufe                                              '
'              Dynamische Arrays                                             '
'                                                                             '
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Constants
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''


'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Dim file_array()
Dim FOLDER As String
Dim HTMLFILE As String
Dim STYLESHEET As String
Dim OUTFOLDER As String

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Subs
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Page header
Private Sub HTMLHeader(ts)
  ts.WriteLine "<html>"
  ts.WriteLine "<head><link rel='stylesheet' type='text/css' href='" & STYLESHEET & "'></head>"
  ts.WriteLine "<body>"
End Sub

' Page footer
Private Sub HTMLFooter(ts)
  ts.WriteLine "</body>"
  ts.WriteLine "</html>"
End Sub

' BubbleSort
Function bubblesort(arrSortieren)
  For i = 0 To UBound(arrSortieren)
    For j = i + 1 To UBound(arrSortieren)
      If arrSortieren(i) > arrSortieren(j) Then
        arrTemp = arrSortieren(i)
        arrSortieren(i) = arrSortieren(j)
        arrSortieren(j) = arrTemp
      End If
    Next
  Next
  bubblesort = arrSortieren
End Function


Private Sub Command1_Click()

Set fso = CreateObject("Scripting.FileSystemObject")
Set ts = fso.CreateTextFile(OUTFOLDER & "\" & HTMLFILE)

Call HTMLHeader(ts)

Set fo = fso.GetFolder(FOLDER)
Title = "Index of " & fo.Path

ts.WriteLine "<h2>" & Title & "</h2>

"

ts.WriteLine "<table class='dir'>"
ts.WriteLine "<th class='date'>Last modified</th><th class='size'>Size</th><th class='name'>file name</th>"

Set Files = fo.Files
i = 0
ReDim file_array(Files.Count)
For Each file In Files
  file_array(i) = file
  i = i + 1
Next

For i = 0 To UBound(file_array)
  Set Files = file_array(i)
  Filedate = file.DateLastModified
  Filesize = file.Size
  FileName = file.Name
  ts.WriteLine "<tr>"
  ts.WriteLine "<td class='date'>" & Filedate & "</td>"
  ts.WriteLine "<td class='size'>" & Filesize & "</td>"
  ts.WriteLine "<td class='name'>[url='" & fo.Path & "/" & FileName & "']" & FileName & "[/url]</td>"
  ts.WriteLine "</tr>"
Next

ts.WriteLine "<tr><td class='date'>File(s): " & fo.Files.Count & "</td></tr>"
ts.WriteLine "</table>"

HTMLFooter (ts)

ts.Close


'Set ie = CreateObject("InternetExplorer.Application.1")
ie.Visible = True
ie.Navigate (OUTFOLDER & HTMLFILE)

End Sub

Private Sub Form_Load()


FOLDER = "D:\Test"
HTMLFILE = "index.html"
STYLESHEET = "D:\Test\stylesheet.css"
OUTFOLDER = "D:\Test"

End Sub
Edit:
Wenn du die zuordnung mit set nicht richtig auf das Object legst dann
gibt es eine nachfrage nach diesen Object 'Fehlermeldung' Object erwartet.

gruss
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#8

Re: [VBScript] Objekte in Arrays ablegen

  Alt 10. Feb 2007, 21:38
Und deins funktioniert? Wo ist der Fehler bei mir?

Bei mir sagt er in Zeile 25: "Anweisungsende erwartet."
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#9

Re: [VBScript] Objekte in Arrays ablegen

  Alt 10. Feb 2007, 21:43
Zitat von Luckie:
Und deins funktioniert? Wo ist der Fehler bei mir?

Bei mir sagt er in Zeile 25: "Anweisungsende erwartet."
Na kann es nicht richtig testen da die stylesheet.css bei mir nicht im Ordner 'Test'
existiert.

gruss
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#10

Re: [VBScript] Objekte in Arrays ablegen

  Alt 10. Feb 2007, 21:45
Der spielt doch keine Rolle. Und wenn er nicht gefunden wird, macht es auch nichts.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:27 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz