4.1 KiB
4.1 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\UTIL\foxbin2prg\_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 '_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\UTIL\foxbin2prg\_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.- Scriptul citește lista de fișiere direct din
.pjx, deci convertește doar ce folosește efectiv proiectul (rapid), nu totCOMUN\. - Cache-ul (
_textcache_*) e regenerabil și e în afara arborelui de versionare al proiectului — 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.