Jump to content

Empfohlene Beiträge

Moin Moin,

ich möchte ein VbScript erstellen, welches mir aus einer TXT Datei die dort eingetragenen Zeiten
ausliest und dann am Schluss addiert.

Die Zeiten stehen so in der Textdatei:
gesamt 02:30
gesamt 01:25
gesamt 00:35
gesamt 01:00
es sind nicht immer vier Einträge, es können auch mal mehrere sein.
Einen intressanten Hinweis habe ich in Eurem Forum gefunden, ist
vom vom 15.Januar 2010 unter "VBS-Zeiten addieren". Die Lösung
von NilsK würde mir sehr gefallen. Aber wie kann ich die Zeiteinträge
dort einlesen, da diese immer varieren? Und kann man das "gesamt"
herausfiltern? Ich würde mich freuen, wenn jemand eine Idee hätte!

Grüße von
Olli-AS

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Wenn's auch was moderneres als VBScript sein darf .... hier ist ne einfache Powershell-Lösung.

Get-Content -Path C:\sample\Zeiten.txt |
    ForEach-Object {
        $_ -match '(\d\d):(\d\d)' | Out-Null
        $Zeit = $Zeit + (New-TimeSpan -Hours $Matches[1] -Minutes $Matches[2])
    }
"Zeit gesamt: {0:g}" -f $Zeit 

... so als Vorschlag zum Starten ....  ;-)

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Wow - so kurz geht das. Erstmal vielen Dank. Aber wie starte ich das?
Mit VBS kenne ich mich etwas besser aus, hier verstehe ich nur Bahnhof.
Und kann ich das auch aus einem VBScript starten?
Grüße
Olli-AS

P.S. Wenn jemand noch einen VBS-Ansatz hat wäre ich etwas glücklicher. 

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Moin,

 

warum VBScript? Was steckt denn hinter der Anforderung? Vermutlich wäre jetzt der richtige Zeitpunkt, mal die Aufgabe zu beschreiben, die du eigentlich lösen musst, und nicht nur auf ein Detail zu schauen.

 

Gruß, Nils

 

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
vor 2 Stunden schrieb Olli-As:

Wow - so kurz geht das. Erstmal vielen Dank. Aber wie starte ich das?

 

Powrshell lernen kann im Jahr 2018 nicht schaden. Auch ist es nicht verboten, selbst tätig werden. Ich hab für dich etwas gefunden, am besten anmelden und loslegen: https://mva.microsoft.com/de-de/training-courses/windows-powershell-3-0-f-r-einsteiger-teil-1-8545

  • Like 1

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Hallo Nils,
ja, dann fange ich mal an. Ich soll aus einer Html-Datei alle Zeiten auslesen,
vor denen wie schon beschrieben "gesamt 0x:xx" stehen. Von Dir fand
ich dieses Script:

DateStart = #1 / 1 / 1601#
DateEnd = DateStart
Dim Time(2)
Time(0) = "00:30"
Time(1) = "00:25"
Time(2) = "00:15"
For Each PartTime In Time
DateEnd = DateAdd("h", Left(PartTime, 2), DateEnd)
DateEnd = DateAdd("n", Right(PartTime, 2), DateEnd)
Next
WScript.Echo "Gesamt: " & DateDiff("d", DateStart, DateEnd) & " Tage, " & FormatDateTime(DateEnd, vbShortTime)
WScript.Echo "... oder " & DateDiff("n", DateStart, DateEnd) & " Minuten gesamt."

Das würde ich gerne einsetzen, habe aber die Schwierigkeit, wie ich aus meiner o.g. Datei die
Time(0), Time(1) ggf. bis Beispiel Time(12) befülle. Bei Dir sind die Werte ja fest vorgeben und
in meinem Fall wären sie variabel (Time(0) = variabler Wert usw.  aus Html-Datei einlesen). Ich hoffe ich
konnte mich klar genug ausdrücken.  Gerne sollte es VBS sein, da die PowerShell für mich z.Zt.
noch ein "Böhmisches Dorf" ist, heißt aber nicht, das ich mich dieser Sache verschließe! 
Gruß Olli

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
vor 2 Stunden schrieb Olli-As:

Mit VBS kenne ich mich etwas besser aus, hier verstehe ich nur Bahnhof.

Hmmm ... wenn Du ansatzweise der englischen Sprache mächtig bist, ist Powershell-Code quasi selbsterklärend. Die meisten cmdlets (so heißen die nativen Powershell-Befehle - gesprochen "kommahndlets") machen ziemlich genau das, wonach sie klingen. Get-Content z.B. "extrahiert" den Inhalt einer Datei und gibt ihn entweder auf der Konsole aus oder reicht ihn per Pipeline ( | ) an das nächste cmdlet weiter.  ... usw. und so fort ...

Sich die Grundlagen von Powershell draufzuschaffen dauert nicht lange. Und wenn Du noch ne Weile in Windows-Umgebungen unterwegs sein möchtest und das vielleicht sogar beruflich, solltest Du Dir meiner Meinung nach eher Powershell aneignen statt VBScript.

Es gibt quasi unzählige auch kostenlose Quellen im Internet, nicht zuletzt dieses Forum.

Ein guter und sogar einigermaßen unterhaltsamer Start gelingt bestimmt mit dem kostenlosen Video-Kurs der Microsoft Virtuall Academy - Getting Started with Powershell. Die Videos haben eine Gesamtlänge von ca. 8 bi 10 Stunden, aber danach hast Du mit Sicherheit das Nötigste drauf. ;-)

vor 6 Minuten schrieb Olli-As:

...

Das würde ich gerne einsetzen, habe aber die Schwierigkeit, wie ich aus meiner o.g. Datei die
Time(0), Time(1) ggf. bis Beispiel Time(12) befülle. ...

Das klingt danach, als wärst Du bei VBScript auch nicht wirklich der Profi. ('bin ich übrigens auch nicht ;-) )

Wie oben schon geschrieben: die Einstiegshürden sind bei Powershell deutlich niedriger als bei VBScript.

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Moin,

 

nein, du sprichst immer noch von dem Detail, nicht von der ganzen Aufgabe. Warum sollst du die HTML-Datei auslesen? Was soll mit dem Ergebnis geschehen? Sol das einmalig passieren oder regelmäßig? Es ist leichter, eine passende Empfehlung auszusprechen, wenn man weiß, was am Ende das gewünschte Ergebnis ist.

 

Gruß, Nils

 

  • Like 1

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Guten Abend Nils,
ich habe eine Html-Datei/Tabelle, die wie folgt ausieht:
Zeiten:                    von              bis                     = gesamt Stunden
akt/datum             02:30  Uhr  04:00 Uhr        gesamt  01:30 Std.
akt/datum             04:30  Uhr  07:00 Uhr        gesamt  02:30 Std.
akt/datum             01:00  Uhr  04:00 Uhr        gesamt  03:00 Std.
akt/datum             07:15  Uhr  09:00 Uhr        gesamt  01:45 Std.
usw.
Die gesamt Stunden möchte ich einmal in der Woche addieren und das Ergebnis
unterhalb der Stunden zurück in die Html schreiben, am besten so:
                                                                              _________________
                                                                              gesamt 07:45 Std. per Woche
                                                                             =================
Wie BofH_666 schon bemerkte, hast Du es mit einem Amateur zu tun, der
VBScript noch einigermaßen versteht und mit einer PowerShell-Lösung
zur Zeit überfordert wäre. Ich habe aber verstanden das VBS wohl eine
aussterbende Spezies ist und für die Zukunft wohl umdenken muß.
Deshalb wäre ich in meinem Falle über eine VBS-Lösung glücklicher.
Ach ja zu deiner Frage noch - das Script sollte regelmäßig laufen.
Gruß Olli

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Hmmm ... da fallen mir doch gleich weitere Fragen ein: Woher kommt diese HTML-Datei/Tabelle denn? Wäre es nicht besser, das Erstellen der Tabelle so zu pimpen, dass die Gesamtsumme gleich mit ausgegeben wird? Sowas kann man auch mit Powershell machen.  ;-)

Wir wollen das große ganze sehen!   :D;-)

  • Like 1

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

...und wenn das einfaches HTML wäre, dann könnte man das in ein XML laden und da schön rausparsen. Oder in den IE, wenn es ein schönes DOM hat. Oder oder oder :-))

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Guten Abend an alle die schon geantwortet haben,

da hat wohl keiner eine Idee mehr in Punkto VBS;(
Die Problematik bei mir liegt nicht wie ich die Zeiten auslese,
sondern sie mit VBS zusammen addiere.
Da habe ich schon Dr. Google zu Rate gezogen, leider
ohne Erfolg. So bin ich auch zu Euch geraten.
Ich soll einfach nur die Zeiten einer ganz einfachen
HTML-Site in ein variables Array einlesen und dann
zusammen zählen. Da liegt mein Problem!
Die Html-Dat. wird  von unseren Vereinsmitgliedern
manuell befüllt und ich würde ihnen gerne, die im
Verein geleisteten Std., einmal wöchentlich repräsentieren.
Gruß Olli

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Hi,

 

wo bzw. wie befüllen die Mitglieder denn die HTML Dateien? Ist da evtl. ein PHP Script o.ä. im Hintergrund auf einem Webserver? Dann wäre das der Punkt zum Ansetzen wo du die Zeiten direkt "automatisch" zusammenrechnen könntest.

 

Ansonsten leg es eben auf einen Webserver und mach es bzw. lass es mit PHP machen.

 

Gruß

Jan

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

=alles nett gemeint, aber "Nein", bitte nur nicht noch " PHP u. andere Verwirrungen". Trotzdem Danke! 

Der Kern, meiner Frage sollte klar definiert sein.

Jetzt von mir eine Frage, wie kann ich Euch meinen bestehenden Code im "Edit-Modus" posten?

L.G. Olli  

 

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Moin,

 

abgesehen davon, ist deine Rechenfrage, die du als das eigentliche Problem bezeichnest, doch bereits beantwortet.

 

Also, entweder sprechen wir über das Gesamte oder wir lassen es ganz.

 

Gruß, Nils

 

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden

×