2013-12-17 107 views
0

我必须做到以下几点:自动生成的ID

打开邮件 - >查看专题 - >如果被摄对象不一样:..... CID#[4位数] - >添加CID#[4位数]根据您的文件夹和子文件夹中的其他邮件主题 - >其他操作。

基本检查cID#的最高值,将其增加1,并将其添加到新主题。例如,如果您的主题是:H & H 2013分配。

- 它检查主题是否包含cID#部分。

- 它找不到它,所以它检查文件夹和子文件夹的最高cID#;增加1。

获取单个邮件的ID作为整数完成,因为它只是Val(Right(subjectstring.4))(它总是在右边,这很容易对我来说,因为我找不到其他方法,但它们不止是受欢迎的)。从这些值中,很容易构建长度为4的长字符串,并将其插入到主题中。

我的问题是,如何获得最高价值的cID#-s。

回答

0

阅读所有现有的电子邮件将使用一些时间和资源。

我会在硬盘上保留一个文本文件,其中只存储最高值;当阅读它并为下一封邮件添加+1时,也会将新的数字放入您的文本文件中。

操作方法:看我的答案在这里:read value from text file, Forward email

最大

+0

它看上去不错,我会尝试明天(14H从现在开始,如果它的工作原理:)我会回应) – ZZA

+0

嗯,这是不够好:) 但我不能让你的方法工作,所以我换句话说,如果其他人都有同样的问题,我会在明天的帖子中修改它。 谢谢 – ZZA

2

在马克斯的意见,我的代码是基于这一点,如果任何人有同样的问题。 我使用szamid来设置数字。

Sub readtextfile() 

Dim oFSO As New FileSystemObject 
Dim oFS As TextStream 
Dim oFSBU As TextStream 
Dim filePath As String 
Dim filePathBU As String 
Dim szamid As Integer 
Dim My_filenumber As Integer 

filePath = "C:\Casenumber.txt" 
filePathBU = "C:\CasenumberBU.txt" 
If Not fileExist(filePath) Then GoTo FileDoesntExist 

On Error GoTo Err 


Set oFS = oFSO.OpenTextFile(filePath, ForReading) 
szamid = oFS.Read(7) 
szamid = szamid + 1 
szamid = CStr(szamid) 
oFS.Close 

Set oFS = oFSO.OpenTextFile(filePath, ForWriting) 
oFS.WriteLine (szamid) 
oFS.Close 
Set oFSBU = oFSO.OpenTextFile(filePathBU, ForWriting) 
oFSBU.WriteLine (szamid) 
oFSBU.Close 

MsgBox szamid 

Exit Sub 

FileDoesntExist: 

Set oFSBU = oFSO.OpenTextFile(filePathBU, ForReading) 
szamid = oFSBU.Read(7) 
szamid = szamid + 1 
szamid = CStr(szamid) 
oFSBU.Close 

Const FILENAME = "C:\Casenumber.txt" 
My_filenumber = FreeFile 
Open FILENAME For Output As #My_filenumber 
Close #My_filenumber 

Set oFS = oFSO.OpenTextFile(filePath, ForWriting) 
oFS.WriteLine (szamid) 
oFS.Close 
Set oFSBU = oFSO.OpenTextFile(filePathBU, ForWriting) 
oFSBU.WriteLine (szamid) 
oFSBU.Close 
MsgBox szamid 

Exit Sub 

Err: 
MsgBox "Error while reading the file.", vbCritical, vbNullString 
oFS.Close 
Exit Sub 

End Sub