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, 2963 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
CSV-Datei nach Excel importieren (5)

Frage von mrvfbnummer2 zum Thema Batch & Shell ...

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 ...

Neue Wissensbeiträge
Mac OS X

Apple hat macOS High Sierra veröffentlicht

(4)

Information von Frank zum Thema Mac OS X ...

Viren und Trojaner

Ransomware or Wiper? RedBoot Encrypts Files but also Modifies Partition Table

(4)

Information von BassFishFox zum Thema Viren und Trojaner ...

Notebook & Zubehör

WOL bei HP Notebooks

(8)

Erfahrungsbericht von Henere zum Thema Notebook & Zubehör ...

Heiß diskutierte Inhalte
Windows Server
Seit IP Umstellung DC DNS Fehler (29)

Frage von Yaimael zum Thema Windows Server ...

Windows 10
gelöst Netzwerkkarte schaltet sich erst nach dem Logon ein (24)

Frage von DerWoWusste zum Thema Windows 10 ...

Grafik
gelöst CAD Arbeitsplätze (17)

Frage von Diddi93 zum Thema Grafik ...

Weiterbildung
gelöst Fest angestellter Admin oder Systemhaus Admin mit Kundenbetreuung? (16)

Frage von Voiper zum Thema Weiterbildung ...