Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Csv Datei Tonerwerte prüfen und unter 30 Prozent Emailmeldung

Frage Entwicklung

Mitglied: LordKingPin

LordKingPin (Level 1) - Jetzt verbinden

16.07.2010 um 22:30 Uhr, 2951 Aufrufe, 2 Kommentare

Hallo,

Ich habe eine Tabelle genannt Toner.csv die so aus sieht:

Device,Serial Number,Location,Toner Level / Black,Toner Level / Cyan,Toner Level / Magenta,Toner Level / Yellow,
FS-1118MFP,XLK5505XXX,," 6%",,,,
TASKalfa 300ci,QJE8Z00XXX,," 22%"," 37%"," 39%"," 39%",
FS-3900DN,XLN6Z39XXX,," 25%",,,,
Canon iR-ADV C5030,ETF01XXX,," 56%"," 31%"," 31%"," 25%",

Einmal am Tag erhalte ich eine neue Tabelle wo ich im Prinzip immer per Hand kontrolliere, welche Maschine unter 30% Toner hat.
Dementsprechend bestelle ich den Toner und notiere mir das in einer Liste.
Am nächsten Tag das gleiche spielchen wieder von vorn mit einer aktuellen csv nur muß ich dabei jedes mal an die Maschinen denken für die ich bereits einen Toner bestellt habe.
Diesen Vorgang würde ich gerne automatisieren,
so dass ich die Datei nur quasi "einlesen" muß und ein Script/programm das kontrolliert und mich dementsprechend via Email benachrichtigt ob ein Wert unter 30% ist und wenn ja welche Maschine/Toner genau.

Da einmal am Tag eine aktuelle Toner.csv eingelesen werden soll, sollte ich keine Email von einer Maschine bekommen die am Vortag schon gemeldet wurde.
Jedoch sobald der Wert wieder über 90% ist,darf mir wieder bez. dieser Maschine eine Email geschickt werden.


Ist sowas irgendwie realisierbar? Ich habe null Plan wie ich das umsetzen könnte.
Bin für jede Hilfe dankbar.

kind regards
LordKingPin
Mitglied: bastla
17.07.2010 um 12:57 Uhr
Hallo LordKingPin!

Nicht zuletzt aufgrund der Formatierung der Tonerwerte (Anführungs- und Prozentzeichen) würde ich in diesem Fall zu VBS greifen - etwa so:
01.
Toner = "D:\Toner.csv" 
02.
Bestellt = "D:\Bestellt.txt" 
03.
Bestellen = 30 'Grenzwert für Nachbestellung 
04.
Geliefert = 90 'Grenzwert für "wieder da" 
05.
 
06.
Set fso = CreateObject("Scripting.FileSystemObject") 
07.
T = Split(fso.OpenTextFile(Toner).ReadAll, vbCrLf) 'Toner-Datei einlesen und zeilenweise in Array schreiben 
08.
 
09.
Header = Split(T(0), ",") 'Spaltenüberschriften (Toner-Bezeichnung) einlesen 
10.
 
11.
If fso.FileExists(Bestellt) Then 'Wenn Bestelllisten-Datei vorhanden, ... 
12.
    Set Best = fso.OpenTextFile(Bestellt, 1, True) 
13.
    If Not Best.AtEndOfStream Then B = Best.ReadAll  '... gesamte Bestellliste aus Datei lesen 
14.
    Best.Close 
15.
End If     
16.
If B = "" Then B = vbCrLf 'Formatierung für Vergleich anpassen 
17.
 
18.
Mail = "" 'Variable für Mailtext 
19.
 
20.
For i = 1 To UBound(T) 'alle Druckerdatensätze (= ab Zeile 2 der .csv) durchgehen 
21.
    PrinterData = Split(T(i), ",") 'Datensatz des Druckers in Felder zerlegen 
22.
    Info = PrinterData(0) & "," & PrinterData(1) 'Drucker-Daten ("Device" und "Serial") in Variable schreiben 
23.
 
24.
    For j = 3 To 6 'Felder mit Toner-Info durchgehen 
25.
        If InStr(PrinterData(j), "%") > 0 Then 'Prozentsatz vorhanden? 
26.
 
27.
            Wert = CInt(Replace(Replace(PrinterData(j), "%", ""), """", "")) 'Prozentwert als Zahl ermitteln 
28.
            TonerDaten = Info & "," & Header(j) 'Daten für Toner zusammenstellen (Drucker-Daten + Toner-Name lt Spaltenüberschrift) 
29.
 
30.
            If Wert < Bestellen And InStr(B, TonerDaten) = 0 Then 'Grenzwert unterschritten und noch nicht in Liste? 
31.
                Mail = Mail & vbCrLf & TonerDaten 'in Mailtext ... 
32.
                B = B & vbCrLf & TonerDaten '... und Bestellliste aufnehmen 
33.
            End If 
34.
 
35.
            If Wert > Geliefert Then 'Grenzwert für "wieder da" überschritten? 
36.
                B = Replace(B, vbCrLf & TonerDaten, "") 'aus Bestellliste entfernen 
37.
            End If 
38.
 
39.
        End If 
40.
    Next 'Feld 
41.
 
42.
Next 'Satz 
43.
 
44.
fso.CreateTextFile(Bestellt).Write B 'Bestellliste in Datei schreiben 
45.
 
46.
If Mail <> "" Then 
47.
    WScript.Echo "Mail mit Inhalt:" & vbCrLf & vbCrLf & Mail & vbCrLf & vbCrLf & "versenden!" 
48.
End If
Die vorletzte Zeile dient nur als Demo; hier würde sich - je nach verwendetem Mailer - ev anbieten, den Inhalt der Variablen "Mail" in eine weitere Textdatei zu schreiben ...

Grüße
bastla
Bitte warten ..
Mitglied: LordKingPin
30.07.2010 um 01:27 Uhr
Hallo bastla,

Vielen Dank für den VBS Code, genau so etwas habe ich gesucht :o)
Das ganze funktioniert spitzenmässig
Leider lag ich die letzten Wochen Krankheitsbedingt flach, darum die späte Antwort.

Ich kämpfe noch etwas mit der Mail-Variablen. Habe Outlook 2007 im Einsatz.
Wenn jemand dafür noch einen Ansatz / Lösung hätte währe das spitzenmässig ;o)

Nochmals vielen herzlichen Dank für die Hilfe :o)

kind regards
LordKingPin
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
VB for Applications
gelöst Bestimmte Spalten aus CSV-Datei auslesen (VBS) (9)

Frage von Gurkenhobel zum Thema VB for Applications ...

VB for Applications
Bestimmte Daten aus eine CSV-Datei in eine Excel-Tabelle importieren (2)

Frage von MariaElena zum Thema VB for Applications ...

Batch & Shell
gelöst PS Werte CSV-Datei in AD Attribut (3)

Frage von lupolo zum Thema Batch & Shell ...

Batch & Shell
Mehrere AD Benutzer aus CSV Datei mit PowerShell erstellen (1)

Frage von windelterrorist zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (17)

Frage von liquidbase zum Thema Windows Update ...