Global $txtFile = @ScriptDir & "\大于64KB出错.txt"
GUICreate("多国语言编辑器", 640, 480)
Local $idFilemenu = GUICtrlCreateMenu("文件(&F)")
GUICtrlCreateMenuItem("新建(&N)", $idFilemenu)
Local $idOpensubitem = GUICtrlCreateMenuItem("打开(&O)...", $idFilemenu)
GUICtrlCreateMenuItem("保存(&S)", $idFilemenu)
GUICtrlCreateMenuItem("另存为(&A)...", $idFilemenu)
GUICtrlCreateMenuItem("退出(&F)", $idFilemenu)
Local $idViewmenu = GUICtrlCreateMenu("编码(&E)")
GUICtrlCreateMenuItem("日文(&J)", $idViewmenu)
GUICtrlCreateMenuItem("韩文(&K)", $idViewmenu)
GUICtrlCreateMenuItem("繁体(&T)", $idViewmenu)
GUICtrlCreateMenuItem("简体(&S)", $idViewmenu)
Local $idHelpmenu = GUICtrlCreateMenu("帮助(&H)")
GUICtrlCreateMenuItem("关于(&A)...", $idHelpmenu)
Local $idMyedit = GUICtrlCreateEdit('', 0, 0, 640, 480)
GUICtrlSetLimit(-1, 999999, 999999)
GUICtrlSetData($idMyedit, _ReadFile($txtFile))
GUISetState(@SW_SHOW)
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
ExitLoop
Case $idOpensubitem
$sFile = FileOpenDialog("选择文件...", @TempDir, "文本文件 (*.txt)")
If @error <> 1 Then
GUICtrlSetData($idMyedit, _ReadFile($sFile), 1)
EndIf
EndSwitch
WEnd
Func _ReadFile($txtFile, $txtLang = 950)
Local $hFile = FileOpen($txtFile, 16)
Local $bData = FileRead($hFile)
FileClose($hFile)
Local $Buffer = DllStructCreate('byte [' & BinaryLen($bData) + 1 & ']')
DllStructSetData($Buffer, 1, $bData)
Return _WinAPI_MultiByteToWideChar($Buffer, $txtLang, False, True)
EndFunc ;==>_ReadFile
|