ReCreate_FoxBin2Prg.prg face Prg2Bin recursiv pe tot folderul tool-ului (get_FilesFromDirectory intra in orice subfolder), deci _textcache_* aflate sub foxbin2prg erau scanate si .??2-urile din alte proiecte reconvertite in binare parazitare.
Cache-urile stau acum in D:\ROA\_vfp_textcache\{roacnpro,roagest,roaimob}, in afara clonei, unde ReCreate nu le mai poate atinge. Actualizat default CacheRoot in vcx2txt.ps1, exemplele din CLAUDE.md / PROMPT_cautare_vfp.md / git_svn_parallel_init_prompt.md si comentariul din .git/info/exclude.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
4.4 KiB
4.4 KiB
Prompt: căutare în cod VFP (foxbin2prg) — reutilizabil în orice proiect Visual FoxPro
Acest fișier conține un prompt gata de copiat pentru Claude Code (sau alt agent), care
configurează și folosește sistemul foxbin2prg ca să poată căuta cod-sursă aflat în interiorul
fișierelor binare VFP (.vcx/.vct, .scx/.sct, .frx/.frt, .mnx/.mnt, .dbc/.dct) într-un
proiect nou.
Unealta e partajată și stă la D:\ROA\UTIL\foxbin2prg\ — nu trebuie copiată per proiect. Doar
spui agentului care e proiectul curent (folderul + fișierul .pjx).
Cum se folosește
- Deschide proiectul VFP în Claude Code.
- Copiază blocul de mai jos în prompt.
- Înlocuiește cele 2 valori marcate
<<...>>cu datele proiectului tău:<<RADACINA_PROIECT>>= folderul rădăcină al proiectului (ex.D:\ROA\ROAGEST)<<FISIER_PJX>>= calea către.pjx(ex.D:\ROA\ROAGEST\roagest.pjx)
▼▼▼ PROMPT DE COPIAT ▼▼▼
Acest proiect este o aplicație Visual FoxPro 9. O mare parte din cod (proceduri, metode,
parametri) NU stă în fișiere .prg, ci în interiorul fișierelor binare VFP: librării de clase
(.vcx+.vct), forme (.scx+.sct), rapoarte (.frx+.frt), meniuri (.mnx+.mnt). Un grep direct pe
acestea nu e lizibil (sunt tabele DBF cu memo binar).
Ca să poți căuta în acel cod, folosește unealta partajată foxbin2prg, care convertește binarele
în reprezentarea lor TEXT (.vc2/.sc2/.fr2/.mn2/.dc2) într-un cache, și apoi caută în cache.
PARAMETRII PROIECTULUI CURENT:
- Rădăcină proiect: <<RADACINA_PROIECT>>
- Fișier proiect (.pjx): <<FISIER_PJX>>
REGULA DE AUR: textul generat e DOAR pentru citire/căutare. Orice modificare de cod se face în
IDE-ul VFP, în fișierul binar (.vcx/.scx/...), niciodată în text.
PAS 1 — populează cache-ul text (la începutul sesiunii, sau după ce s-a modificat ceva în IDE).
Rulează în PowerShell (e incremental — sare peste ce e deja la zi):
& 'D:\ROA\UTIL\foxbin2prg\vcx2txt.ps1' -Project '<<FISIER_PJX>>' -ProjectRoot '<<RADACINA_PROIECT>>' -CacheRoot 'D:\ROA\_vfp_textcache\<<NUME_PROIECT>>'
(Folosește un -CacheRoot distinct per proiect ca să nu amesteci cache-urile. Implicit scriptul
convertește doar .vcx și .scx; pentru a include și rapoarte/meniuri adaugă: -Types vcx,scx,frx,mnx)
Dacă scriptul se plânge că lipsește FoxBin2Prg.EXE, trebuie compilat o singură dată: deschide
'D:\ROA\UTIL\foxbin2prg\foxbin2prg.pj2' în VFP 9 și Build > Build Executable. Anunță-mă să fac asta.
PAS 2 — caută în cache cu unealta Grep (NU în binarele originale):
Grep pe folderul 'D:\ROA\_vfp_textcache\<<NUME_PROIECT>>' pentru numele de metodă/procedură/variabilă căutat.
Ex.: caută "PROCEDURE do_salvare" sau numele tabelei/cursorului implicat.
CONVERSIE PUNCTUALĂ (un fișier sau folder care NU e în proiect, ex. o librărie din COMUN):
& 'D:\ROA\UTIL\foxbin2prg\vcx2txt.ps1' -Source 'CALE\catre\librarie.vcx' -CacheRoot 'D:\ROA\_vfp_textcache\<<NUME_PROIECT>>'
ALTE OPȚIUNI: -Force (reconvertește tot), -Clean (șterge cache-ul întâi).
FLUX TIPIC: la prima sesiune rulează PAS 1 o dată, apoi caută cu Grep în cache (PAS 2). La
sesiunile următoare rescrie doar ce s-a schimbat. Când citești codul unei metode, dă referințe
fișier:linie din cache, dar reține: editarea efectivă se face în IDE-ul VFP pe binar.
▲▲▲ SFÂRȘIT PROMPT ▲▲▲
Note pentru adaptare
<<NUME_PROIECT>>îl poți pune orice etichetă scurtă (ex.roagest), doar ca numele folderului de cache să fie unic per proiect.- Ține cache-ul în
D:\ROA\_vfp_textcache\, adică în afara folderuluifoxbin2prg. Motiv:ReCreate_FoxBin2Prg.prgfacePrg2Binrecursiv pe tot folderul tool-ului și ar reconverti.??2-urile din orice cache aflat sub el înapoi în binare parazitare. - Scriptul citește lista de fișiere direct din
.pjx, deci convertește doar ce folosește efectiv proiectul (rapid), nu totCOMUN\. - Cache-ul (
D:\ROA\_vfp_textcache\<proiect>) e regenerabil și e în afara arborelui de versionare al proiectului (și în afara clonei foxbin2prg) — poate fi șters oricând. - Conversia NU necesită IDE-ul VFP deschis (folosește
FoxBin2Prg.EXEcompilat). - Ghid complet (varianta ROAACNPRO, cu exemple):
D:\ROA\ROAACNPRO\docs\cautare_vcx_vct.md. - Tabel corespondență binar → text:
.vcx→.vc2,.scx→.sc2,.frx→.fr2,.mnx→.mn2,.dbc→.dc2,.lbx→.lb2.