4.2 KiB
Write-back patch curs BNR arhiva (v3) — onom_curs.vc2
Tinta: COMUN\clase\onom_curs.vc2, clasa actualizare_curs_bnr. Sursa patch-ului:
docs\patch_curs_bnr_arhiva.md (v3) si docs\patch_curs_bnr_arhiva.diff.
0. Stare de pornire
git status --short clase/onom_curs.vc2(COMUN) — gol, fara modificari necomise.svn status clase/onom_curs.vc2—I(ignorat de SVN, fisier text generat).- Backup inainte de orice modificare, in scratchpad:
onom_curs.vc2.bak,onom_curs.vcx.bak,onom_curs.VCT.bak.
1. Metoda de editare
Editare byte-safe cu script Python (mod binar rb/wb), fara Edit/sed -i. Continutul nou
(ASCII pur) a fost extras direct din docs\patch_curs_bnr_arhiva.md (blocurile NOU pentru
citeste_curs_bnr, indentare identica cu fisierul tinta — offset 0) si reconstruit manual pentru
blocul initializeaza (indentarea reala din fisier e cu 1 tab mai adanca decat in markdown: linia
Case This.dData < ... are 7 tab-uri in fisier, nu 6 ca in document — s-a aplicat +1 tab pe toate
liniile blocului nou, pastrand structura interna neschimbata).
2. Linii schimbate efectiv (dupa write-back, confirmate cu git diff)
Trei zone, toate in actualizare_curs_bnr:
- Proprietati noi
clinkan/clinkarhiva— inserate in ordine alfabetica in*<DefinedPropArrayMethod>(dupa*p: clink), in*<PropValue>(dupaclink = ...) si in_memberdata(dupa<memberdata name="clink".../>), exact ca in patch. PROCEDURE citeste_curs_bnr(era 37 linii, acum 92) — parametrutnSursa,Do Casepentru alegerea link-ului (cLink/cLinkArhiva/cLinkAn), cautare inapoi zi cu zi (max 10 incercari), reincercare pe anul precedent pentrutnSursa=2, coduri de retur0/1/2.PROCEDURE initializeaza, ramuranTip=1de dupa ora 13 (era 4 linii, acum 15) — cascadaciteste_curs_bnr(1)->citeste_curs_bnr(2)-> mesaje, link nouhttps://www.cursbnr.ro/in loc dehttp://www.bnr.rodoar pe aceasta ramura.
git diff --stat (COMUN): 1 file changed, 79 insertions(+), 7 deletions(-). git diff integral
verificat — apar EXCLUSIV liniile din patch, nimic in alta zona a fisierului (fara diacritice
schimbate, fara CRLF/reindentari colaterale).
3. Cens octeti >= 0x80 (diacritice)
| inainte | dupa | |
|---|---|---|
| octeti >= 0x80 (total) | 0 | 0 |
| CRLF | 1718 | 1790 |
| LF izolate (lf - crlf) | 0 | 0 |
Secventa de octeti inalti e identica (goala in ambele versiuni — fisierul nu contine diacritice in
zonele atinse sau in restul fisierului). Zero LF izolate inainte si dupa — toate liniile noi au
fost inserate cu \r\n, consistent cu restul fisierului. Cresterea de 1790-1718=72 linii CRLF
corespunde exact insertiilor nete (2+2+2 proprietati + 11 linii nete in initializeaza + 55 linii
nete in citeste_curs_bnr).
4. Write-back text -> binar
Comanda:
powershell -ExecutionPolicy Bypass -File D:\ROA\UTIL\foxbin2prg\txt2vcx.ps1 -TextFile D:\ROA\ROAFACTURARE\COMUN\clase\onom_curs.vc2 -ProjectRoot D:\ROA\ROAFACTURARE -AllowComun
Iesire:
O,P1,E0,S1,X0,c:\users\mmari\appdata\local\temp\txt2bin_roafacturare\16352-20260917221154630\comun\clase\onom_curs\verify\onom_curs.vc2
--- Sumar txt2vcx ---
OK D:\ROA\ROAFACTURARE\COMUN\clase\onom_curs.vc2
Toate cele 1 fisier(e) au fost scrise cu succes.
onom_curs.vcx si onom_curs.VCT au mtime nou (22:11:55, imediat inaintea .vc2 la 22:11:56 —
scriere in aceeasi rulare).
5. Fidelity check pe binar (independent de mtime)
Reconvertit binarul proaspat scris (onom_curs.vcx) intr-un cache TEMPORAR separat, cu
vcx2txt.ps1 -Source ... -CacheRoot <scratchpad>\fidelity_check -Force, si comparat textul
regenerat cu textul sursa:
cmp fidelity_check\COMUN\clase\onom_curs.vc2 COMUN\clase\onom_curs.vc2
-> FIDELITY OK: byte-identical
Rezultat: identic byte cu byte. Round-trip confirmat.
6. Stare finala
git status --short in COMUN:
M clase/onom_curs.vc2
Doar .vc2 e urmarit de git (binarele .vcx/.VCT nu sunt versionate); niciun alt fisier atins.
Niciun commit, niciun svn commit, niciun rebuild de EXE. Modificarea ramane necomisa, in
asteptarea aprobarii/probei manuale a lui Marius (pasii de proba sunt in
docs\patch_curs_bnr_arhiva.md, sectiunea 6).