Olli-As 0 Geschrieben 3. November 2018 Melden Teilen Geschrieben 3. November 2018 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 Zitieren Link zu diesem Kommentar
BOfH_666 577 Geschrieben 3. November 2018 Melden Teilen Geschrieben 3. November 2018 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 .... Zitieren Link zu diesem Kommentar
Olli-As 0 Geschrieben 3. November 2018 Autor Melden Teilen Geschrieben 3. November 2018 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. Zitieren Link zu diesem Kommentar
NilsK 2.957 Geschrieben 3. November 2018 Melden Teilen Geschrieben 3. November 2018 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 Zitieren Link zu diesem Kommentar
Sunny61 807 Geschrieben 3. November 2018 Melden Teilen Geschrieben 3. November 2018 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 1 Zitieren Link zu diesem Kommentar
Olli-As 0 Geschrieben 3. November 2018 Autor Melden Teilen Geschrieben 3. November 2018 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 Zitieren Link zu diesem Kommentar
BOfH_666 577 Geschrieben 3. November 2018 Melden Teilen Geschrieben 3. November 2018 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. Zitieren Link zu diesem Kommentar
NilsK 2.957 Geschrieben 4. November 2018 Melden Teilen Geschrieben 4. November 2018 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 1 Zitieren Link zu diesem Kommentar
Olli-As 0 Geschrieben 4. November 2018 Autor Melden Teilen Geschrieben 4. November 2018 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 Zitieren Link zu diesem Kommentar
BOfH_666 577 Geschrieben 4. November 2018 Melden Teilen Geschrieben 4. November 2018 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! 1 Zitieren Link zu diesem Kommentar
daabm 1.366 Geschrieben 6. November 2018 Melden Teilen Geschrieben 6. November 2018 ...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 :-)) Zitieren Link zu diesem Kommentar
Olli-As 0 Geschrieben 7. November 2018 Autor Melden Teilen Geschrieben 7. November 2018 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 Zitieren Link zu diesem Kommentar
testperson 1.707 Geschrieben 7. November 2018 Melden Teilen Geschrieben 7. November 2018 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 Zitieren Link zu diesem Kommentar
Olli-As 0 Geschrieben 7. November 2018 Autor Melden Teilen Geschrieben 7. November 2018 =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 Zitieren Link zu diesem Kommentar
NilsK 2.957 Geschrieben 7. November 2018 Melden Teilen Geschrieben 7. November 2018 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 Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.