Ýòî íå îáðàçåö, à íåïîíÿòíî ÷òî. Ïðîñòî òèõèé óæàñ:
Öèòàòà:
Öèòàòà evgenmsch@vk
ìíå íóæíî ïðîñòî ÷òîáû ñêðèïò âûâåë òàêóþ âîò òàáëèöó »
|
Ãäå âûâåë, â ÷¸ì âûâåë? È ÷òî Âû áóäåòå äàëüøå äåëàòü ñ ýòèì âûâîäîì?
Öèòàòà:
Öèòàòà evgenmsch@vk
íå ïðèäèðàÿñü ê òðåì ïóíêòàì À Á è Â. »
|
ß, êîíå÷íî, ìîãó íå ïðèäèðàòüñÿ. Ìíå, ñîáñòâåííî, âñ¸ ðàâíî, êàê Âû áóäåòå ñòðîèòü ìîñò — âäîëü ðåêè èëè ïîïåð¸ê. Íî ïðîãðàììå ýòîãî íå îáúÿñíèøü. Îíà ðàáîòàåò ïî çàäàííîìó àëãîðèòìó. È äëÿ íå¸ «2+2=4». Íå «3», íå «5», íå «îêîëî 4».
Âû óâåðåíû, ÷òî â ðàññûëêå îòâåòñòâåííûì â òàáëèöå íóæåí èìåííî ñòîëáåö «Îòâåòñòâåííûé»? Ýòî æå òóïîå äóáëèðîâàíèå èíôîðìàöèè, íå íåñóùåå êàêîãî-ëèáî îñîáîãî ñìûñëà â óêàçàííîì êîíòåêñòå?!
 ìî¸ì ïðåäñòàâëåíèè íà åãî ìåñòå èìååò ñìûñë ñòîëáåö «Àâòîð».
Âïðî÷åì, Âàì âèäíåå. Èòàê — ïðàâèëüíûé ôàéë — « test2.txt» (ÿ äîáàâèë ñòðîê äëÿ òåñòèðîâàíèÿ):
÷èòàòü äàëüøå »
Êîä:
Àâòîð Îòâåòñòâåííûé Íàçâàíèå çàäà÷è Êàòåãîðèÿ çàäà÷è Ñòàòóñ Ñðîê ñäà÷è
ermolov@fozzy.ua chigrinov@fozzy.ua Óñòàíîâêà îáîðóäîâàíèÿ NCR Çàðåãèñòðèðîâàí 02.10.2014
ermolov@fozzy.ua sharashov@fozzy.ua Çàêóïêà îáîðóäîâàíèÿ Microsoft  ðàáîòå 06.10.2014
ermolov@fozzy.ua lebtag@fozzy.ua Çàêóïêà îáîðóäîâàíèÿ IBM Îòëîæåí 07.10.2014
ermolov@fozzy.ua chigrinov@fozzy.ua Îáó÷åíèå OmniWay  ðàáîòå 02.10.2014
ermolov@fozzy.ua metyaev@fozzy.ua Ïðîâåñòè òåíäåð Microsoft Çàðåãèñòðèðîâàí 02.10.2014
alekseev@fozzy.ua chigrinov@fozzy.ua Îòïðàâèòü ïîñûëêè Óêðïî÷òà Ïðèíÿò 10.10.2014
ermolov@fozzy.ua chigrinov@fozzy.ua Óñòàíîâêà îáîðóäîâàíèÿ NCR Çàðåãèñòðèðîâàí 02.10.2013
ermolov@fozzy.ua sharashov@fozzy.ua Çàêóïêà îáîðóäîâàíèÿ Microsoft  ðàáîòå 06.10.2013
ermolov@fozzy.ua lebtag@fozzy.ua Çàêóïêà îáîðóäîâàíèÿ IBM Îòëîæåí 07.10.2014
ermolov@fozzy.ua chigrinov@fozzy.ua Îáó÷åíèå OmniWay  ðàáîòå 02.10.2014
ermolov@fozzy.ua metyaev@fozzy.ua Ïðîâåñòè òåíäåð Microsoft Çàðåãèñòðèðîâàí 02.10.2013
alekseev@fozzy.ua chigrinov@fozzy.ua Îòïðàâèòü ïîñûëêè Óêðïî÷òà Ïðèíÿò 10.10.2014
Ñêðèïò:
÷èòàòü äàëüøå »
Êîä:
Option Explicit
Const adOpenStatic = 3
Const adLockOptimistic = 3
Const adCmdText = 1
Const cdoSendUsingPort = 2
Const cdoBasic = 1
Const strSchema = "http://schemas.microsoft.com/cdo/configuration/"
Dim strPathToSchema
Dim strSourceFile
Dim objFSO
Dim objDictionary
Dim strEMail
Dim strHTMLBody
strPathToSchema = "E:\Ïåñî÷íèöà\0362"
strSourceFile = "test2.txt"
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
If Not objFSO.FolderExists(strPathToSchema) Then
WScript.Echo "Folder [" & strPathToSchema & "] not found."
WScript.Quit 1
End If
If Not objFSO.FileExists(objFSO.BuildPath(strPathToSchema, strSourceFile)) Then
WScript.Echo "Source file [" & strSourceFile & "] not found."
WScript.Quit 2
End If
CreateSchema objFSO.BuildPath(strPathToSchema, "Schema.ini"), strSourceFile
Set objDictionary = WScript.CreateObject("Scripting.Dictionary")
With WScript.CreateObject("ADODB.Recordset")
.Open _
"SELECT [Àâòîð] " & _
"FROM [" & strSourceFile & "] " & _
"GROUP BY [Àâòîð] " & _
"ORDER BY [Àâòîð]", _
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source='" & strPathToSchema & "';Extended Properties=""text;""", _
adOpenStatic, adLockOptimistic, adCmdText
Do Until .EOF
objDictionary.Add .Fields.Item("Àâòîð").Value, Now()
.MoveNext
Loop
.Close
End With
For Each strEMail In objDictionary.Keys
With WScript.CreateObject("CDO.Message")
.From = "account@mail.ru"
.To = strEMail
.Subject = "Ñòàòóñû çàäà÷ íà " & Now()
With .Configuration.Fields
.Item(strSchema & "smtpserver") = "smtp.mail.ru"
.Item(strSchema & "sendusing") = cdoSendUsingPort
.Item(strSchema & "smtpserverport") = 25
.Item(strSchema & "smtpauthenticate") = cdoBasic
.Item(strSchema & "sendusername") = "account@mail.ru"
.Item(strSchema & "sendpassword") = "password"
.Item(strSchema & "smtpconnectiontimeout") = 10
.Update
End With
.BodyPart.Charset = "windows-1251"
strHTMLBody = _
"<html>" & vbCrLf & _
" <head>" & vbCrLf & _
" <meta http-equiv='Content-Type' content='text/html; charset=windows-1251'>" & vbCrLf & _
" <title>Ñòàòóñû çàäà÷ íà " & objDictionary.Item(strEMail) & "</title>" & vbCrLf & _
" <style>" & vbCrLf & _
" <!--" & vbCrLf & _
" p {" & vbCrLf & _
" font-family: Verdana;" & vbCrLf & _
" margin: 0.5em;" & vbCrLf & _
" }" & vbCrLf & _
" " & vbCrLf & _
" table {" & vbCrLf & _
" font-family: Verdana;" & vbCrLf & _
" border-collapse: collapse;" & vbCrLf & _
" margin: 0.5em;" & vbCrLf & _
" padding: 0.5em;" & vbCrLf & _
" border: medium solid;" & vbCrLf & _
" }" & vbCrLf & _
" " & vbCrLf & _
" caption {" & vbCrLf & _
" margin: 0.5em;" & vbCrLf & _
" font-weight: bold;" & vbCrLf & _
" font-size: small;" & vbCrLf & _
" }" & vbCrLf & _
" " & vbCrLf & _
" thead {" & vbCrLf & _
" text-align: center;" & vbCrLf & _
" font-weight: bold;" & vbCrLf & _
" background-color: yellowgreen;" & vbCrLf & _
" border: medium solid;" & vbCrLf & _
" font-size: medium;" & vbCrLf & _
" }" & vbCrLf & _
" " & vbCrLf & _
" tr {" & vbCrLf & _
" font-size: x-small;" & vbCrLf & _
" } " & vbCrLf & _
" " & vbCrLf & _
" tr.odd {" & vbCrLf & _
" background-color: beige;" & vbCrLf & _
" }" & vbCrLf & _
" " & vbCrLf & _
" tr.even {" & vbCrLf & _
" background-color: bisque;" & vbCrLf & _
" }" & vbCrLf & _
" " & vbCrLf & _
" tr.expired {" & vbCrLf & _
" color: maroon;" & vbCrLf & _
" background-color: coral;" & vbCrLf & _
" }" & vbCrLf & _
" " & vbCrLf & _
" td {" & vbCrLf & _
" border: thin solid;" & vbCrLf & _
" margin: 0.5em;" & vbCrLf & _
" }" & vbCrLf & _
" -->" & vbCrLf & _
" </style>" & vbCrLf & _
" </head>" & vbCrLf & _
" <body>" & vbCrLf & _
" <p>Óâàæàåìûé ñîòðóäíèê, " & strEMail & "!</p>" & vbCrLf & _
" <table>" & vbCrLf & _
" <caption>Ñòàòóñû çàäà÷ íà " & objDictionary.Item(strEMail) & "</caption>" & vbCrLf & _
" <thead>" & vbCrLf & _
" <tr>" & vbCrLf & _
" <td>Íàçâàíèå çàäà÷è</td>" & vbCrLf & _
" <td>Êàòåãîðèÿ çàäà÷è</td>" & vbCrLf & _
" <td>Ñòàòóñ</td>" & vbCrLf & _
" <td>Ñðîê ñäà÷è</td>" & vbCrLf & _
" <td>Îòâåòñòâåííûé</td>" & vbCrLf & _
" </tr>" & vbCrLf & _
" </thead>" & vbCrLf
With WScript.CreateObject("ADODB.Recordset")
.Open _
"SELECT * " & _
"FROM [" & strSourceFile & "] " & _
"WHERE [Àâòîð] = '" & strEMail & "'", _
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source='" & strPathToSchema & "';Extended Properties=""text;""", _
adOpenStatic, adLockOptimistic, adCmdText
Do Until .EOF
If DateDiff("d", .Fields.Item("Ñðîê ñäà÷è").Value, objDictionary.Item(strEMail)) > 0 Then
strHTMLBody = strHTMLBody & " <tr class='expired'>" & vbCrLf
Else
If .AbsolutePosition Mod 2 = 1 Then
strHTMLBody = strHTMLBody & " <tr class='odd'>" & vbCrLf
Else
strHTMLBody = strHTMLBody & " <tr class='even'>" & vbCrLf
End If
End If
With .Fields
strHTMLBody = strHTMLBody & _
" <td>" & .Item("Íàçâàíèå çàäà÷è").Value & "</td>" & vbCrLf & _
" <td>" & .Item("Êàòåãîðèÿ çàäà÷è").Value & "</td>" & vbCrLf & _
" <td>" & .Item("Ñòàòóñ").Value & "</td>" & vbCrLf & _
" <td>" & .Item("Ñðîê ñäà÷è").Value & "</td>" & vbCrLf & _
" <td>" & .Item("Îòâåòñòâåííûé").Value & "</td>" & vbCrLf & _
" </tr>" & vbCrLf
End With
.MoveNext
Loop
.Close
End With
strHTMLBody = strHTMLBody & _
" </table>" & vbCrLf & _
" </body>" & vbCrLf & _
"</html>"
.HTMLBody = strHTMLBody
.AutoGenerateTextBody = True
.BodyPart.GetStream().SaveToFile objFSO.BuildPath(strPathToSchema, strEMail & " " & Replace(objDictionary.Item(strEMail), ":", "_") & ".eml"), 2
'.Send
End With
Next
objDictionary.RemoveAll
With WScript.CreateObject("ADODB.Recordset")
.Open _
"SELECT [Îòâåòñòâåííûé] " & _
"FROM [" & strSourceFile & "] " & _
"GROUP BY [Îòâåòñòâåííûé] " & _
"ORDER BY [Îòâåòñòâåííûé]", _
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source='" & strPathToSchema & "';Extended Properties=""text;""", _
adOpenStatic, adLockOptimistic, adCmdText
Do Until .EOF
objDictionary.Add .Fields.Item("Îòâåòñòâåííûé").Value, Now()
.MoveNext
Loop
.Close
End With
For Each strEMail In objDictionary.Keys
With WScript.CreateObject("CDO.Message")
.From = "account@mail.ru"
.To = strEMail
.Subject = "Ñòàòóñû çàäà÷ íà " & Now()
With .Configuration.Fields
.Item(strSchema & "smtpserver") = "smtp.mail.ru"
.Item(strSchema & "sendusing") = cdoSendUsingPort
.Item(strSchema & "smtpserverport") = 25
.Item(strSchema & "smtpauthenticate") = cdoBasic
.Item(strSchema & "sendusername") = "account@mail.ru"
.Item(strSchema & "sendpassword") = "password"
.Item(strSchema & "smtpconnectiontimeout") = 10
.Update
End With
.BodyPart.Charset = "windows-1251"
strHTMLBody = _
"<html>" & vbCrLf & _
" <head>" & vbCrLf & _
" <meta http-equiv='Content-Type' content='text/html; charset=windows-1251'>" & vbCrLf & _
" <title>Ñòàòóñû çàäà÷ íà " & objDictionary.Item(strEMail) & "</title>" & vbCrLf & _
" <style>" & vbCrLf & _
" <!--" & vbCrLf & _
" p {" & vbCrLf & _
" font-family: Verdana;" & vbCrLf & _
" margin: 0.5em;" & vbCrLf & _
" }" & vbCrLf & _
" " & vbCrLf & _
" table {" & vbCrLf & _
" font-family: Verdana;" & vbCrLf & _
" border-collapse: collapse;" & vbCrLf & _
" margin: 0.5em;" & vbCrLf & _
" padding: 0.5em;" & vbCrLf & _
" border: medium solid;" & vbCrLf & _
" }" & vbCrLf & _
" " & vbCrLf & _
" caption {" & vbCrLf & _
" margin: 0.5em;" & vbCrLf & _
" font-weight: bold;" & vbCrLf & _
" font-size: small;" & vbCrLf & _
" }" & vbCrLf & _
" " & vbCrLf & _
" thead {" & vbCrLf & _
" text-align: center;" & vbCrLf & _
" font-weight: bold;" & vbCrLf & _
" background-color: yellowgreen;" & vbCrLf & _
" border: medium solid;" & vbCrLf & _
" font-size: medium;" & vbCrLf & _
" }" & vbCrLf & _
" " & vbCrLf & _
" tr {" & vbCrLf & _
" font-size: x-small;" & vbCrLf & _
" } " & vbCrLf & _
" " & vbCrLf & _
" tr.odd {" & vbCrLf & _
" background-color: beige;" & vbCrLf & _
" }" & vbCrLf & _
" " & vbCrLf & _
" tr.even {" & vbCrLf & _
" background-color: bisque;" & vbCrLf & _
" }" & vbCrLf & _
" " & vbCrLf & _
" tr.expired {" & vbCrLf & _
" color: maroon;" & vbCrLf & _
" background-color: coral;" & vbCrLf & _
" }" & vbCrLf & _
" " & vbCrLf & _
" td {" & vbCrLf & _
" border: thin solid;" & vbCrLf & _
" margin: 0.5em;" & vbCrLf & _
" }" & vbCrLf & _
" -->" & vbCrLf & _
" </style>" & vbCrLf & _
" </head>" & vbCrLf & _
" <body>" & vbCrLf & _
" <p>Óâàæàåìûé ñîòðóäíèê, " & strEMail & "!</p>" & vbCrLf & _
" <table>" & vbCrLf & _
" <caption>Ñòàòóñû çàäà÷ íà " & objDictionary.Item(strEMail) & "</caption>" & vbCrLf & _
" <thead>" & vbCrLf & _
" <tr>" & vbCrLf & _
" <td>Íàçâàíèå çàäà÷è</td>" & vbCrLf & _
" <td>Êàòåãîðèÿ çàäà÷è</td>" & vbCrLf & _
" <td>Ñòàòóñ</td>" & vbCrLf & _
" <td>Ñðîê ñäà÷è</td>" & vbCrLf & _
" <td>Îòâåòñòâåííûé</td>" & vbCrLf & _
" </tr>" & vbCrLf & _
" </thead>" & vbCrLf
With WScript.CreateObject("ADODB.Recordset")
.Open _
"SELECT * " & _
"FROM [" & strSourceFile & "] " & _
"WHERE [Îòâåòñòâåííûé] = '" & strEMail & "'", _
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source='" & strPathToSchema & "';Extended Properties=""text;""", _
adOpenStatic, adLockOptimistic, adCmdText
Do Until .EOF
If DateDiff("d", .Fields.Item("Ñðîê ñäà÷è").Value, objDictionary.Item(strEMail)) > 0 Then
strHTMLBody = strHTMLBody & " <tr class='expired'>" & vbCrLf
Else
If .AbsolutePosition Mod 2 = 1 Then
strHTMLBody = strHTMLBody & " <tr class='odd'>" & vbCrLf
Else
strHTMLBody = strHTMLBody & " <tr class='even'>" & vbCrLf
End If
End If
With .Fields
strHTMLBody = strHTMLBody & _
" <td>" & .Item("Íàçâàíèå çàäà÷è").Value & "</td>" & vbCrLf & _
" <td>" & .Item("Êàòåãîðèÿ çàäà÷è").Value & "</td>" & vbCrLf & _
" <td>" & .Item("Ñòàòóñ").Value & "</td>" & vbCrLf & _
" <td>" & .Item("Ñðîê ñäà÷è").Value & "</td>" & vbCrLf & _
" <td>" & .Item("Îòâåòñòâåííûé").Value & "</td>" & vbCrLf & _
" </tr>" & vbCrLf
End With
.MoveNext
Loop
.Close
End With
strHTMLBody = strHTMLBody & _
" </table>" & vbCrLf & _
" </body>" & vbCrLf & _
"</html>"
.HTMLBody = strHTMLBody
.AutoGenerateTextBody = True
.BodyPart.GetStream().SaveToFile objFSO.BuildPath(strPathToSchema, strEMail & " " & Replace(objDictionary.Item(strEMail), ":", "_") & ".eml"), 2
'.Send
End With
Next
objDictionary.RemoveAll
Set objDictionary = Nothing
RemoveSchema objFSO.BuildPath(strPathToSchema, "Schema.ini")
Set objFSO = Nothing
WScript.Quit 0
'=============================================================================
'=============================================================================
Sub CreateSchema(strFullPathToSchemaIni, strSourceFile)
With WScript.CreateObject("Scripting.FileSystemObject")
If .FileExists(strFullPathToSchemaIni) Then
.DeleteFile strFullPathToSchemaIni, True
End If
With .CreateTextFile(strFullPathToSchemaIni, True)
.WriteLine "[" & strSourceFile & "]"
.WriteLine "ColNameHeader=True"
.WriteLine "Format=TabDelimited"
.WriteLine "TextDelimiter=none"
.WriteLine "DateTimeFormat=dd.mm.yyyy"
.WriteLine "CharacterSet=ANSI"
.Close
End With
With .GetFile(strFullPathToSchemaIni)
.Attributes = .Attributes Or 2
End With
End With
End Sub
'=============================================================================
'=============================================================================
Sub RemoveSchema(strFullPathToSchemaIni)
With WScript.CreateObject("Scripting.FileSystemObject")
If .FileExists(strFullPathToSchemaIni) Then
.DeleteFile strFullPathToSchemaIni, True
End If
End With
End Sub
'=============================================================================
 íàñòîÿùåå âðåìÿ ñîîáùåíèÿ ñîçäàþòñÿ, íî íå îòñûëàþòñÿ, à ñîõðàíÿþòñÿ ñ èìåíàìè+äàòàìè â ôîðìàòå «.eml» â óêàçàííîì êàòàëîãå — Âû èõ ìîæåòå îòêðûòü â ëþáîì ïî÷òîâîì êëèåíòå:
äëÿ äåìîíñòðàöèè ïîëó÷åííûõ ðåçóëüòàòîâ.
×òîáû çàïðåòèòü ñîõðàíåíèå ñîîáùåíèé â ôàéëû çàêîììåíòèðóéòå ñòðîêè ñ «.BodyPart.GetStream().SaveToFile …». Äëÿ îòïðàâêè ñîîáùåíèé ðàñêîììåíòèðóéòå ñòðîêè ñ «.Send».
|