我需要一种方法来搜索所有文件中完全没有出现任何特定字符串。例如,所有文件中出现“ABC”的总次数。早些时候,我有一个代码可以一次在单个文件上执行此操作:
<cffile action="read"
file="full_Path\file.txt"
variable="filecontent">
<cfset charList = "strings to match/search">
<cfoutput>
<cfloop list="#charList#" index="x">
<cfset charCount = val(len(filecontent) - len(replace(filecontent,x,"","all")))/Len(x)>
Count of '#htmlEditFormat(x)#' = #charCount#<br>
</cfloop>
</cfoutput>
我对这个问题有一些新的要求。我需要以表格格式获取结果,以便我可以将其导出到 Excel 表。我试过这样做:
<cfquery name="getname" dbtype="query">
Select Name,Size from Files
</cfquery>
<cfset myArray = ArrayNew(1)>
<cfset myArray1 = ArrayNew(1)>
<cfset myArray2= ArrayNew(1)>
<cfset charList = "list of strings">
<cfloop list="#charList#" index="x">
<cfset stringCounts[x] = 0>
</cfloop>
<cfoutput query="Files">
<cffile action="read"
file="#Files.directory#\#Files.name#"
variable="filecontent">
<cfloop list="#charList#" index="x">
<cfset stringCounts[x] = stringCounts[x] + val(len(filecontent) - len(replace(filecontent,x,"","all")))/Len(x)>
<cfset ArrayAppend(myArray1, #Files.name#)>
<cfset ArrayAppend(myArray2, #x#)>
<cfset ArrayAppend(myArray, #stringCounts[x]#)>
</cfloop>
</cfoutput>
<cfset Qryalldata =Querynew("")>
<cfset row1= QueryAddcolumn(Qryalldata,"FileName", myArray1)>
<cfset row2= QueryAddcolumn(Qryalldata,"Counta", myArray)>
<cfset row3= QueryAddcolumn(Qryalldata,"Tags", myArray2)>
<cfquery name="Result" dbtype="Query">
Select FileName,Tags,Counta from Qryalldata
</cfquery>
<cfdump var="#Result#">
结果就像
FileName Tags Counta
File1 CFquery 2
File1 CFIf 1
File1 CFElse 1
File2 CFquery 3
.
.
.
如何格式化此输出
Name of File Size count of CFQuery count of CFIF count of CFElse etc