1. ホーム
  2. Web プログラミング
  3. ASP プログラミング
  4. アプリケーションのヒント

asp createTextFileはutf8をサポートしたテキストファイルを生成します。

2022-01-18 19:26:02

しかし、多くの場合、利便性のために、テキストファイルを生成する関数をカスタマイズします。

Function createTextFile(Byval content,Byval fileDir,Byval code)
	dim fileobj,fileCode : fileDir=replace(fileDir, "\", "/")
	if isNul(code) then fileCode=Charset else fileCode=code
	call createfolder(fileDir,"filedir")
	if fileCode="utf-8" then
		on error resume next
		With objStream
			.Charset=fileCode:
			.Type=2:
			.Mode=3:
			.Open:
			.Position=0
			.WriteText content:
			.SaveToFile Server.MapPath(fileDir), 2
			.Close
		End With
	End With
		on error resume next:err.clear
		set fileobj=objFso.CreateTextFile(server.mappath(fileDir),True)
		fileobj.Write(content)
		set fileobj=nothing
	end if
	if Err Then err.clear :createTextFile=false : errid=err.number:errdes=err.description:Err.Clear : echoErr err_09,errid,errdes else createTextFile=true
End Function
Sub echoErr(byval str,byval id, byval des) 

 dim errstr,cssstr
		cssstr="<meta http-equiv=""Content-Type"" content=""text/html; charset="&Charset&& quot;"" />"
 cssstr=cssstr&"<style>body{text-align:center}#msg{background-color:white;border:1px solid #0073B0;margin:0 auto;width: 400px;text-align:left}.msgtitle{padding:3px 3px;color:white;font-weight:700;line-height:28px;height30px;font-size:12px;border- bottom:1px solid #0073B0; text-indent:3px; background-color:#0073B0}#msgbody{font-size:12px;padding:20px 8px 30px;line-height:25px}# msgbottom{text-align:center;height:20px;line-height:20px;font-size:12px;background-color:#0073B0;color:#FFFFFF}</style>" ;
 errstr=cssstr&"<script language=""javascript"">setTimeout(""goLastPage()"", 5000);function goLastPage(){location.href='"& sitePath &"/';}</script><div id='msg'><div class=' msgtitle'>prompt: ["&str&"]</div><div id='msgbody'>error number: "&id&"<br>error description: "& amp;des&"<br /><a href=""javascript:history.go(-1);" rel="external nofollow" ">Back to previous page </a>&nbsp;<a href=""" rel="external nofollow" & sitePath &"/"">Return to previous page</ a></div><div id='msgbottom'>Powered by AspCms2.0</div></div>"
 cssstr=""
 die(errstr)
End Sub
Function createFolder(Byval dir,Byval dirType)
dim subPathArray,lenSubPathArray, pathDeep, i
on error resume next
dir=replace(dir, "\", "/")
  if trim(sitePath) = "" then pathDeep = "/" else pathDeep = sitePath
  pathDeep = server.MapPath(pathDeep)
dir = replace(server.mappath(dir), pathDeep, "")
subPathArray=split(dir, "\")
select case dirType
case "filedir"
 lenSubPathArray=ubound(subPathArray) - 1
case "folderdir"
lenSubPathArray=ubound(subPathArray)
end select
for i=0 to lenSubPathArray
    if trim(subPathArray(i)) <> "" then
  pathDeep=pathDeep&"\"&subPathArray(i)
  if not objFso.FolderExists(pathDeep) then objFso.CreateFolder pathDeep
    end if
next
if Err Then createFolder=false : errid=err.number:errdes=err.description:Err.Clear : echoErr err_10,errid,errdes else createFolder=true
End Function

使用方法

createTextFile content,htmlfilepath,""

content はコンテンツ、filepath はファイルパスです。

createTextFile "content","/article/11/22/3.htm",""."

UTF-8エンコードを生成するASPコード

方法1:createtextfileは、ファイルメソッドを生成します。

function WriteToFile(FileName,FileContent)
set fso=server.createobject("scripting.filesystemobject")
set fp=fso.createtextfile(server.mappath(FileName),,True)
fp.write(FileContent)
end function

方法2:ADODB.Streamはutf8をサポートするファイルメソッドを生成し、トップ関数には以下の2つのメソッドが含まれます。

Set ccObjStream = Server.CreateObject("ADODB.Stream")
With ccObjStream
.Type = 2
.Mode = 3
.Open
.Charset = "utf-8"
.Position = ccObjStream.Size
.WriteText The content to be generated
.SaveToFile To generate the file path and file name,2
.Close
End With

CreateTextFileメソッド
指定されたファイルを作成し、作成されたファイルの読み書きに使用できる TextStream オブジェクトを返します。

object.CreateTextFile(filename[, overwrite[, unicode]])

パラメータ
/{br オブジェクト

必須オプションです。FileSystemObject または Folder オブジェクトの名前である必要があります。

ファイル名

必須オプションです。作成するファイルを指定する文字列式。

オーバーライト

ブール値は、既存のファイルを上書きできるかどうかを示す。上書き可能な場合はTrue、不可能な場合はFalseとなる。値を省略すると、既存のファイルを上書きすることはできない。

ユニコード

ブール値は、ファイルがUnicodeまたはASCIIファイルフォーマットのどちらで作成されるかを示します。Unicodeファイル形式で作成される場合はTrue、ASCIIファイル形式で作成される場合はFalseとなります。この部分が省略された場合は、ASCIIファイルが作成されたものとみなされます。 

上記は asp createTextFile generate text file support utf8 の詳細で、asp createTextFile についての詳細はスクリプトホームの他の関連記事に注目してください!