X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=_src%2FTestByFCBatAuto%2FTestScript%2Ftest%2FT_fc%2FT_fcNoFeq%2Fvbslib%2Fvbslib300%2Fvbslib.vbs;h=3eadadb69f9e75e9092353f0f2d5504c3c0cf516;hb=d681a438cc3af0b7d3395580d7984b06d4607bfc;hp=8b9be31db2a215895062d3de2e4f17f1a0fce9f7;hpb=8cd319a3714156b275c5e3809401dfccfa472e29;p=vbslib%2Fmain.git diff --git a/_src/TestByFCBatAuto/TestScript/test/T_fc/T_fcNoFeq/vbslib/vbslib300/vbslib.vbs b/_src/TestByFCBatAuto/TestScript/test/T_fc/T_fcNoFeq/vbslib/vbslib300/vbslib.vbs index 8b9be31..3eadadb 100644 --- a/_src/TestByFCBatAuto/TestScript/test/T_fc/T_fcNoFeq/vbslib/vbslib300/vbslib.vbs +++ b/_src/TestByFCBatAuto/TestScript/test/T_fc/T_fcNoFeq/vbslib/vbslib300/vbslib.vbs @@ -1,6 +1,6 @@ Option Explicit -' vbslib ver3.00 Sep.22, 2009 +' vbslib ver3.01 Dec.15, 2009 ' Copyright (c) 2008-2009, T's-Neko at Sage Plaisir 21 (Japan) ' All rights reserved. Based on 3-clause BSD license. @@ -365,7 +365,10 @@ End Function '******************************************************************************** Sub SendKeys( ByVal window_title, ByVal keycords, ByVal late_time ) WScript.Sleep late_time - If window_title <> "" Then g_sh.AppActivate( window_title ) + If window_title <> "" Then + If not g_sh.AppActivate( window_title ) Then _ + Raise E_NotFoundSymbol, "" + End If WScript.Sleep 100 g_sh.SendKeys keycords End Sub @@ -448,7 +451,7 @@ Public Function input_sub( ByVal msg, bGUI_input ) input_sub = InputBox( msg, WScript.ScriptName, "" ) Wscript.StdOut.WriteLine input_sub Else - input_sub = Wscript.StdIn.ReadLine + input_sub = StdIn_ReadLine_ForJP() End If Wscript.StdOut.WriteLine "" End If @@ -458,7 +461,7 @@ Public Function input_sub( ByVal msg, bGUI_input ) input_sub = InputBox( msg, WScript.ScriptName, "" ) Wscript.StdOut.WriteLine input_sub Else - input_sub = Wscript.StdIn.ReadLine + input_sub = StdIn_ReadLine_ForJP() End If Else If IsEmpty( m_Auto_Src ) Then @@ -470,7 +473,7 @@ Public Function input_sub( ByVal msg, bGUI_input ) input_sub = call_vbs_t( m_Auto_Src, m_Auto_InputFunc, msg ) If Err.Number = 5 Then Wscript.StdOut.WriteLine vbCR+vbLF+"Not found function of """+_ m_Auto_InputFunc +""" in """+m_Auto_Src+"""" : Err.Clear - If IsEmpty( input_sub ) Then Wscript.StdOut.Write msg : input_sub = Wscript.StdIn.ReadLine + If IsEmpty( input_sub ) Then Wscript.StdOut.Write msg : input_sub = StdIn_ReadLine_ForJP() End If End If @@ -500,6 +503,44 @@ End Class +'******************************************************************************** +' <<< [StdIn_ReadLine_ForJP] >>> +'******************************************************************************** +Function StdIn_ReadLine_ForJP() + Dim r, i, a + Const msg1 = "ƒRƒ}ƒ“ƒhƒvƒƒ“ƒvƒg‚â InputBox ‚ł́A254•¶ŽšˆÈã‚Í“ü‚è‚Ü‚¹‚ñB" + Const msg2 = "ƒRƒ}ƒ“ƒhƒvƒƒ“ƒvƒg‚ł́A‰p•¶ŽšˆÈŠO‚̏ꍇA128•¶ŽšˆÈã‚Í“ü‚è‚Ü‚¹‚ñB" + Const msg3 = "‚à‚¤ˆê“x“ü—Í‚µ‚Ä‚­‚¾‚³‚¢B" + + Do + r = WScript.StdIn.ReadLine + + If Len( r ) >= 254 Then + WScript.StdOut.WriteLine msg1 + WScript.StdOut.Write msg3 + ">" + ElseIf Len( r ) > 128 Then + For i=1 To 128 + a = Asc( Mid( r, i, 1 ) ) + If a < 0 or a > 127 Then + r = InputBox( msg2+msg3, WScript.ScriptName ) + While Len( r ) >= 254 + r = InputBox( msg1+msg3, WScript.ScriptName ) + WEnd + WScript.StdOut.Write msg3 +">"+ r +vbCRLF + Exit For + End If + Next + Exit Do + Else + Exit Do + End If + Loop + + StdIn_ReadLine_ForJP = r +End Function + + + '*-------------------------------------------------------------------------* '* ### <<<< File >>>> '*-------------------------------------------------------------------------* @@ -604,9 +645,12 @@ End Function ' <<< [AppKeyClass::AddNewWritableFolder] >>> '******************************************************************************** Public Sub AddNewWritableFolder( Path ) - If g_AppKey Is Me Then m_Key.AddNewWritableFolder( Path ) : Exit Sub + AddNewWritableFolder_sub Path, Empty +End Sub +Public Sub AddNewWritableFolder_sub( Path, Opt ) + If g_AppKey Is Me Then m_Key.AddNewWritableFolder_sub Path, Opt : Exit Sub - Dim abs_path, passed_path, out + Dim abs_path, passed_path, out, b '// Stop at debug If g_debug_or_test Then @@ -618,13 +662,18 @@ Public Sub AddNewWritableFolder( Path ) '// If the folder in writable folder, Do nothing - abs_path = g_CurrentWritables.CheckWritable( Path ) + abs_path = g_CurrentWritables.CheckWritable( Path, Opt ) If IsEmpty( abs_path ) Then Exit Sub '// If it is not able to add new writable, raise warning. - If not IsEmpty( g_CurrentWritables.CheckAddNewWritable( abs_path, out ) ) Then _ - CheckWritable abs_path : Exit Sub + If not IsEmpty( g_CurrentWritables.CheckAddNewWritable( abs_path, out ) ) Then + b=True: If not( IsEmpty( g_TempFile ) )Then b=( g_TempFile.m_FolderPath <> abs_path ) + If b Then '// C-language's || + CheckWritable abs_path : Exit Sub + End If + out = g_TempFile.m_FolderPath + End If passed_path = out @@ -685,8 +734,7 @@ Public Sub Ask( CheckPath ) Next If m_WritableMode <> F_ErrIfWarn Then - echo_r "", "" + echo_r GetWarningMessage( msg2, CheckPath ), "" End If If m_WritableMode = F_AskIfWarn Then @@ -721,21 +769,40 @@ Public Sub Ask( CheckPath ) If m_WritableMode = F_BreakIfWarn Then Stop '// Look at caller function using debugger If m_WritableMode = F_BreakIfWarn or m_WritableMode = F_ErrIfWarn Then + echo_r GetWarningMessage( msg2, CheckPath ), "" Err.Raise E_OutOfWritable,, msg2+"Out of Writable """ & CheckPath & """" ' Watch g_CurrentWritables.CurrentPathes and Path (CheckPath) End If End Sub + +Public Function GetWarningMessage( msg2, CheckPath ) + Dim s, writable + + s = ""+vbCRLF + + For Each writable In g_CurrentWritables.CurrentPathes + s=s+ " "+vbCRLF + Next + GetWarningMessage = s+ "" +End Function + + '******************************************************************************** ' <<< [AppKeyClass::InPath] >>> '******************************************************************************** Public Function InPath( ChkPathes, WritablePathes ) - If IsArray( ChkPathes ) or IsArray( WritablePathes ) Then - echo ">InPath" - Else - echo ">InPath " & ChkPathes & ", " & WritablePathes + If TypeName( ChkPathes ) = "ArrayClass" Then + InPath = InPath( ChkPathes.m_Array, WritablePathes ) + Exit Function + End If + If TypeName( WritablePathes ) = "ArrayClass" Then + InPath = InPath( ChkPathes, WritablePathes.m_Array ) + Exit Function End If + Dim c, w, b '// ChkPathes To abs path @@ -823,6 +890,8 @@ Class Writables If not IsEmpty( m_AppKey ) Then Err.Raise 1,,"Double key" If not g_AppKey.IsSame( AppKey ) Then Err.Raise 1,,"Invalied AppKey" + GetObject_g_TempFile + If IsArray( Pathes ) Then ReDim m_Pathes( UBound( Pathes ) + 1 ) For i=0 To UBound( Pathes ) @@ -844,8 +913,7 @@ Class Writables m_Pathes(0) = abs_path + "\" End If - GetObject_g_TempFile - m_Pathes( UBound( m_Pathes ) ) = g_TempFile.m_FolderPath + m_Pathes( UBound( m_Pathes ) ) = g_TempFile.m_FolderPath '// Last is Temp Set m_AppKey = AppKey End Sub @@ -947,7 +1015,7 @@ Class CurrentWritables End Sub - Public Function CheckWritable( Path ) + Public Function CheckWritable( Path, Opt ) Dim abs_path, writable, s abs_path = g_fs.GetAbsolutePathName( Path ) If Right( Path, 2 ) = "\." Then abs_path = abs_path + "\." @@ -961,6 +1029,13 @@ Class CurrentWritables If StrComp( writable, s, 1 ) = 0 Then Exit Function Next + If Opt = 1 Then + s = abs_path : If Right( s, 2 ) = "\." Then s = Left( s, Len( s ) - 1 ) + For Each writable In Me.CurrentPathes + If StrComp( s, Left( writable, Len( s ) ), 1 ) = 0 Then Exit Function + Next + End If + abs_path = g_AppKey.CheckNewWritable( abs_path ) If IsEmpty( abs_path ) Then Exit Function @@ -994,6 +1069,9 @@ Class CurrentWritables Public Sub AskFileAccess( AbsPath ) + If Left( AbsPath, Len( g_TempFile.m_FolderPath ) + 1 ) = g_TempFile.m_FolderPath + "\" Then _ + Exit Sub + If not IsEmpty( m_ProgramFiles ) Then _ If Left( AbsPath, Len( m_ProgramFiles ) ) = m_ProgramFiles or _ Left( m_ProgramFiles, Len( AbsPath ) ) = AbsPath Then _ @@ -1037,7 +1115,7 @@ End Sub Sub CheckWritable( Path ) Dim abs_path - abs_path = g_CurrentWritables.CheckWritable( Path ) + abs_path = g_CurrentWritables.CheckWritable( Path, Empty ) If IsEmpty( abs_path ) Then Exit Sub g_AppKey.Ask abs_path End Sub @@ -1277,15 +1355,17 @@ Sub move( ByVal src, ByVal dst ) If g_fs.FolderExists( dst ) Then dst = g_fs.BuildPath( dst, g_fs.GetFileName( src ) ) Else - dst_fo = g_fs.GetParentFolderName( dst ) + dst_fo = GetParentAbsPath( dst ) If Not g_fs.FolderExists( dst_fo ) Then mkdir dst_fo End If echo ">move """ & src & """, """ & dst & """" + g_AppKey.AddNewWritableFolder src If IsWildcard( src ) or not g_fs.FileExists( dst ) Then g_AppKey.AddNewWritableFolder dst + "\." '// "\." is for able to make writable folder Else g_AppKey.AddNewWritableFolder dst + del dst End If g_fs.MoveFile src, dst @@ -1342,7 +1422,7 @@ Sub SafeFileUpdate( FromTmpFilePath, ToUpdateFilePath ) Dim en,ed,en2,ed2,i,path For i=1 To 999 - path = g_fs.GetParentFolderName( ToUpdateFilePath ) + "\" + _ + path = GetParentAbsPath( ToUpdateFilePath ) + "\" + _ g_fs.GetBaseName( ToUpdateFilePath ) + "." & i & "." + g_fs.GetExtensionName( ToUpdateFilePath ) If not exist( path ) Then Exit For Next @@ -1506,7 +1586,7 @@ Function mkdir( ByVal Path ) echo ">mkdir """ & Path & """" Dim i, n, names(), fo2 - g_AppKey.AddNewWritableFolder Path + "\." + g_AppKey.AddNewWritableFolder_sub Path + "\.", 1 If g_fs.FolderExists( Path ) Then mkdir = 0 : Exit Function @@ -1786,7 +1866,7 @@ Function CreateFile( ByVal Path, ByVal Text ) Path = g_fs.GetAbsolutePathName( Path ) folder = g_fs.GetParentFolderName( Path ) - mkdir folder + If not g_fs.FolderExists( folder ) Then mkdir folder Set t = g_fs.CreateTextFile( Path, True, (g_TextFileCreateFormat = F_Unicode) ) t.Write Text @@ -1808,7 +1888,8 @@ Function ReadFile( Path ) On Error Resume Next Set f = g_fs.OpenTextFile( Path, 1, False, -2 ) en = Err.Number : ed = Err.Description : On Error GoTo 0 - If en = E_FileNotExist Then Exit Function + If en = E_FileNotExist or en = E_PathNotFound Then Exit Function + '// E_PathNotFound is not found parent folder If en <> 0 Then Err.Raise en,,ed ReadFile = ReadAll( f ) @@ -1900,7 +1981,6 @@ Function GetTempPath( Param ) GetObject_g_TempFile '//=== Delete old files - g_AppKey.AddNewWritableFolder g_TempFile.m_FolderPath + "\." If not g_fs.FolderExists( g_TempFile.m_FolderPath ) Then _ mkdir g_TempFile.m_FolderPath @@ -1962,6 +2042,8 @@ Sub GetObject_g_TempFile() echo "‚±‚ê‚͍폜‚µ‚Ä‚à‚æ‚¢ˆêŽžƒtƒHƒ‹ƒ_‚̃pƒX‚Å‚·‚©H : " + g_TempFile.m_FolderPath pause End If + + g_AppKey.AddNewWritableFolder g_TempFile.m_FolderPath + "\." End If End Sub @@ -2306,10 +2388,7 @@ End Sub Sub ExpandWildcard_sub( re, flags, folder, step_folder, fnames ) Dim fo, f - If not g_fs.FolderExists( folder ) Then - Raise E_PathNotFound, "" - End If + If not g_fs.FolderExists( folder ) Then Exit Sub Set fo = g_fs.GetFolder( folder ) If flags And F_File Then @@ -2524,20 +2603,19 @@ End Function '******************************************************************************** ' <<< [XmlAttr] >>> '******************************************************************************** -Function XmlAttr( ByVal s ) - s = Replace( s, "<", "<" ) - s = Replace( s, """", """ ) - '// s = Replace( s, "'", "'" ) +Function XmlAttr( s ) XmlAttr = Replace( s, "&", "&" ) + XmlAttr = Replace( XmlAttr, """", """ ) + XmlAttr = Replace( XmlAttr, "<", "<" ) End Function '******************************************************************************** ' <<< [XmlText] >>> '******************************************************************************** -Function XmlText( ByVal s ) - s = Replace( s, "<", "<" ) - s = Replace( s, ">", ">" ) +Function XmlText( s ) XmlText = Replace( s, "&", "&" ) + XmlText = Replace( XmlText, "<", "<" ) + XmlText = Replace( XmlText, ">", ">" ) End Function '******************************************************************************** @@ -2547,7 +2625,7 @@ Const F_NoRoot = 1 Const F_Str = &h8000 Function LoadXML( PathOrStr, Opt ) - Dim xml, r, t, i, c + Dim xml, r, t, i, c, f Const start_tag = "" Const end_tag = "" @@ -2560,7 +2638,8 @@ Function LoadXML( PathOrStr, Opt ) t = PathOrStr End If Else - t = ReadFile( PathOrStr ) + Set f = OpenForRead( PathOrStr ) + t = ReadAll( f ) i=1 : Do : c = Mid( t, i, 1 ) : If c<>" " and c<>vbTab Then Exit Do i=i+1 : Loop If (Opt and F_NoRoot) or c<>"<" Then @@ -3118,8 +3197,11 @@ Function WaitForFinishAndRedirect( ex, path ) If g_debug and IsEmpty( g_ChildHead ) Then g_ChildHead = ">|" - If path <> "" and path <> "nul" Then _ - Set f = g_fs.OpenTextFile( path, 8, True, False ) + If path <> "" and path <> "nul" Then + Dim ec : Set ec = new EchoOff + Set f = OpenForWrite( path, F_Append ) + ec = Empty + End If Do While ex.Status = 0 If path = "nul" or IsEmpty( path ) Then @@ -3737,7 +3819,7 @@ End Sub ' <<< [QuickSort] >>> '******************************************************************************** Sub QuickSort( arr, i_left, i_right, compare_func, param ) - Dim pivot, i_pivot, i_big, i_small, sw + Dim pivot, i_pivot, i_big_eq, i_small, sw, n_min_count If i_left >= i_right Then Exit Sub ' rule-b' @@ -3746,78 +3828,159 @@ Sub QuickSort( arr, i_left, i_right, compare_func, param ) '//== for debug + ' Const watch_sort_id = 6 '//********************************** + ' Dim sort_debug_id, sort_debug_id2 + ' g_SortDebugID = g_SortDebugID + 1 + ' sort_debug_id = g_SortDebugID ' Dim i, sym, value - ' echo "QuickSort start ----------------------" + ' echo "QuickSort start (" & sort_debug_id & ") ----------------------" ' For i = i_left To i_right ' QuickSort_Debug_getSym arr, i, sym, value ' If i = i_pivot Then value = value & " (pivot)" ' echo "(" & i & ") " & sym & " = " & value ' Next - ' If i_left = 0 and i_right = 4 Then Stop + ' If sort_debug_id = watch_sort_id Then Stop - i_big = i_left : i_small = i_right + '//=== Split to [ arr(i_left) ][ smaller than ][ arr(i_pivot) ][ greater equal ][ arr(i_right) ] + i_big_eq = i_left : i_small = i_right Do - '// Plus i_big if arr(i_big) is smaller than pivot + + '// Plus i_big_eq. Result is that ( *i_big_eq >= *i_pivot ). Do - If compare_func( arr(i_big), pivot, param ) >= 0 Then Exit Do - i_big = i_big + 1 + If compare_func( arr(i_big_eq), pivot, param ) >= 0 Then Exit Do + i_big_eq = i_big_eq + 1 Loop - '// Set i_small on equal or bigger than pivot + '// Minus i_small. Result is that ( *i_pivot > *i_small ). Do - If i_small < i_pivot and i_small < i_big Then - If i_big < i_pivot Then - i_small = i_pivot : Exit Do - ElseIf i_small >= i_left Then - Exit Do - Else - Exit Sub ' rule-c - End If - End If + If i_small < i_left Then Exit Do If compare_func( arr(i_small), pivot, param ) < 0 Then Exit Do i_small = i_small - 1 Loop - '// Swap - If i_big < i_small Then ' rule-a - Set sw = arr(i_big) : Set arr(i_big) = arr(i_small) : Set arr(i_small) = sw - If i_big = i_pivot Then i_pivot = i_small - If i_small = i_pivot Then - i_big = i_big + 1 - If i_big >= i_small Then Exit Do ' rule-c' + + '//== for debug + ' If sort_debug_id = watch_sort_id Then + ' sort_debug_id2 = sort_debug_id2 + 1 + ' echo "QuickSort swap (" & sort_debug_id & "-" & sort_debug_id2 & ")-----------------" + ' For i = i_left To i_right + ' QuickSort_Debug_getSym arr, i, sym, value + ' If i = i_small Then value = value & " (i_small)" + ' If i = i_big_eq Then value = value & " (i_big_eq)" + ' If i = i_pivot Then value = value & " (i_pivot)" + ' echo "(" & i & ") " & sym & " = " & value + ' Next + ' End If + + + '// Splitted + If i_small < i_big_eq Then + If i_left <= i_small Then + Exit Do + + + '// If *i_pivot is minimum Then (4) collect minimuns at left + Else + Set sw = arr(i_left) : Set arr(i_left) = arr(i_pivot) : Set arr(i_pivot) = sw + i_big_eq = i_big_eq + 1 + n_min_count = n_min_count + 1 + + + i_small = i_right '// i_small is iterater to same value as minimum + Do + If i_big_eq >= i_small Then Exit Do + + '// while ( *i_big_eq == *i_left ) i_big_eq++ + If compare_func( arr(i_big_eq), pivot, param ) = 0 Then + i_big_eq = i_big_eq + 1 + n_min_count = n_min_count + 1 + + '// Swap *i_big_eq and *i_small + Else + Do + If i_small <= i_big_eq Then Exit Do + If compare_func( arr(i_small), pivot, param ) = 0 Then + Set sw = arr(i_small) : Set arr(i_small) = arr(i_big_eq) : Set arr(i_big_eq) = sw + Exit Do + End If + i_small = i_small - 1 + Loop + If i_small <= i_big_eq Then Exit Do + End If + Loop + Exit Do + End If + + + '// If i_big_eq < i_pivot < i_small Then (1) Swap *i_big_eq and *i_small + ElseIf i_big_eq < i_pivot and i_pivot < i_small Then + Set sw = arr(i_big_eq) : Set arr(i_big_eq) = arr(i_small) : Set arr(i_small) = sw + i_big_eq = i_big_eq + 1 : i_small = i_small - 1 + + + '// If i_big_eq = i_pivot < i_small Then (2A) Rotate3 *i_small -> *i_pivot -> *(i_pivot+1); i_pivot++ + ElseIf i_big_eq = i_pivot and i_pivot < i_small Then + If i_pivot + 1 < i_small Then + Set sw = arr(i_pivot+1) : Set arr(i_pivot+1) = arr(i_pivot) + Set arr(i_pivot) = arr(i_small) : Set arr(i_small) = sw + i_big_eq = i_big_eq + 1 : i_pivot = i_pivot + 1 + + + '// If i_big_eq = i_pivot and i_pivot+1 = i_small Then (2B) Swap *i_big_eq and *i_small + '// (If rotate3, The result is Not swaped) + Else + Set sw = arr(i_big_eq) : Set arr(i_big_eq) = arr(i_small) : Set arr(i_small) = sw + i_big_eq = i_big_eq + 1 + Exit Do End If - If i_pivot > i_small Then i_small = i_pivot + + + '// If i_big_eq < i_small < i_pivot Then (3) Rotate3 *i_small -> *i_big_eq -> *i_pivot; i_pivot-- + ElseIf i_big_eq < i_small and i_small < i_pivot Then + Set sw = arr(i_pivot) : Set arr(i_pivot) = arr(i_big_eq) + Set arr(i_big_eq) = arr(i_small) : Set arr(i_small) = sw + i_big_eq = i_big_eq + 1 : i_small = i_small - 1 : i_pivot = i_pivot - 1 + + Else - Exit Do + Stop End If + Loop '//== for debug - ' echo "QuickSort middle ----------------------" + ' echo "QuickSort middle (" & sort_debug_id & ") ----------------------" ' For i = i_left To i_right ' QuickSort_Debug_getSym arr, i, sym, value - ' If i = i_big-1 Then value = value & " (i_big-1)" - ' If i = i_big Then value = value & " (i_big)" + ' If i = i_big_eq-1 Then value = value & " (i_big_eq-1)" + ' If i = i_big_eq Then value = value & " (i_big_eq)" ' echo "(" & i & ") " & sym & " = " & value ' Next + ' If sort_debug_id = watch_sort_id Then Stop - QuickSort arr, i_left, i_big-1, compare_func, param ' rule-b - QuickSort arr, i_big, i_right, compare_func, param ' rule-b + QuickSort arr, (i_left + n_min_count), i_big_eq-1, compare_func, param ' rule-b + QuickSort arr, i_big_eq, i_right, compare_func, param ' rule-b '//== for debug - ' echo "QuickSort end ----------------------" + ' echo "QuickSort end (" & sort_debug_id & ")----------------------" ' For i = i_left To i_right ' QuickSort_Debug_getSym arr, i, sym, value ' echo "(" & i & ") " & sym & " = " & value ' Next + 'If g_debug Then + ' For i_small = i_left To i_right - 1 + ' If compare_func( arr(i_small), arr(i_small + 1), param ) > 0 Then Error + ' Next + 'End If End Sub '//== for debug +'Dim g_SortDebugID 'Sub QuickSort_Debug_getSym( Arr, Index, out_Symbol, out_Value ) ' out_Symbol = Index ' out_Value = Arr(Index).id @@ -4034,7 +4197,7 @@ Public Sub Init1( SrcPath, TmpDstPath, bDstWillBeExist ) m_bDstWillBeExist = bDstWillBeExist mkdir g_fs.GetParentFolderName( g_fs.GetAbsolutePathName( m_TmpDstPath ) ) - Set Me.r = OpenTextFile( m_SrcPath ) + Set Me.r = OpenForRead( m_SrcPath ) On Error Resume Next Set Me.w = g_fs.CreateTextFile( m_TmpDstPath, bDstWillBeExist, (g_TextFileConvertFormat = F_Unicode) ) @@ -4798,6 +4961,7 @@ End Sub '******************************************************************************** Function TryStart( e ) Set e = g_Err2 + If e.num <> 0 Then Stop '// g_Err2.Clear ‚³‚ê‚Ä‚¢‚Ü‚¹‚ñ If IsEmpty( e.BreakErrID ) Then TryStart = True Else