Files
roagest/docs/flux-editare-vfp-text.md
Marius Mutu 4a39048e6d Changelog 2.11.6: selectie multipla articole la achizitie import; docs: gotcha linii goale .vc2
Modificarea de cod e in repo-ul COMUN (ocautare.prg, ointroduceri.vcx).
Proiectul VFP (pjx/PJT) atins de build/testare.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-10 13:31:42 +03:00

2.8 KiB

Flux editare directă pe text pentru .vcx/.scx

Pe lângă căutare (vcx2txt.ps1), cache-ul text din D:\ROA\_vfp_textcache\roagest\ poate fi acum și sursă de editare pentru .vcx/.scx, scriind înapoi în binar cu txt2vcx.ps1 — fără trecere prin VFP IDE. Detalii complete (guard-uri, ordinea pașilor, teste) în D:\ROA\UTIL\foxbin2prg\CLAUDE.md; aici doar partea relevantă pentru ROAGEST.

Pașii

  1. Refresh cache (obligatoriu dacă a rulat vreo sesiune de IDE de la ultimul refresh — altfel verificarea de staleness din txt2vcx.ps1 refuză scrierea):

    & 'D:\ROA\UTIL\foxbin2prg\vcx2txt.ps1' -Project 'D:\ROA\ROAGEST\roagest.pjx' -ProjectRoot 'D:\ROA\ROAGEST' -CacheRoot 'D:\ROA\_vfp_textcache\roagest' -Types vcx,scx,frx,mnx
    
  2. Editează .vc2/.sc2 direct în D:\ROA\_vfp_textcache\roagest\. Formatul e position-sensitive (nu reformata/reflow liniile) și proprietățile sunt alfabetizate (o proprietate nouă se inserează la locul ei alfabetic, nu la sfârșit).

  3. Revizuiește diff-ul pe fișierul text ca pe orice altă modificare de cod.

  4. Scrie înapoi în proiect:

    & 'D:\ROA\UTIL\foxbin2prg\txt2vcx.ps1' -TextFile 'D:\ROA\_vfp_textcache\roagest\Clase\oavize.vc2' -ProjectRoot 'D:\ROA\ROAGEST' -CacheRoot 'D:\ROA\_vfp_textcache\roagest'
    

    Regenerează și compilează binarul într-un folder de staging, verifică fidelitatea (roundtrip text→bin→text byte-identic) și abia apoi copiază .vct+.vcx (sau .sct+.scx) peste binarele din proiect. Dacă orice pas eșuează, proiectul și cache-ul rămân neatinse.

Limite

  • .mnx/.frx rămân doar pentru citire — meniurile tot au nevoie de GENMENU în IDE ca să regenereze .mpr, iar formatul .frx e prea fragil pentru round-trip. Editează-le în VFP IDE ca până acum.
  • Ținte sub COMUN\ necesită -AllowComun și aprobare explicită — o modificare acolo afectează toate aplicațiile ROA, nu doar ROAGEST.
  • După orice sesiune de IDE rulează vcx2txt.ps1 înainte de a edita text — staleness-ul se verifică pe baza mtime, iar o sesiune de IDE (chiar și una care doar a deschis o clasă) poate lăsa cache-ul în urmă față de binar.
  • Fără backup-uri .bak lângă binarele din proiect — git e mecanismul de restore; scriptul ține o copie de siguranță doar în folderul temp al rulării.
  • Liniile goale din interiorul metodelor nu sunt goale în formatul .vc2 — foxbin2prg le regenerează cu indentarea curentă (ex. două TAB-uri într-un PROCEDURE de clasă). Dacă editarea introduce linii complet goale, fidelity check-ul pică doar pe whitespace; fix: preia fișierul verify\*.vc2 din staging-ul păstrat la eșec (e forma canonică, semantic identică) peste cache și reia write-back-ul.