Import parteneri: se curata doar CNP-urile invalide, codul persoanelor juridice ramane neatins
This commit is contained in:
59
Teste/recompileaza_binare.ps1
Normal file
59
Teste/recompileaza_binare.ps1
Normal file
@@ -0,0 +1,59 @@
|
||||
<#
|
||||
.SYNOPSIS
|
||||
Recompileaza formularele/clasele VFP dupa un write-back din text (bin_din_text.ps1).
|
||||
|
||||
.DESCRIPTION
|
||||
FoxBin2Prg regenereaza .scx/.sct DIN TEXT, dar fara codul obiect compilat. Un formular
|
||||
regenerat si NErecompilat ruleaza fara `#INCLUDE`-uri: constantele din comun.h (CT_SUCCES,
|
||||
CT_INSUCCES...) devin "Variable not found" abia in RUNTIME, nu la verificarea de sintaxa.
|
||||
|
||||
De aceea, dupa FIECARE bin_din_text.ps1 se ruleaza si scriptul asta.
|
||||
|
||||
.EXAMPLE
|
||||
powershell -ExecutionPolicy Bypass -File Teste\bin_din_text.ps1 -TextFile frm_import.sc2
|
||||
powershell -ExecutionPolicy Bypass -File Teste\recompileaza_binare.ps1
|
||||
#>
|
||||
[CmdletBinding()]
|
||||
param(
|
||||
[string[]]$Formular = @('frm_import.scx'),
|
||||
[string]$ProjectRoot
|
||||
)
|
||||
$ErrorActionPreference = 'Stop'
|
||||
|
||||
if (-not $ProjectRoot) { $ProjectRoot = Split-Path $PSScriptRoot -Parent }
|
||||
|
||||
$vfp = 'C:\Program Files (x86)\Microsoft Visual FoxPro 9\vfp9.exe'
|
||||
if (-not (Test-Path $vfp)) { throw "Nu gasesc $vfp" }
|
||||
|
||||
$prg = Join-Path $env:TEMP ("recompile_" + [guid]::NewGuid().ToString('N') + '.prg')
|
||||
$linii = @(
|
||||
"SET DEFAULT TO `"$ProjectRoot`"",
|
||||
"SET PATH TO `"$ProjectRoot`""
|
||||
)
|
||||
foreach ($f in $Formular) {
|
||||
$cale = Join-Path $ProjectRoot $f
|
||||
if (-not (Test-Path $cale)) { throw "Nu exista $cale" }
|
||||
$linii += "COMPILE FORM `"$f`""
|
||||
}
|
||||
$linii += 'QUIT'
|
||||
[IO.File]::WriteAllLines($prg, $linii, [Text.Encoding]::GetEncoding(1252))
|
||||
|
||||
try {
|
||||
& $vfp -A -T $prg | Out-Null
|
||||
} finally {
|
||||
Remove-Item $prg -ErrorAction SilentlyContinue
|
||||
}
|
||||
|
||||
# verificare: .sct trebuie sa contina cod obiect, nu doar textul metodelor
|
||||
$rezultate = foreach ($f in $Formular) {
|
||||
$sct = Join-Path $ProjectRoot ([IO.Path]::ChangeExtension($f, '.sct'))
|
||||
[pscustomobject]@{
|
||||
Formular = $f
|
||||
SCT_KB = if (Test-Path $sct) { [math]::Round((Get-Item $sct).Length / 1KB) } else { 0 }
|
||||
Stare = if ((Test-Path $sct) -and (Get-Item $sct).Length -gt 0) { 'OK' } else { 'LIPSA' }
|
||||
}
|
||||
}
|
||||
$rezultate | Format-Table -AutoSize
|
||||
|
||||
if ($rezultate | Where-Object { $_.Stare -ne 'OK' }) { exit 1 }
|
||||
Write-Host 'Recompilare terminata.' -ForegroundColor Green
|
||||
Reference in New Issue
Block a user