v1.19.47
- Bug Fix: Cuando se indica como nombre de archivo "*" y como tipo "*", se regeneran automáticamente todos los archivos binarios desde los archivos de texto (Alejandro Sosa) - Feature: Agregado de los fuentes de FileName_Caps.exe - Allow importing DBF Data (Walter Nicholls) - BugFix: Added variable declaration (DH) - BugFix: Fixed incorrectly named variable (DH) - BugFix: Added missing assignment (DH) - Enhancement: Put double quotes around path in case in contains single quote (DH) - BugFix: Added "+16" to Debug flags to maintain internal defaults to not generate timestamps on xx2 files
This commit is contained in:
@@ -16,6 +16,8 @@ Const ForReading = 1
|
||||
Dim WSHShell, FileSystemObject, cEndOfProcessMsg, cWithErrorsMsg, cConvCancelByUserMsg, nProcessedFilesCount
|
||||
Dim oVFP9, nExitCode, cEXETool, cCMD, nDebug, lcExt, foxbin2prg_cfg, aFiles(), nFile_Count
|
||||
Dim i, x, str_cfg, aConf, cErrMsg, cFlagGenerateLog, cFlagDontShowErrMsg, cFlagJustShowCall, cFlagRecompile, cFlagNoTimestamps, cErrFile
|
||||
'' 2016.04.05 DH: added next line
|
||||
dim fileToProcess
|
||||
Set WSHShell = WScript.CreateObject("WScript.Shell")
|
||||
Set FileSystemObject = WScript.CreateObject("Scripting.FileSystemObject")
|
||||
Set oVFP9 = CreateObject("VisualFoxPro.Application.9")
|
||||
@@ -29,7 +31,7 @@ nExitCode = 0
|
||||
' 4=Don't show FoxBin2prg error modal messages
|
||||
' 8=Show end of process message
|
||||
' 16=Empty timestamps
|
||||
nDebug = 1+0+4+8
|
||||
nDebug = 1+0+4+8+16
|
||||
'---------------------------------------------------------------------------------------------------
|
||||
|
||||
If WScript.Arguments.Count = 0 Then
|
||||
@@ -68,8 +70,11 @@ Else
|
||||
|
||||
cFlagGenerateLog = "'0'"
|
||||
cFlagDontShowErrMsg = "'0'"
|
||||
cFlagShowCall = "'0'"
|
||||
'' 2016.04.05 DH: fixed incorrectly named variable
|
||||
cFlagJustShowCall = "'0'"
|
||||
cFlagRecompile = "'1'"
|
||||
'' 2016.04.05 DH: added missing assignment
|
||||
cFlagNoTimestamps = "'0'"
|
||||
|
||||
If GetBit(nDebug, 1) Then
|
||||
cFlagGenerateLog = "'1'"
|
||||
@@ -87,13 +92,17 @@ Else
|
||||
oVFP9.DoCmd( "oFoxBin2prg.o_frm_avance.Caption = '" & FileSystemObject.GetBaseName( WScript.ScriptName ) & " - ' + oFoxBin2Prg.c_loc_process_progress + ' (Press Esc to Cancel)'" )
|
||||
|
||||
For i = 1 To nFile_Count
|
||||
oVFP9.DoCmd( "oFoxBin2Prg.updateProgressbar(oFoxBin2Prg.c_loc_processing_file + ' " & aFiles(i) & "...', " & i & ", " & nFile_Count & ", 0)" )
|
||||
cFlagRecompile = "'" & FileSystemObject.GetParentFolderName( aFiles(i) ) & "'"
|
||||
|
||||
'' 2016.04.05 DH: put double quotes around path in case in contains single quote
|
||||
fileToProcess = Chr(34) + aFiles(i) + Chr(34)
|
||||
oVFP9.DoCmd( "oFoxBin2Prg.updateProgressbar(oFoxBin2Prg.c_loc_processing_file + " & fileToProcess & ", " & i & ", " & nFile_Count & ", 0)" )
|
||||
cFlagRecompile = Chr(34) + FileSystemObject.GetParentFolderName( aFiles(i) ) + Chr(34)
|
||||
'' 2016.04.05 DH: end of change
|
||||
If nDebug = 0 Or nDebug = 2 Then
|
||||
cCMD = "oFoxBin2prg.execute( '" & aFiles(i) & "' )"
|
||||
'' 2016.04.05 DH: use new variable
|
||||
cCMD = "oFoxBin2prg.execute(" & fileToProcess & ")"
|
||||
Else
|
||||
cCMD = "oFoxBin2prg.execute( '" & aFiles(i) & "','BIN2PRG','0','0'," _
|
||||
'' 2016.04.05 DH: use new variable
|
||||
cCMD = "oFoxBin2prg.execute(" & fileToProcess & ",'BIN2PRG','0','0'," _
|
||||
& cFlagDontShowErrMsg & "," & cFlagGenerateLog & ",'1','','',.F.,''," _
|
||||
& cFlagRecompile & "," & cFlagNoTimestamps & " )"
|
||||
End If
|
||||
|
||||
@@ -16,6 +16,8 @@ Const ForReading = 1
|
||||
Dim WSHShell, FileSystemObject, cEndOfProcessMsg, cWithErrorsMsg, cConvCancelByUserMsg, nProcessedFilesCount
|
||||
Dim oVFP9, nExitCode, cEXETool, cCMD, nDebug, lcExt, foxbin2prg_cfg, aFiles(), nFile_Count
|
||||
Dim i, x, str_cfg, aConf, cErrMsg, cFlagGenerateLog, cFlagDontShowErrMsg, cFlagJustShowCall, cFlagRecompile, cFlagNoTimestamps, cErrFile
|
||||
'' 2016.04.05 DH: added next line
|
||||
dim fileToProcess
|
||||
Set WSHShell = WScript.CreateObject("WScript.Shell")
|
||||
Set FileSystemObject = WScript.CreateObject("Scripting.FileSystemObject")
|
||||
Set oVFP9 = CreateObject("VisualFoxPro.Application.9")
|
||||
@@ -29,7 +31,7 @@ nExitCode = 0
|
||||
' 4=Don't show FoxBin2prg error modal messages
|
||||
' 8=Show end of process message
|
||||
' 16=Empty timestamps
|
||||
nDebug = 1+0+4+8
|
||||
nDebug = 1+0+4+8+16
|
||||
'---------------------------------------------------------------------------------------------------
|
||||
|
||||
If WScript.Arguments.Count = 0 Then
|
||||
@@ -75,7 +77,10 @@ Else
|
||||
|
||||
cFlagGenerateLog = "'0'"
|
||||
cFlagDontShowErrMsg = "'0'"
|
||||
cFlagShowCall = "'0'"
|
||||
'' 2016.04.05 DH: fixed incorrectly named variable
|
||||
cFlagJustShowCall = "'0'"
|
||||
'' 2016.04.05 DH: added missing assignment
|
||||
cFlagNoTimestamps = "'0'"
|
||||
|
||||
If GetBit(nDebug, 1) Then
|
||||
cFlagGenerateLog = "'1'"
|
||||
@@ -93,13 +98,18 @@ Else
|
||||
oVFP9.DoCmd( "oFoxBin2prg.o_frm_avance.Caption = '" & FileSystemObject.GetBaseName( WScript.ScriptName ) & " - ' + oFoxBin2Prg.c_loc_process_progress + ' (Press Esc to Cancel)'" )
|
||||
|
||||
For i = 1 To nFile_Count
|
||||
oVFP9.DoCmd( "oFoxBin2Prg.updateProgressbar(oFoxBin2Prg.c_loc_processing_file + ' " & aFiles(i) & "...', " & i & ", " & nFile_Count & ", 0)" )
|
||||
cFlagRecompile = "'" & FileSystemObject.GetParentFolderName( aFiles(i) ) & "'"
|
||||
'' 2016.04.05 DH: put double quotes around path in case in contains single quote
|
||||
fileToProcess = Chr(34) + aFiles(i) + Chr(34)
|
||||
oVFP9.DoCmd( "oFoxBin2Prg.updateProgressbar(oFoxBin2Prg.c_loc_processing_file + " & fileToProcess & ", " & i & ", " & nFile_Count & ", 0)" )
|
||||
cFlagRecompile = Chr(34) + FileSystemObject.GetParentFolderName( aFiles(i) ) + Chr(34)
|
||||
'' 2016.04.05 DH: end of change
|
||||
|
||||
If nDebug = 0 Or nDebug = 2 Then
|
||||
cCMD = "oFoxBin2prg.execute( '" & aFiles(i) & "' )"
|
||||
'' 2016.04.05 DH: use new variable
|
||||
cCMD = "oFoxBin2prg.execute(" & fileToProcess & ")"
|
||||
Else
|
||||
cCMD = "oFoxBin2prg.execute( '" & aFiles(i) & "','PRG2BIN','0','0'," _
|
||||
'' 2016.04.05 DH: use new variable
|
||||
cCMD = "oFoxBin2prg.execute(" & fileToProcess & ",'PRG2BIN','0','0'," _
|
||||
& cFlagDontShowErrMsg & "," & cFlagGenerateLog & ",'1','','',.F.,''," _
|
||||
& cFlagRecompile & "," & cFlagNoTimestamps & " )"
|
||||
End If
|
||||
|
||||
2
FileName_Caps/CONFIG/config.fpw
Normal file
2
FileName_Caps/CONFIG/config.fpw
Normal file
@@ -0,0 +1,2 @@
|
||||
SCREEN=OFF
|
||||
RESOURCE=OFF
|
||||
87
FileName_Caps/Filename_caps.pj2
Normal file
87
FileName_Caps/Filename_caps.pj2
Normal file
@@ -0,0 +1,87 @@
|
||||
*--------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
* (ES) AUTOGENERADO - <20><>ATENCI<43>N!! - <20><>NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!!
|
||||
* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!!
|
||||
*--------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
*< FOXBIN2PRG: Version="1.19" SourceFile="filename_caps.pjx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries)
|
||||
*
|
||||
LPARAMETERS tcDir
|
||||
|
||||
lcCurdir = SYS(5)+CURDIR()
|
||||
CD ( EVL( tcDir, JUSTPATH( SYS(16) ) ) )
|
||||
|
||||
*<DevInfo>
|
||||
_Author = ""
|
||||
_Company = ""
|
||||
_Address = ""
|
||||
_City = ""
|
||||
_State = ""
|
||||
_PostalCode = ""
|
||||
_Country = ""
|
||||
*--
|
||||
_Comments = "Capitalization for files"
|
||||
_CompanyName = "Fernando D. Bozzo"
|
||||
_FileDescription = "Capitalization for files"
|
||||
_LegalCopyright = "Creative Commons 4: Reconocimiento - CompartirIgual (by-sa): http://creativecommons.org/licenses/by/4.0/"
|
||||
_LegalTrademark = "Creative Commons 4: Reconocimiento - CompartirIgual (by-sa): http://creativecommons.org/licenses/by/4.0/"
|
||||
_ProductName = "FILENAME_CAPS"
|
||||
_MajorVer = "2"
|
||||
_MinorVer = "3"
|
||||
_Revision = "0"
|
||||
_LanguageID = ""
|
||||
_AutoIncrement = "0"
|
||||
*</DevInfo>
|
||||
|
||||
|
||||
*<BuildProj>
|
||||
*<.HomeDir = 'c:\desa\filename_caps' />
|
||||
|
||||
FOR EACH loProject IN _VFP.Projects FOXOBJECT
|
||||
loProject.Close()
|
||||
ENDFOR
|
||||
|
||||
STRTOFILE( '', '__newproject.f2b' )
|
||||
BUILD PROJECT Filename_caps.pjx FROM '__newproject.f2b'
|
||||
FOR EACH loProject IN _VFP.Projects FOXOBJECT
|
||||
loProject.Close()
|
||||
ENDFOR
|
||||
|
||||
MODIFY PROJECT 'Filename_caps.pjx' NOWAIT NOSHOW NOPROJECTHOOK
|
||||
|
||||
loProject = _VFP.Projects('Filename_caps.pjx')
|
||||
|
||||
WITH loProject.FILES
|
||||
.ADD('config\config.fpw') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" />
|
||||
.ADD('filename_caps.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" />
|
||||
*</BuildProj>
|
||||
|
||||
.ITEM('__newproject.f2b').Remove()
|
||||
|
||||
*<FileComments>
|
||||
*</FileComments>
|
||||
|
||||
*<ExcludedFiles>
|
||||
*</ExcludedFiles>
|
||||
|
||||
*<TextFiles>
|
||||
.ITEM(lcCurdir + 'config\config.fpw').Type = 'T'
|
||||
*</TextFiles>
|
||||
ENDWITH
|
||||
|
||||
WITH loProject
|
||||
*<ProjectProperties>
|
||||
.SetMain(lcCurdir + 'filename_caps.prg')
|
||||
.Debug = .T.
|
||||
.Encrypted = .F.
|
||||
*<.CmntStyle = 1 />
|
||||
*<.NoLogo = .F. />
|
||||
*<.SaveCode = .T. />
|
||||
.ProjectHookLibrary = ''
|
||||
.ProjectHookClass = ''
|
||||
*</ProjectProperties>
|
||||
ENDWITH
|
||||
|
||||
|
||||
_VFP.Projects('Filename_caps.pjx').Close()
|
||||
*ERASE '__newproject.f2b'
|
||||
CD (lcCurdir)
|
||||
RETURN
|
||||
BIN
FileName_Caps/Filename_caps.pjt
Normal file
BIN
FileName_Caps/Filename_caps.pjt
Normal file
Binary file not shown.
BIN
FileName_Caps/Filename_caps.pjx
Normal file
BIN
FileName_Caps/Filename_caps.pjx
Normal file
Binary file not shown.
96
FileName_Caps/Normalize_FileNames.vbs
Normal file
96
FileName_Caps/Normalize_FileNames.vbs
Normal file
@@ -0,0 +1,96 @@
|
||||
'---------------------------------------------------------------------------------------------------
|
||||
' Normalize_FileNames.vbs - 06/01/2014 - Fernando D. Bozzo (fdbozzo@gmail.com)
|
||||
'---------------------------------------------------------------------------------------------------
|
||||
' ENGLISH:
|
||||
' Create a shortcut on user's "SendTo" folder and configure CAPS on filename_caps.cfg
|
||||
'
|
||||
' ESPA<50>OL:
|
||||
' Cree un acceso directo en la carpeta "SendTo" del usuario y configure las Capitalizaciones en filename_caps.cfg
|
||||
'---------------------------------------------------------------------------------------------------
|
||||
Const ForReading = 1
|
||||
Dim WSHShell, FileSystemObject
|
||||
Dim oVFP9, nExitCode, cEXETool, cCMD, nDebug, cConvertType, aExtensions(8), filename_caps_log
|
||||
Dim i, x, str_cfg, aConf
|
||||
Set WSHShell = WScript.CreateObject("WScript.Shell")
|
||||
Set FileSystemObject = WScript.CreateObject("Scripting.FileSystemObject")
|
||||
Set oVFP9 = CreateObject("VisualFoxPro.Application.9")
|
||||
filename_caps_log = Replace(WScript.ScriptFullName, WScript.ScriptName, "filename_caps.log")
|
||||
nExitCode = 0
|
||||
'---------------------------------------------------------------------------------------------------
|
||||
nDebug = 5 'Cumulative Flags: 0=OFF, 1=Create filename_caps LOG, 2=Only show script calls, 4=Don't show filename_caps error modal messages
|
||||
'---------------------------------------------------------------------------------------------------
|
||||
|
||||
If WScript.Arguments.Count = 0 Then
|
||||
nExitCode = 1
|
||||
cErrMsg = "nDebug = " & nDebug
|
||||
If GetBit(nDebug, 1) Then
|
||||
cErrMsg = cErrMsg & Chr(13) & "Bit 0 ON: (1) Create filename_caps LOG"
|
||||
End If
|
||||
If GetBit(nDebug, 2) Then
|
||||
cErrMsg = cErrMsg & Chr(13) & "Bit 1 ON: (2) Only show script calls"
|
||||
End If
|
||||
If GetBit(nDebug, 3) Then
|
||||
cErrMsg = cErrMsg & Chr(13) & "Bit 2 ON: (4) Don't show filename_caps error modal messages"
|
||||
End If
|
||||
MsgBox cErrMsg, 64, "No parameters - Debug Status"
|
||||
Else
|
||||
cEXETool = Replace(WScript.ScriptFullName, WScript.ScriptName, "filename_caps.exe")
|
||||
If GetBit(nDebug, 1) And Not GetBit(nDebug, 2) And Not FileSystemObject.FileExists( filename_caps_log ) Then
|
||||
FileSystemObject.CreateTextFile( filename_caps_log )
|
||||
End If
|
||||
|
||||
For i = 0 To WScript.Arguments.Count-1
|
||||
scanDirs( WScript.Arguments(i) )
|
||||
Next
|
||||
End If
|
||||
|
||||
WScript.Quit(nExitCode)
|
||||
|
||||
|
||||
Private Sub scanDirs( tcArgument )
|
||||
Dim omFolder, oFolder
|
||||
If FileSystemObject.FolderExists( tcArgument ) Then
|
||||
'-- Es un directorio
|
||||
Set omFolder = FileSystemObject.GetFolder( tcArgument )
|
||||
For Each oFile IN omFolder.Files
|
||||
evaluateFile( oFile.Path )
|
||||
Next
|
||||
For Each oFolder IN omFolder.SubFolders
|
||||
scanDirs( oFolder.Path )
|
||||
Next
|
||||
Else
|
||||
'-- Es un archivo
|
||||
evaluateFile( tcArgument )
|
||||
End If
|
||||
End Sub
|
||||
|
||||
|
||||
Private Sub evaluateFile( tcFile )
|
||||
cFlagGenerateLog = "'0'"
|
||||
cFlagDontShowErrMsg = "'0'"
|
||||
cFlagShowCall = "'0'"
|
||||
If GetBit(nDebug,1) Then
|
||||
cFlagGenerateLog = "'1'"
|
||||
End If
|
||||
If GetBit(nDebug,2) Then
|
||||
cFlagJustShowCall = "1"
|
||||
End If
|
||||
If GetBit(nDebug,3) Then
|
||||
cFlagDontShowErrMsg = "'1'"
|
||||
End If
|
||||
|
||||
cCMD = "DO '" & cEXETool & "' WITH '" & tcFile & "','','F','',.F.," & cFlagDontShowErrMsg
|
||||
If cFlagJustShowCall = "1" Then
|
||||
MsgBox cCMD, 0, "PARAMETROS ENVIADOS"
|
||||
Else
|
||||
oVFP9.DoCmd( cCMD )
|
||||
'nExitCode = oVFP9.Eval("_SCREEN.ExitCode")
|
||||
End If
|
||||
End Sub
|
||||
|
||||
|
||||
Function GetBit(lngValue, BitNum)
|
||||
Dim BitMask
|
||||
If BitNum < 32 Then BitMask = 2 ^ (BitNum - 1) Else BitMask = "&H80000000"
|
||||
GetBit = CBool(lngValue AND BitMask)
|
||||
End Function
|
||||
25
FileName_Caps/filename_caps.cfg
Normal file
25
FileName_Caps/filename_caps.cfg
Normal file
@@ -0,0 +1,25 @@
|
||||
*--------------------------------------------------------------------------------------
|
||||
* FILENAME_CAPS.CFG
|
||||
*
|
||||
* FORMATO DE M<>SCARAS:
|
||||
* --------------------
|
||||
* filemask=FileName.Ext:FileNameCAPS.ExtCAPS
|
||||
* Donde: FileName ==> Es el nombre del archivo
|
||||
* Ext ==> Es la extensi<73>n
|
||||
* FileNameCAPS ==> (U)ppercase, (L)owercase, (P)roper, (M)atch, (N)o change
|
||||
* ExtCAPS ==> (U)ppercase, (L)owercase, (P)roper, (M)atch, (N)o change
|
||||
*
|
||||
* EJEMPLOS DE M<>SCARAS:
|
||||
* ---------------------
|
||||
* filemask=*.PDF:U.L ==> Convierte los archivos PDF a <NOMBREARCHIVO.pdf>
|
||||
* filemask=*.DOT:L.U ==> Convierte los archivos DOT a <nombrearchivo.DOT>
|
||||
* filemask=*.PRG:C.L ==> Convierte un archivo espec<65>fico a <Nombrearchivo.ini>
|
||||
* filemask=EJeMPLo.ini:M.U ==> Convierte un archivo espec<65>fico a <EJeMPLo.INI>
|
||||
* filemask=EjEmPlO.ini:P.U ==> Convierte un archivo espec<65>fico a <Ejemplo.INI>
|
||||
*
|
||||
* IMPORTANTE:
|
||||
* -----------
|
||||
* LAS CONVERSIONES SE REALIZAN EN EL ORDEN QUE SE PONGAN, COMENZANDO POR ARRIBA.
|
||||
*--------------------------------------------------------------------------------------
|
||||
filemask=README.ini:M.M
|
||||
filemask=*.*:N.L
|
||||
210
FileName_Caps/filename_caps.prg
Normal file
210
FileName_Caps/filename_caps.prg
Normal file
@@ -0,0 +1,210 @@
|
||||
*--------------------------------------------------------------------------------------------------------------
|
||||
*-- FileName_Caps.PRG
|
||||
*-- CAPITALIZA EL NOMBRE Y EXTENSI<53>N DEL ARCHIVO INDICADO SEG<45>N LA CONFIGURACI<43>N INDICADA
|
||||
*-- Fernando D. Bozzo - 24/12/2013
|
||||
*--------------------------------------------------------------------------------------------------------------
|
||||
* EJEMPLOS CON M<>SCARAS IN-LINE (SIN ARCHIVO CONFIG):
|
||||
* filename_caps( 'un_EjeMplo.PrG', '*.pRg:M.M' ) ==> 'un_EjeMplo.PrG'
|
||||
* filename_caps( 'un_EjeMplo.PrG', '*.pRg:U.L' ) ==> 'UN_EJEMPLO.prg'
|
||||
* filename_caps( 'un_EjeMplo.PrG', '*.pRg:P.U' ) ==> 'Un_ejemplo.PRG'
|
||||
* filename_caps( 'UN_EJEMPLO.PRG', 'un_EjeMplo.pRg:M.M' ) ==> 'un_EjeMplo.pRg'
|
||||
*
|
||||
* EJEMPLO CON M<>SCARAS EN ARCHIVO CONFIG 'filename_caps.cfg':
|
||||
* filemask=*.TXT:P.L
|
||||
* filemask=*.PDF:U.L
|
||||
* filemask=*.APP:P.U
|
||||
* filemask=un_EjeMplo.pRg:M.M
|
||||
*
|
||||
* filename_caps( 'UN_EJEMPLO.TXT', 'filename_caps.cfg', 'F' ) ==> 'Un_ejemplo.prg'
|
||||
* filename_caps( 'un_ejemplo.PDF', 'filename_caps.cfg', 'F' ) ==> 'UN_EJEMPLO.prg'
|
||||
* filename_caps( 'un_ejemplo.prg', 'filename_caps.cfg', 'F' ) ==> 'Un_ejemplo.PRG'
|
||||
* filename_caps( 'UN_EJEMPLO.PRG', 'filename_caps.cfg', 'F' ) ==> 'un_EjeMplo.PrG'
|
||||
*--------------------------------------------------------------------------------------------------------------
|
||||
* PAR<41>METROS: (!=Obligatorio | ?=Opcional) (@=Pasar por referencia | v=Pasar por valor) (IN/OUT)
|
||||
* tcFileName (!v IN ) Archivo a capitalizar
|
||||
* tcFileMask (?v IN ) Mascara de archivo o archivo de configuraci<63>n de m<>scaras (U,L,P,N,M)
|
||||
* => Significado: (U)pper,(L)ower,(P)roper,(M)atch,(N)one
|
||||
* tcFileMaskType (?v IN ) 'M' o nada=FileMask es una m<>scara, 'F'=FileMask es un archivo config.
|
||||
* tcLog (?@ OUT) Log generado por este programa
|
||||
* tlRelanzarError (?v IN ) Indica si el error se debe relanzar (THROW) o no
|
||||
* tcDontShowErrors (?v IN ) '1'=Don't show errors, Otherwise=Show errors
|
||||
*--------------------------------------------------------------------------------------------------------------
|
||||
LPARAMETERS tcFileName, tcFileMask, tcFileMaskType, tcLog, tlRelanzarError, tcDontShowErrors
|
||||
|
||||
#DEFINE CR_LF CHR(13)+CHR(10)
|
||||
|
||||
LOCAL lcFileName ;
|
||||
, loFNC AS cl_FileName_Caps OF FileName_Caps.prg ;
|
||||
, loEx AS EXCEPTION
|
||||
|
||||
loFNC = CREATEOBJECT("cl_FileName_Caps")
|
||||
lcFileName = loFNC.Capitalize( tcFileName, tcFileMask, tcFileMaskType, tcLog, tlRelanzarError, tcDontShowErrors )
|
||||
|
||||
RETURN lcFileName
|
||||
|
||||
|
||||
DEFINE CLASS cl_FileName_Caps AS Custom
|
||||
|
||||
PROCEDURE Capitalize
|
||||
LPARAMETERS tcFileName, tcFileMask, tcFileMaskType, tcLog, tlRelanzarError, tcDontShowErrors
|
||||
|
||||
TRY
|
||||
LOCAL loEx AS EXCEPTION, laMasks(1,4), lcDefinition, lcFileDef, lcMaskDef, laLines(1), lcMenErr ;
|
||||
, I, X, lcName, lcExt, lcPath, lcFileName, laFile(1,5), lcLogFile, lcSys16, lnPosProg ;
|
||||
, loFSO AS Scripting.FileSystemObject
|
||||
|
||||
loEx = NULL
|
||||
loFSO = CREATEOBJECT('Scripting.FileSystemObject')
|
||||
tcFileMaskType = EVL(tcFileMaskType,'M')
|
||||
lcFileName = tcFileName
|
||||
lcLogFile = FORCEEXT(SYS(16),'LOG')
|
||||
tcLog = ''
|
||||
tcDontShowErrors = EVL( tcDontShowErrors, '0' )
|
||||
|
||||
IF EMPTY(tcFileMask)
|
||||
IF tcFileMaskType <> 'F'
|
||||
tcLog = tcLog + CR_LF + '- No hay m<>scara definida ni archivo de configuraci<63>n'
|
||||
EXIT && No se indic<69> nada que hacer
|
||||
ELSE
|
||||
lcSys16 = SYS(16)
|
||||
IF LEFT(lcSys16,10) == 'PROCEDURE '
|
||||
lnPosProg = AT(" ", lcSys16, 2) + 1
|
||||
ELSE
|
||||
lnPosProg = 1
|
||||
ENDIF
|
||||
|
||||
tcFileMask = FORCEEXT( SUBSTR( lcSys16, lnPosProg ), 'CFG' )
|
||||
tcLog = tcLog + CR_LF + '- Se usar<61> el archivo de configuraci<63>n [' + tcFileMask + ']'
|
||||
IF NOT FILE(tcFileMask)
|
||||
ERROR 'El archivo de configuraci<63>n de FileName_CAPS [' + tcFileMask + '] no existe!'
|
||||
ENDIF
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
IF tcFileMaskType == 'M' && M<>scara in-line
|
||||
*-- Estructura: Filename.Ext:FNameMask.ExtMask;...
|
||||
tcLog = tcLog + CR_LF + '- M<>scaras definidas: [' + tcFileMask + ']'
|
||||
FOR I = 1 TO OCCURS( ';', tcFileMask + ';' )
|
||||
lcDefinition = GETWORDNUM( tcFileMask + ';', I, ';' )
|
||||
lcFileDef = GETWORDNUM( lcDefinition, 1, ':' )
|
||||
lcMaskDef = GETWORDNUM( lcDefinition, 2, ':' )
|
||||
laMasks(I,1) = JUSTSTEM( lcFileDef )
|
||||
laMasks(I,2) = JUSTEXT( lcFileDef )
|
||||
laMasks(I,3) = JUSTSTEM( lcMaskDef )
|
||||
laMasks(I,4) = JUSTEXT( lcMaskDef )
|
||||
ENDFOR
|
||||
ELSE && Archivo de configuraci<63>n
|
||||
*-- Estructura:
|
||||
* filemask=Filename.Ext:FilenameCap.ExtCap => Cap: (U)pper,(L)ower,(P)roper,(M)atch,(N)one
|
||||
* filemask=*.PDF:U.L ==> <NOMBREARCHIVO.pdf>
|
||||
* filemask=*.DOT:L.U ==> <nombrearchivo.DOT>
|
||||
* filemask=*.PRG:C.N ==> <Nombrearchivo.ini>
|
||||
* filemask=EjEmPlO.iNi:C.N ==> <Ejemplo.iNi>
|
||||
X = 0
|
||||
FOR I = 1 TO ALINES( laLines, FILETOSTR( tcFileMask ), 1+4 )
|
||||
IF LOWER( LEFT( laLines(I), 8 ) ) == 'filemask'
|
||||
tcLog = tcLog + CR_LF + '- Se encontr<74> la m<>scara: [' + laLines(I) + ']'
|
||||
X = X + 1
|
||||
lcDefinition = GETWORDNUM( laLines(I), 2, '=' )
|
||||
lcFileDef = GETWORDNUM( lcDefinition, 1, ':' )
|
||||
lcMaskDef = GETWORDNUM( lcDefinition, 2, ':' )
|
||||
DIMENSION laMasks(X,4)
|
||||
laMasks(X,1) = JUSTSTEM( lcFileDef ) && Name
|
||||
laMasks(X,2) = JUSTEXT( lcFileDef ) && Ext
|
||||
laMasks(X,3) = JUSTSTEM( lcMaskDef ) && Name Mask
|
||||
laMasks(X,4) = JUSTEXT( lcMaskDef ) && Ext Mask
|
||||
ENDIF
|
||||
ENDFOR
|
||||
ENDIF
|
||||
|
||||
*-- FileName: "c:\desa\sourcesafe\myfile.ext"
|
||||
lcPath = JUSTPATH( lcFileName )
|
||||
lcName = JUSTSTEM( lcFileName )
|
||||
lcExt = JUSTEXT( lcFileName )
|
||||
|
||||
FOR I = 1 TO ALEN( laMasks, 1 )
|
||||
IF LIKE( UPPER( FORCEEXT( laMasks(I,1), laMasks(I,2) ) ), UPPER( FORCEEXT( lcName, lcExt ) ) )
|
||||
*-- EVALUACI<43>N DEL NOMBRE
|
||||
DO CASE
|
||||
CASE UPPER(laMasks(I,3)) == 'U'
|
||||
lcFileName = UPPER(lcName)
|
||||
CASE UPPER(laMasks(I,3)) == 'L'
|
||||
lcFileName = LOWER(lcName)
|
||||
CASE UPPER(laMasks(I,3)) == 'P'
|
||||
lcFileName = PROPER(lcName)
|
||||
CASE UPPER(laMasks(I,3)) == 'N'
|
||||
lcFileName = lcName
|
||||
OTHERWISE && (M)atch: Tal cual aparece definido
|
||||
IF '?' $ laMasks(I,1) OR '*' $ laMasks(I,1)
|
||||
ERROR 'Para (M)atch no puede usar m<>scara "' + laMasks(I,1) + '"'
|
||||
ENDIF
|
||||
lcFileName = laMasks(I,1)
|
||||
ENDCASE
|
||||
|
||||
*-- EVALUACI<43>N DE LA EXTENSI<53>N
|
||||
DO CASE
|
||||
CASE UPPER(laMasks(I,4)) == 'U'
|
||||
lcFileName = FORCEEXT( lcFileName + '.' + lcExt, UPPER(lcExt) )
|
||||
CASE UPPER(laMasks(I,4)) == 'L'
|
||||
lcFileName = FORCEEXT( lcFileName + '.' + lcExt, LOWER(lcExt) )
|
||||
CASE UPPER(laMasks(I,4)) == 'P'
|
||||
lcFileName = FORCEEXT( lcFileName + '.' + lcExt, PROPER(lcExt) )
|
||||
CASE UPPER(laMasks(I,4)) == 'N'
|
||||
lcFileName = FORCEEXT( lcFileName + '.' + lcExt, lcExt )
|
||||
OTHERWISE && (M)atch: Tal cual aparece definido
|
||||
IF '?' $ laMasks(I,1) OR '*' $ laMasks(I,1)
|
||||
ERROR 'Para (M)atch no puede usar m<>scara "' + laMasks(I,1) + '"'
|
||||
ENDIF
|
||||
lcFileName = FORCEEXT( lcFileName + '.' + lcExt, laMasks(I,2) )
|
||||
ENDCASE
|
||||
|
||||
lcFileName = FORCEPATH( lcFileName, lcPath )
|
||||
tcLog = tcLog + CR_LF + '- El archivo se debe renombrar a [' + lcFileName + ']'
|
||||
EXIT
|
||||
ENDIF
|
||||
ENDFOR
|
||||
|
||||
IF ADIR( laFile, lcFileName, '', 1 ) > 0 AND laFile(1,1) <> JUSTFNAME(lcFileName)
|
||||
loFSO.MoveFile( FORCEPATH( laFile(1,1), JUSTPATH(lcFileName) ), lcFileName )
|
||||
tcLog = tcLog + CR_LF + ' => Se renombrar<61> a [' + lcFileName + ']'
|
||||
ELSE
|
||||
tcLog = tcLog + CR_LF + ' => No se renombrar<61> a [' + lcFileName + '] porque ya estaba correcto.'
|
||||
ENDIF
|
||||
|
||||
|
||||
CATCH TO loEx
|
||||
IF tlRelanzarError THEN
|
||||
THROW
|
||||
ELSE
|
||||
IF '800a0046:' $ loEx.Details
|
||||
tcLog = tcLog + CR_LF + ' => No se renombrar<61> a [' + lcFileName + '] porque el archivo estaba en uso o no se puede acceder a el.'
|
||||
ENDIF
|
||||
|
||||
lcMenErr = 'ERROR ' + TRANSFORM(loEx.ERRORNO) + ', ' + loEx.MESSAGE + CHR(13) ;
|
||||
+ loEx.PROCEDURE + ', line ' + TRANSFORM(loEx.LINENO) + CHR(13) ;
|
||||
+ loEx.LINECONTENTS
|
||||
|
||||
IF TRANSFORM(tcDontShowErrors) # '1' THEN
|
||||
MESSAGEBOX( lcMenErr, 0+16+4096, 'ATENCI<43>N!! Ha ocurrido un error al capitalizar', 600000 )
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
FINALLY
|
||||
loFSO = NULL
|
||||
tcFileName = lcFileName
|
||||
|
||||
*-- Si existe FileName_Caps.LOG, lo actualiza
|
||||
IF FILE(lcLogFile)
|
||||
IF NOT EMPTY(lcMenErr)
|
||||
tcLog = tcLog + CR_LF + CR_LF + lcMenErr
|
||||
ENDIF
|
||||
|
||||
STRTOFILE( tcLog, lcLogFile, 1 )
|
||||
ENDIF
|
||||
|
||||
ENDTRY
|
||||
|
||||
RETURN lcFileName
|
||||
ENDPROC
|
||||
|
||||
ENDDEFINE && CLASS cl_FileName_Caps AS Custom
|
||||
@@ -2,8 +2,8 @@ Lparameters toUpdateInfo
|
||||
|
||||
Local lcNote
|
||||
With toUpdateInfo
|
||||
.VersionNumber = 'v1.19.46'
|
||||
.VersionDate = Date(2016,02,06)
|
||||
.VersionNumber = 'v1.19.47'
|
||||
.VersionDate = Date(2016,06,08)
|
||||
.SourceFileUrl = 'http://vfpxrepository.com/dl/thorupdate/Projects/FoxBin2Prg/FoxBin2Prg.Zip'
|
||||
|
||||
.Link = 'http://vfpx.codeplex.com/wikipage?title=FoxBin2PRG'
|
||||
@@ -17,6 +17,15 @@ Demo video using FoxBin2Prg with PlasticSCM: http://youtu.be/sE4wQ50Itqg
|
||||
|
||||
Change History -------------------------------------------------------------
|
||||
|
||||
2016/06/08 v1.19.47
|
||||
- Bug Fix: When a filename "*" is specified with a type "*", an automatic regeneration of all binary files is made from text files (Alejandro Sosa)
|
||||
- BugFix: Added variable declaration (Doug Hennig)
|
||||
- BugFix: Fixed incorrectly named variable (Doug Hennig)
|
||||
- BugFix: Added missing assignment (Doug Hennig)
|
||||
- Enhancement: Put double quotes around path in case in contains single quote (Doug Hennig)
|
||||
- BugFix: Added "+16" to Debug flags to maintain internal defaults to not generate timestamps on xx2 files
|
||||
- Feature: Added support for appending data from DB2 to DBF with the new value DBF_Conversion_Support=8. All datatypes except General. (Walter Nicholls)
|
||||
|
||||
2016/02/06 v1.19.46
|
||||
- Bug Fix: set_UserValue() method causes error when trying to get information about another error and the VFP binary table can not be opened (ie, because corrupted memo)
|
||||
- Feature: Added internal support for querying directory cfg information, with a new optional parameter, for API methods that require it (ie: get_Ext2FromExt, hasSupport*)
|
||||
|
||||
Binary file not shown.
@@ -8,7 +8,7 @@
|
||||
<TABLE>
|
||||
<MemoFile></MemoFile>
|
||||
<CodePage>1252</CodePage>
|
||||
<LastUpdate>2013/12/12</LastUpdate>
|
||||
<LastUpdate></LastUpdate>
|
||||
<Database></Database>
|
||||
<FileType>0x00000032</FileType>
|
||||
<FileType_Descrip>Visual FoxPro, Varchar, Varbinary, or Blob-enabled</FileType_Descrip>
|
||||
@@ -371,7 +371,7 @@
|
||||
<Upd_Trig_Exp></Upd_Trig_Exp>
|
||||
<Del_Trig_Exp></Del_Trig_Exp>
|
||||
<TableComment></TableComment>
|
||||
<Autoinc_Nextval>30</Autoinc_Nextval>
|
||||
<Autoinc_Nextval>50</Autoinc_Nextval>
|
||||
<Autoinc_Step>5</Autoinc_Step>
|
||||
</FIELD>
|
||||
</FIELDS>
|
||||
@@ -381,12 +381,12 @@
|
||||
|
||||
<INDEXES>
|
||||
<INDEX>
|
||||
<TagName>LOGICO</TagName>
|
||||
<TagType>BINARY</TagType>
|
||||
<Key>LOGICO</Key>
|
||||
<Filter></Filter>
|
||||
<TagName>CARACTER</TagName>
|
||||
<TagType>CANDIDATE</TagType>
|
||||
<Key>CARACTER</Key>
|
||||
<Filter>.NOT.EMPTY(caracter)</Filter>
|
||||
<Order>ASCENDING</Order>
|
||||
<Collate>MACHINE</Collate>
|
||||
<Collate>GENERAL</Collate>
|
||||
</INDEX>
|
||||
<INDEX>
|
||||
<TagName>ENTERO</TagName>
|
||||
@@ -397,13 +397,93 @@
|
||||
<Collate>MACHINE</Collate>
|
||||
</INDEX>
|
||||
<INDEX>
|
||||
<TagName>CARACTER</TagName>
|
||||
<TagType>CANDIDATE</TagType>
|
||||
<Key>CARACTER</Key>
|
||||
<Filter>.NOT.EMPTY(caracter)</Filter>
|
||||
<TagName>LOGICO</TagName>
|
||||
<TagType>BINARY</TagType>
|
||||
<Key>LOGICO</Key>
|
||||
<Filter></Filter>
|
||||
<Order>ASCENDING</Order>
|
||||
<Collate>GENERAL</Collate>
|
||||
<Collate>MACHINE</Collate>
|
||||
</INDEX>
|
||||
</INDEXES>
|
||||
|
||||
|
||||
<RECORDS>
|
||||
<RECORD num="4">
|
||||
<CARACTER></CARACTER>
|
||||
<FECHA>/ / </FECHA>
|
||||
<FECHORA>/ / : : </FECHORA>
|
||||
<LOGICO>.F.</LOGICO>
|
||||
<DOBLE>0.00000</DOBLE>
|
||||
<FLOTANTE>0.000000</FLOTANTE>
|
||||
<NUMERICO>0.000</NUMERICO>
|
||||
<BLOB></BLOB>
|
||||
<MONEDA>0.0000</MONEDA>
|
||||
<ENTERO>0</ENTERO>
|
||||
<NOTAS></NOTAS>
|
||||
<VAR_BINARY></VAR_BINARY>
|
||||
<VAR_CHAR></VAR_CHAR>
|
||||
<NOTASBIN></NOTASBIN>
|
||||
<CARC_BIN>ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg</CARC_BIN>
|
||||
<VARCHARBIN></VARCHARBIN>
|
||||
<ID_AUTOINC>45</ID_AUTOINC>
|
||||
</RECORD>
|
||||
<RECORD num="2">
|
||||
<CARACTER>axaxaxaxaXAXA</CARACTER>
|
||||
<FECHA>1969/11/26</FECHA>
|
||||
<FECHORA>1969/11/26 22:10:06</FECHORA>
|
||||
<LOGICO>.T.</LOGICO>
|
||||
<DOBLE>123.45676</DOBLE>
|
||||
<FLOTANTE>123.456786</FLOTANTE>
|
||||
<NUMERICO>123.456</NUMERICO>
|
||||
<BLOB>NgAuAEUAcwB0AGEAIABlAHMAIAB1AG4AYQAgAGYAcgBhAHMAZQAgAGMAbwBkAGkAZgBpAGMAYQBkAGEAIABlAG4AIABoAGUAeABhACAAeQAgAGMAbwBuACAAYwBhAHIAYQBjAHQAZQByAGUAcwAgAGUAcwBwAGUAYwBpAGEAbABlAHMALgAgAOEA6QDtAPMA+gDBAMkAzQDTANoAxADLAM8A1gDcAOQA6wDvAPYA/ADgAOgA7ADyAPkA8QDRAMcA5wBeAA==</BLOB>
|
||||
<MONEDA>12345.6786</MONEDA>
|
||||
<ENTERO>1234567896</ENTERO>
|
||||
<NOTAS>6.notas TXT. áéíóúÄËÏÖÜÑñäëïöü. ^FinÇç</NOTAS>
|
||||
<VAR_BINARY>Ni5GcmFzZSBVVEYtOC4gw6HDqcOtw7PDusOEw4vDj8OWw5w=</VAR_BINARY>
|
||||
<VAR_CHAR>var char 6.áéíóúÜÑ</VAR_CHAR>
|
||||
<NOTASBIN>yQBzAHQAYQAgAGUAcwAgAGwAYQAgAHMAZQDxAGEAbAAhAA==</NOTASBIN>
|
||||
<CARC_BIN>Q2hhckJpbi02LsOhw6nDrcOzw7rDnMORICAgICAg</CARC_BIN>
|
||||
<VARCHARBIN>VkNoYXJCaW4tNi7DocOpw63Ds8O6w5zDkQ==</VARCHARBIN>
|
||||
<ID_AUTOINC>35</ID_AUTOINC>
|
||||
</RECORD>
|
||||
<RECORD num="1">
|
||||
<CARACTER>lalal.áéíóúÜÑ</CARACTER>
|
||||
<FECHA>1969/11/27</FECHA>
|
||||
<FECHORA>1969/11/27 22:10:07</FECHORA>
|
||||
<LOGICO>.T.</LOGICO>
|
||||
<DOBLE>123.45677</DOBLE>
|
||||
<FLOTANTE>123.456787</FLOTANTE>
|
||||
<NUMERICO>123.457</NUMERICO>
|
||||
<BLOB>NwAuAEUAcwB0AGEAIABlAHMAIAB1AG4AYQAgAGYAcgBhAHMAZQAgAGMAbwBkAGkAZgBpAGMAYQBkAGEAIABlAG4AIABoAGUAeABhACAAeQAgAGMAbwBuACAAYwBhAHIAYQBjAHQAZQByAGUAcwAgAGUAcwBwAGUAYwBpAGEAbABlAHMALgAgAOEA6QDtAPMA+gDBAMkAzQDTANoAxADLAM8A1gDcAOQA6wDvAPYA/ADgAOgA7ADyAPkA8QDRAMcA5wBeAA==</BLOB>
|
||||
<MONEDA>12345.6787</MONEDA>
|
||||
<ENTERO>1234567897</ENTERO>
|
||||
<NOTAS>7.notas TXT. áéíóúÄËÏÖÜÑñäëïöü. ^FinÇç</NOTAS>
|
||||
<VAR_BINARY>Ny5GcmFzZSBVVEYtOC4gw6HDqcOtw7PDusOEw4vDj8OWw5w=</VAR_BINARY>
|
||||
<VAR_CHAR>var char 7.áéíóúÜÑ</VAR_CHAR>
|
||||
<NOTASBIN>yQB4AGkAdABvAHMAIADaAG4AaQBjAG8AcwAhACAAOgApAA==</NOTASBIN>
|
||||
<CARC_BIN>Q2hhckJpbi03LsOhw6nDrcOzw7rDnMORICAgICAg</CARC_BIN>
|
||||
<VARCHARBIN>VkNoYXJCaW4tNy7DocOpw63Ds8O6w5zDkQ==</VARCHARBIN>
|
||||
<ID_AUTOINC>30</ID_AUTOINC>
|
||||
</RECORD>
|
||||
<RECORD num="3">
|
||||
<CARACTER>pepepepepEPE</CARACTER>
|
||||
<FECHA>1969/11/25</FECHA>
|
||||
<FECHORA>1969/11/25 22:10:05</FECHORA>
|
||||
<LOGICO>.T.</LOGICO>
|
||||
<DOBLE>123.45675</DOBLE>
|
||||
<FLOTANTE>123.456785</FLOTANTE>
|
||||
<NUMERICO>123.455</NUMERICO>
|
||||
<BLOB>NQAuAEUAcwB0AGEAIABlAHMAIAB1AG4AYQAgAGYAcgBhAHMAZQAgAGMAbwBkAGkAZgBpAGMAYQBkAGEAIABlAG4AIABoAGUAeABhACAAeQAgAGMAbwBuACAAYwBhAHIAYQBjAHQAZQByAGUAcwAgAGUAcwBwAGUAYwBpAGEAbABlAHMALgAgAOEA6QDtAPMA+gDBAMkAzQDTANoAxADLAM8A1gDcAOQA6wDvAPYA/ADgAOgA7ADyAPkA8QDRAMcA5wBeAA==</BLOB>
|
||||
<MONEDA>12345.6785</MONEDA>
|
||||
<ENTERO>1234567895</ENTERO>
|
||||
<NOTAS>5.notas TXT. áéíóúÄËÏÖÜÑñäëïöü. ^FinÇç</NOTAS>
|
||||
<VAR_BINARY>NS5GcmFzZSBVVEYtOC4gw6HDqcOtw7PDusOEw4vDj8OWw5w=</VAR_BINARY>
|
||||
<VAR_CHAR>var char 5.áéíóúÜÑ</VAR_CHAR>
|
||||
<NOTASBIN>yQBzAHQAYQAgAGUAcwAgAGwAYQAgAHMAZQDxAGEAbAAhAA==</NOTASBIN>
|
||||
<CARC_BIN>Q2hhckJpbi01LsOhw6nDrcOzw7rDnMORICAgICAg</CARC_BIN>
|
||||
<VARCHARBIN>VkNoYXJCaW4tNS7DocOpw63Ds8O6w5zDkQ==</VARCHARBIN>
|
||||
<ID_AUTOINC>40</ID_AUTOINC>
|
||||
</RECORD>
|
||||
</RECORDS>
|
||||
|
||||
</TABLE>
|
||||
Binary file not shown.
3
TESTS/DATOS_READONLY/fb2p_free.dbf.cfg
Normal file
3
TESTS/DATOS_READONLY/fb2p_free.dbf.cfg
Normal file
@@ -0,0 +1,3 @@
|
||||
DBF_Conversion_Support: 8
|
||||
DBF_Conversion_Order: caracter
|
||||
DBF_Conversion_Condition: .T.
|
||||
Binary file not shown.
@@ -286,9 +286,16 @@ DEFINE CLASS ft__foxbin2prg__c_conversor_prg_a_dbf AS FxuTestCase OF FxuTestCase
|
||||
this.assertequals( lnFields_OUT, lnFields_IN, '[Cantidad de campos IN y OUT]' )
|
||||
|
||||
FOR I = 1 TO lnFields_IN
|
||||
FOR X = 1 TO 18
|
||||
THIS.assertequals( laCampos_IN(I,X), laCampos_OUT(I,X), '[Comparando estructura del campo ' + laCampos_IN(I,1) + ']' )
|
||||
ENDFOR
|
||||
IF laCampos_IN(I,18) > 0 && Autoinc_Step
|
||||
*-- Para los campos AutoInc solo se comparan los primeros 4 datos de estructura
|
||||
FOR X = 1 TO 4
|
||||
THIS.assertequals( laCampos_IN(I,X), laCampos_OUT(I,X), '[Comparando estructura del campo ' + laCampos_IN(I,1) + ']' )
|
||||
ENDFOR
|
||||
ELSE
|
||||
FOR X = 1 TO 18
|
||||
THIS.assertequals( laCampos_IN(I,X), laCampos_OUT(I,X), '[Comparando estructura del campo ' + laCampos_IN(I,1) + ']' )
|
||||
ENDFOR
|
||||
ENDIF
|
||||
ENDFOR
|
||||
|
||||
CATCH TO loEx
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
****************************************************************************************************
|
||||
* FOXBIN2PRG v1.19.43
|
||||
* FOXBIN2PRG v1.19.47
|
||||
* CONFIGURATION FILE / ARCHIVO DE CONFIGURACI<43>N
|
||||
****************************************************************************************************
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
* LBX_Conversion_Support: 2 && 0=No support, 1=Generate TXT only (Diff), 2=Generate TXT and BIN (Merge)
|
||||
* MNX_Conversion_Support: 2 && 0=No support, 1=Generate TXT only (Diff), 2=Generate TXT and BIN (Merge)
|
||||
* DBC_Conversion_Support: 2 && 0=No support, 1=Generate TXT only (Diff), 2=Generate TXT and BIN (Merge)
|
||||
* DBF_Conversion_Support: 1 && 0=No support, 1=Generate TXT only (Diff), 2=Generate TXT and BIN (Merge), 4=Generate TXT with DATA for DIFF (No Bidirectional!)
|
||||
* DBF_Conversion_Support: 1 && 0=No support, 1=Generate TXT only (Diff), 2=Generate TXT and BIN (Merge/Only Structure!), 4=Generate TXT with DATA (Diff), 8=Export and Import DATA (Merge/Structure & Data)
|
||||
* >>DBF_Conversion_Support NOTE: >> EN: FoxBin2Prg support bi-directional convertion of DBFs, but does not keep data. Use with care.
|
||||
* >> ES: FoxBin2Prg tiene soporte bi-direccional para convertir DBF, pero no mantiene los datos. Usar con cuidado.
|
||||
* DBF_Conversion_Included: * && If DBF_Conversion_Support:4, you can specify multiple filemasks: www,fb2p_free.dbf / Si DBF_Conversion_Support:4, se pueden indicar m<>ltiples m<>scaras de archivo: www,fb2p_free.dbf
|
||||
|
||||
BIN
foxbin2prg.exe
BIN
foxbin2prg.exe
Binary file not shown.
@@ -26,7 +26,7 @@ _LegalTrademark = "Creative Commons 4: Reconocimiento - CompartirIgual (by-sa):
|
||||
_ProductName = "FOXBIN2PRG"
|
||||
_MajorVer = "1"
|
||||
_MinorVer = "19"
|
||||
_Revision = "46"
|
||||
_Revision = "47"
|
||||
_LanguageID = "1034"
|
||||
_AutoIncrement = "0"
|
||||
*</DevInfo>
|
||||
|
||||
BIN
foxbin2prg.pjt
BIN
foxbin2prg.pjt
Binary file not shown.
BIN
foxbin2prg.pjx
BIN
foxbin2prg.pjx
Binary file not shown.
885
foxbin2prg.prg
885
foxbin2prg.prg
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user