1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Deutsch
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

Script/ Programm zum Suchen und melden

  • philipp21
  • 7. Oktober 2007 um 13:32
  • Unerledigt
  • philipp21
    1
    philipp21
    Gast
    • 7. Oktober 2007 um 13:32
    • #1

    Hallo,
    ich versuche ein Script/ oder Pogramm zu schreiben, dass zum einem die Titel von Word und Excel Dateien durchläuft (Titel-Aufbau: XXXX 15.01.2007) und immer nur auf das Datum achtet und den Text vor dem Datum ignoriert. Immer wenn ein bestimmter Zeitraum vom aktuellem Datum zum Datum im Titel der Datei verstriechen ist soll 1. ein Popup aufgehen aber nur eins also nicht für alle x Dateien jeweils eins sondern nur eine Meldung das es Titel gibt die ein Datum haben das über den definierten Zeitraum herrüber sind und 2. alle Titel dieser Dateien in eine Liste hineinschreibt.

    Wäre echt super wenn mir jemand weiterhelfen könnte


    Ich bin abspluter Script/Programmieranfänger ich brauche genaue Anweisungen!! BITTTTEEE

  • samyjr
    8
    samyjr
    Mitglied
    Reaktionen
    4
    Punkte
    609
    Beiträge
    117
    • 7. Oktober 2007 um 14:05
    • #2

    also ich würde dazu java verwenden, weil java eine riesige standard lib hat, wo alle funktionen die da brauchen könntest, schon drinnen sind (also dateinamen aus einem verzeichnis in eine liste zu bekommen), Datums Objekte (Date), "regex" um das datum aus dem namens string zu bekommen, ...

    muss es C/C++ sein?

  • philipp21
    1
    philipp21
    Gast
    • 7. Oktober 2007 um 14:36
    • #3

    nein mir ist egal welche sprache es reicht auch wenn es ein kleines script ist aber ich kann nur etwas delphi und vba. Kann mir jemand da schritt für schritt durch helfen??? ach und das ist das erste mal das ich dieses forum benutze, ist das normal das man eine email bekommt wenn man eine antwort auf sein post bekommt?? oder ist ein ein feature das Geld kostet??

  • Paulchen
    1
    Paulchen
    Gast
    • 7. Oktober 2007 um 14:38
    • #4
    Zitat von philipp21

    ach und das ist das erste mal das ich dieses forum benutze, ist das normal das man eine email bekommt wenn man eine antwort auf sein post bekommt?? oder ist ein ein feature das Geld kostet??

    Es wurden gerade 100 € von deinem Konto abgebucht.

  • philipp21
    1
    philipp21
    Gast
    • 7. Oktober 2007 um 15:10
    • #5

    ok das verbuche ich mal unter schlechter Scherz aber wer kann mir den bei meinem Programmierproblem helfen

  • tomi1986
    1
    tomi1986
    Gast
    • 7. Oktober 2007 um 15:26
    • #6
    Zitat von philipp21

    Hallo,
    ich versuche ein Script/ oder Pogramm zu schreiben, dass zum einem die Titel von Word und Excel Dateien durchläuft (Titel-Aufbau: XXXX 15.01.2007) und immer nur auf das Datum achtet und den Text vor dem Datum ignoriert. Immer wenn ein bestimmter Zeitraum vom aktuellem Datum zum Datum im Titel der Datei verstriechen ist soll 1. ein Popup aufgehen aber nur eins also nicht für alle x Dateien jeweils eins sondern nur eine Meldung das es Titel gibt die ein Datum haben das über den definierten Zeitraum herrüber sind und 2. alle Titel dieser Dateien in eine Liste hineinschreibt.

    Wäre echt super wenn mir jemand weiterhelfen könnte


    Ich bin abspluter Script/Programmieranfänger ich brauche genaue Anweisungen!! BITTTTEEE

    also gut hab ich das richtig verstanden:
    du willst ein programm dass dir ermittelt wieviele und welche Dateien in dem bestimmten Zeitinterval abgelegt wurden....

    ich würd mir mal über den Dateinamen gedanken machen... brauchst du das datum wirklich darin also im dateinamne?!?
    ja oder nein!?
    denn eine datei hat ja in den eigenschaften sowieso drinnstehen wann sie erstellt wurde....
    ok das kann bei kopieren verloren gehn!

    Daher:
    datum eher im Format:
    YYYY_MM_DD
    also zum beispiel 2006_10_07
    oder einfach nur 20061007 abspeicher

    wenn du unbedingt willst auch 07102006
    wie auch immer nur unbedingt OHNE punkt
    denn sonst wirds word / excel nichtmehr öffnen können...also können schon nur müsstest dann immer vom Word mitn "datei öffnen" reingehne oder du änderst täglich das automatische programm mit dem die datei geöffnet wird weil die datei ja dann zum beispiel eine .07.10.2006 datei und keine .doc oder .xls datei wäre:)

    und sonst würd ich dir vorschlagen:

    alle dateien des verzeichnis einlesen (dazu müssen alle dateien in einem bestimmten verzeichnis liegen)

    dann das datum rauslesen!
    das kannst du entweder machen indem du die letzten stellen nimmst, also die datumslänge je nachdem (also 2006_10_07 oder was auch immer) hat das eine andere länge
    dabei musst du darauf achten monate bzw tage unter 10 auch mit ner 0 abzuspeicher...
    also statt 1 für jänner nimmst 01 ...

    dann hast einfach einen string also text mit den werten und den musst du dann nurnoch trennen...

    also bei 2006_10_07:
    die ersten 4 zeichen ->jahr
    6 +7 zeichen ->monat
    9 + 10 zeichen ->tag

    dann ermittelst das aktuelle datum und schaust einfach ob ein gewisser zeitunterschied vorhanden ist...
    das kannst entweder händisch machen (also selbst ausprogrammieren) oder auch zeitvergleichsoperationen verwenden!

    Eins würd ich noch gerne wissen:
    wie willst du das programm starten?!?

    beim pc start!?
    beim anmelden?!?
    händisch?!?
    so dass alle 10 minuten automatisch untersucht ....

    aber dass dir hier irgendwer sowas ausprogramiert glaub ich ehrlichgesagt nicht denn das klingt zwar trivial erforder aber sicher einen hohen zeitaufwand und vorallem testaufwand:)
    weil NUTZEN hast ja kaum von dem programm außer windowsinterne funktionen:)
    weil das kann es windows von sich aus auch (ich nehm mal an du verwendest windows)

    aber viel glück, das konzept was ich dir oben geschrieben habe sollte so funken!

  • a9bejo
    21
    a9bejo
    Mitglied
    Reaktionen
    42
    Punkte
    4.697
    Beiträge
    913
    • 8. Oktober 2007 um 19:59
    • #7

    Hier ist eine Loesungen in Ruby. Das Script kann man entweder mit Ruby auf C oder mit Ruby auf Java ausfuehren.

    Wenn man das Script mit Ruby auf Java ausfuehrt, dann erfuellt es die Anforderungen genau, d.h. das Ergebnis wird tatsaechlich in einem Popup ausgegeben, wenn neue Dateien gefunden wurden.

    Was ich fuer ziemlich unsinning halte: Standard output reicht voellig aus, und das Popup macht das script weniger flexibel. Wenn man das script nicht mit JRuby sondern mit MRI (C Ruby) ausfuehrt, dann bekommt man kein Popup sondern eine ganz normale Ausgabe auf STDOUT.

    Aufruf sieht so aus:

    Code
    ruby searchandnotify.rb FOLDER DAYS OUTPUT_FILE

    wobei FOLDER der name des Ordners ist, in dem sich die Dateien befinden, DAYS ist das Interval in Tagen und OUTPUT_FILE ist der Name der Datei, in die die Ergebnisse geschrieben werden.


    Die JRuby Variante startet man ganz genauso, nur eben mit jruby anstatt mit ruby.

    Also z.b.

    Code
    jruby searchandnotify.rb /home/trash/msword 40 ergebnisse.csv

    sucht alle Dateien im Ordner /home/trash/msword, mit einem Datum innerhalb der letzten 40 Tage und speichert das Ergebnis in 'ergebnisse.csv' .

    Code
    #!/usr/env ruby
    # (c) Benjamin Ferrari
    #
    # This program is free software: you can redistribute it and/or modify
    # it under the terms of the GNU General Public License as published by
    # the Free Software Foundation, either version 3 of the License, or
    # (at your option) any later version.
    #
    # This program is distributed in the hope that it will be useful,
    # but WITHOUT ANY WARRANTY; without even the implied warranty of
    # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    # GNU General Public License for more details.
    
    
    # You should have received a copy of the GNU General Public License
    # along with this program.  If not, see <http://www.gnu.org/licenses/>.
    
    
    require "date"
    date_pattern = "%d.%m.%Y"
    folder, interval, outfile = ARGV
    
    
    #find the dates
    dates = []
    Dir['#{folder}/**/*'].each do |filename| 
      if filename =~ /.* (\d\d\.\d\d\.\d{4})\..{3}$/
        date = Date.strptime($1, date_pattern)
        dates << date if (Date.today - date) < interval.to_i
      end
    end
    
    
    unless dates.empty?
    
    
      list = dates.collect{ |date| date.strftime(date_pattern) }.join("\n")
      File.new(outfile,'w').write(list)
    
    
      # Choose output method, depending if we run on Java or C.
      begin
        require 'java'
        def say message ; javax.swing.JOptionPane.showMessageDialog(nil, message) end
      rescue LoadError
        def say message ; puts message end
      end
      say "New files found:\n#{list} "
    end
    Alles anzeigen

    lg, Benjamin Ferrari, bookworm.at

  • Maximilian Rupp 27. Dezember 2024 um 12:04

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

Benutzerkonto erstellen Anmelden

Rechtliches

Impressum

Datenschutzerklärung

  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  • Deutsch
  • English
Zitat speichern