sync SVN r18175
This commit is contained in:
95
docs/writeback_curs_bnr.md
Normal file
95
docs/writeback_curs_bnr.md
Normal file
@@ -0,0 +1,95 @@
|
||||
# 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`:
|
||||
|
||||
1. **Proprietati noi** `clinkan` / `clinkarhiva` — inserate in ordine alfabetica in
|
||||
`*<DefinedPropArrayMethod>` (dupa `*p: clink`), in `*<PropValue>` (dupa `clink = ...`) si in
|
||||
`_memberdata` (dupa `<memberdata name="clink".../>`), exact ca in patch.
|
||||
2. **`PROCEDURE citeste_curs_bnr`** (era 37 linii, acum 92) — parametru `tnSursa`, `Do Case` pentru
|
||||
alegerea link-ului (`cLink`/`cLinkArhiva`/`cLinkAn`), cautare inapoi zi cu zi (max 10 incercari),
|
||||
reincercare pe anul precedent pentru `tnSursa=2`, coduri de retur `0`/`1`/`2`.
|
||||
3. **`PROCEDURE initializeaza`**, ramura `nTip=1` de dupa ora 13 (era 4 linii, acum 15) — cascada
|
||||
`citeste_curs_bnr(1)` -> `citeste_curs_bnr(2)` -> mesaje, link nou `https://www.cursbnr.ro/` in
|
||||
loc de `http://www.bnr.ro` doar 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).
|
||||
Reference in New Issue
Block a user