Функция:
public float simpleSimilarity(String u, String v) {
String[] a = u.split(" ");
String[] b = v.split(" ");
long correct = 0;
int minLen = Math.min(a.length, b.length);
for (int i = 0; i < minLen; i++) {
String aa = a[i];
String bb = b[i];
int minWordLength = Math.min(aa.length(), bb.length());
for (int j = 0; j < minWordLength; j++) {
if (aa.charAt(j) == bb.charAt(j)) {
correct++;
}
}
}
return (float) (((double) correct) / Math.max(u.length(), v.length()));
}
Тест:
String a = "This is the first string.";
String b = "this is not 1st string!";
// for exact string comparison, use .equals
boolean exact = a.equals(b);
// For similarity check, there are libraries for this
// Here I'll try a simple example I wrote
float similarity = simple_similarity(a,b);
для запуска в Windows при использовании wscript:
wscript.exe "C:\path\example.vbs" "your email address" "who your sending it to" "your subject" "your body text & vbCRLF & for new line" "c:\path\attachment"
требуется «", потому что пробелы через порядок и окна отправляются ошибки, если пробелы находятся в пути
dim mailto
dim mailfrom
dim subject
dim body
dim attachment
mailfrom = WScript.Arguments.Item(0)
mailto = WScript.Arguments.Item(1)
subject = WScript.Arguments.Item(2)
body = WScript.Arguments.Item(3)
attachment = WScript.Arguments.Item(4)
Set emailObj = CreateObject("CDO.Message")
emailObj.From = mailfrom
emailObj.To = mailto
emailObj.Subject = subject
emailObj.TextBody = body
emailObj.AddAttachment attachment
Set emailConfig = emailObj.Configuration
emailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.mysmtp.com"
emailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 465
emailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
emailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
emailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = true
emailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/sendusername") = "myUsername"
emailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "myPassword"
emailConfig.Fields.Update
emailObj.Send
If err.number = 0 then Msgbox "email sent"
VBScript не имеет встроенных констант, поэтому вам нужно искать константы в браузере объектов VBA (Alt + F11 - F2 в Excel) и использовать номер. В VBScript существует только один тип данных, поэтому ничего не помещайте ничего (например, Dim x as string
только Dim x
).
В VBScript нет ничего грубого.
Поля будут иметь значения по умолчанию из Outlook Express или Windows Mail.
но не установлены в Windows 10, так как он не имеет ни одной из этих двух программ.
Ниже приведен голый минимум
Set emailObj = CreateObject("CDO.Message")
emailObj.From = "dcandy@gmail.com"
emailObj.To = "dcandy@gmail.com"
emailObj.Subject = "Test CDO"
emailObj.TextBody = "Test CDO"
emailObj.AddAttachment "c:\windows\win.ini"
Set emailConfig = emailObj.Configuration
emailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com"
emailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 465
emailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
emailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
emailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = true
emailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/sendusername") = "Username"
emailConfig.Fields("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "Password"
emailConfig.Fields.Update
emailObj.Send
If err.number = 0 then Msgbox "Done"