Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen (A bis Z)

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, 2969 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 ..
Ähnliche Inhalte
Batch & Shell
gelöst Dateien aus CSV mit Batch suchen (5)

Frage von joes1609 zum Thema Batch & Shell ...

Batch & Shell
gelöst Skript für: Automatisch generierte CSV Datei (3)

Frage von janelsaesser zum Thema Batch & Shell ...

VB for Applications
gelöst CSV Datei automatisch bearbeiten und abspeichern (6)

Frage von klaus1985 zum Thema VB for Applications ...

Windows Server
gelöst PowerShell Inhalt einer csv Datei löschen (4)

Frage von makaroni zum Thema Windows Server ...

Neue Wissensbeiträge
Multimedia

Raspberry Pi als Digital-Signage-Computer

(1)

Information von BassFishFox zum Thema Multimedia ...

Windows Update

Novemberpatches und Nadeldrucker bereiten Kopfschmerzen

(15)

Tipp von MettGurke zum Thema Windows Update ...

Windows 10

Abhilfe für Abstürze von CDPUsersvc auf Win10 1607 und 2016 1607

(7)

Tipp von DerWoWusste zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Windows Server
Kennwort vergessen bei Hyper vserver 2012r (26)

Frage von jensgebken zum Thema Windows Server ...

Router & Routing
Freigabe aus anderem Netz nicht erreichbar (21)

Frage von McLion zum Thema Router & Routing ...

Batch & Shell
Batch Programm verhalten bei shoutdown -p (19)

Frage von Michael-ITler zum Thema Batch & Shell ...

Visual Studio
Vb.net-Tool zum Erzeugen einer Outlook-E-Mail (18)

Frage von ahstax zum Thema Visual Studio ...